js数据存储方法及处理
2016-12-16 17:44
190 查看
1.全局变量统一定义,以__开头,如: var __data = {}; 2.局部变量尽量以变量含义字符串,遇特殊字符串需注意,如: function domo() { var tlocation = ''; // 尽量避免与内置对象有冲突的变量名 } 3.所有数据尽量放在js变量中。 3.1.隐藏数据如<input type="hidden"/>尽量写在js全局变量中,因为浏览器(如ff)可能会默认将该值缓存,会造成该值在js中被修改后刷新页面 被置为该修改值而不是初始值; 如果需要将隐藏数据放在form中提交,两种解决办法,一是在提交前js赋值,二是input增加一个属性<input type="hidden" autocomplete="off"/> 3.2.一些隐私性数据放在json中,或者编码后存放,不过js数据都在客户端放着,想做到绝对保险是不太可能的; 如果不想数据被抓到,就只好采用类似applet这种小程序来实现,网银和淘宝这种私密性很强的登录都采用了类似的插件机制。 3.3.大量从服务器端返回的数据怎么存放? 是和数据显示放在一起的一大堆隐藏的input里,还是用了jquery后放在对象的data里? 从实际应用中,现在我更倾向于放在一个统一的全局json里,为每个对象置一个key就可以了,如: var __data = {}; function back(jsons) { __data = {}; // 有数据清理需求的需要做这个工作 $.each(jsons, function(i, json) { __data[json.id] = json; // 当然这里的json.id就是这个唯一性的key,至于这个key如何生成,可以自行设置 }); ... } 如此,每次取数据的时候只需要用key去全局json中取,修改也非常方便,如: var data = __data[key]; data.anykey = 'anyvalue'; 针对这两句代码补充两点: json的key类似数组的下标,但是实际是一个字符串,如果没有这个key,返回undefined; 取出来的data如果本身是个基本数据类型,那么修改data的值不会对全局json的值产生影响;如:
var __data = { com : 'haah', obj : { da : 'en', db: 23 } };
var com = __data.com;
var obj = __data.obj;
com = 'hooh'; // 只是修改了com变量本身,__data.com的值不变;对于基本数据类型的变量,需要直接修改其值,__data.com = 'hooh';
obj.da = 'cn'; // 因为obj变量实际是__data.obj的引用,因此修改其值是修改__data本身;
第二点其实和java中对于对象的引用是一致的。
相关文章推荐
- 使用node.js中的Buffer类处理二进制数据的方法
- Node.js后台数据处理相关方法
- JS 对java返回的json格式的数据处理方法
- cocos2d-js基础 本地数据存储 碰撞检测几种方法
- js处理数据的一些方法
- JS中Json数据的处理和解析JSON数据的方法详解
- Ajax上传实现根据服务器端返回数据进行js处理的方法
- JS中可以用来存储用户数据的方法或方式
- JS 处理JSON数据及javascript处理对象、JSON对象、hash对象、数组对象的方法
- 得到 words.js?hello,world! 参数的处理方法
- 利用ASP发送和接收XML数据的处理方法
- SQL Server存储图像数据的策略与方法
- 学习altas笔记[客户端JS和Altas环境初始化关系和DataTable返回数据的客户端处理]
- 近日探得用C++将二进制数据存储到XML文件的方法,由于在研究时,未得到网上其他同仁的帮助(网上搜索了半天没有相关资料,只有.NET的),在这里不敢独享,给别的同仁在搜索时能够搜索到相关资料,也算是绵薄之力! )
- 学习Altas 笔记[js调用重载的方法出错,如何处理]
- 使用OWC时处理有间断的数据的方法
- 基于MFC的大型数据文件处理方法
- 学习altas笔记[客户端JS和Altas环境初始化关系和DataTable返回数据的客户端处理]
- SQL Server存储图像数据的策略与方法
- XML中二进制数据的处理方法[转载]