存储JS变量和画布数据的另一种方式,用户可以稍后检索
alternative way to store JS vars and canvas data that user can retrieve later?
我有一个画布元素,用户可以在上面绘制许多对象。目前,对象定位信息存储在JS变量中:
object1Xposition = 235;
object1Yposition = 30;
object1Xscale = 100;
object1Yscale = 110;
object1rotation = 22.5;
等等在某个时刻,用户点击一个按钮将所有定位信息保存到cookie中:
createCookie('CCobj1Xpos',object1Xposition,.01);
createCookie('CCobj1Ypos',object1Yposition,.01);
createCookie('CCobj1Xscale',object1Xscale,.01);
稍后,用户返回页面将cookie加载回:
var a = readCookie('CCobj1Xpos');
var b = readCookie('CCobj1Ypos');
var c = readCookie('CCobj1Xscale');
我还设置了canvas.toDataURL保存到cookie的位置。所有这些都可以,但我担心文件大小,因为可能有太多的对象信息无法放入cookie。我知道4K基本上是标准。是否有另一种方法,只使用HTML和Javascript,让用户存储简单的变量信息和画布数据信息,这些信息可以稍后检索和重新绘制?顺便说一句,画布todaull信息只能以这种方式使用,因此它可以通过formmail脚本传递到我的电子邮件中。
尝试本地存储。这正是您所需要的,并在此处进行了记录。诀窍是,如果你想支持旧的浏览器,你需要回到cookie。此外,localstorage值存储为字符串,需要转换回您的数据类型。
存储数据示例:
if(typeof(Storage) !== "undefined") {
localStorage.CCobj1Xpos = object1Xposition;
} else {
createCookie('CCobj1Xpos',object1Xposition,.01);
}
以及检索数据:
var a = null;
if(typeof(Storage) !== "undefined") {
a = Number(localStorage.CCobj1Xpos);
} else {
a = readCookie('CCobj1Xpos');
}
相关文章:
- 使用Angular存储用户以前是否选中过复选框,然后再调用它的最佳方式是什么
- 如何以用户友好的方式在计算机上保存从画布转换的图像
- 当用户返回 UC 浏览器时,如何以编程方式禁用缓存
- 临时存储用户表单数据的最佳方式,用于表单重新提交
- 实现已验证用户更新状态的最佳方式,作为对系统中已更改状态的反应.(ASP.NET MVC网站)
- 用户更改文本框后,无法以编程方式更改文本框's值
- 向IE8用户隐藏所有内容的最佳方式是什么
- jQuery mobile-保存用户输入的最佳方式是什么
- 防止Angular网站上未经授权的用户在重定向到登录之前看到网站的最佳方式
- 是否可以检索用户在我的页面上以编程方式使用的搜索词
- 向用户显示多条确认消息的最佳方式
- 用户在Javascript的帮助下,仅通过单选按钮选择一个付款方式(信用卡)
- jQuery 脚本在以编程方式(不是由用户)更改选择选项时不起作用
- 在 Web 应用中识别用户的最佳方式
- Javascript:处理用户生成脚本的最佳方式
- blur() 无法以编程方式工作 |但在从用户启动时会这样做
- 用户取消选择,然后从数组中删除项目并进行排列,具体取决于它们的选择方式
- 当用户使用 ASP.NET 从 Web 窗体中的“下拉列表列表”中选择“其他”时,文本框的显示方式
- 创建用户可以在带有 php 或 JavaScript 的模板中使用的“变量”的最佳方式
- 我让用户将脚本加载到网页中的方式是否有区别