Dis*_*oat 47 javascript local-storage
使用localStorage对象上定义的方法与直接访问对象属性有什么好处?例如,而不是:
var x = localStorage.getItem(key);
localStorage.setItem(key, data);
Run Code Online (Sandbox Code Playgroud)
我一直这样做:
var x = localStorage[key];
localStorage[key] = data;
Run Code Online (Sandbox Code Playgroud)
这有什么不对吗?
Pim*_*kit 30
实际上,它们基本上完全一样.一个使用封装(getter/setter)来更好地保护数据和简单使用.你应该使用这种风格(为了安全).
另一个允许在名称(键)未知时以及数组和循环时更好地使用.使用.key()和.length迭代存储项而不知道其实际的键名.
我发现这是一个很好的资源:http://diveintohtml5.info/storage.html
这个问题可能会提供更多的见解:HTML5 localStorage键盘顺序
显然,封装存在一些混乱.看看这个快速的维基百科.但严重的是,我希望这个网站的用户知道如何谷歌.
继续前进,封装是一种想法,即您可以在进出门户网站中与其他系统进行通信.假设您正在制作供其他人使用的API包.假设您在该API系统中有一系列信息,可通过用户输入进行更新.您可以使用该array[key]方法将API的用户直接将该信息放入数组中.或者你可以使用封装.获取将其添加到数组中的代码,并将其包装在API用户调用的函数(例如,函数setArray()或setWhateverMakesSense()函数)中以添加此类信息.然后,在此set函数中,您可以检查数据的问题,您可以以正确的方式将其添加到数组中,以防您需要以某种方式push编辑或shift编辑到数组...等.您控制用户输入如何进入实际程序.因此,它本身不会增加安全性,但允许您(API的作者)编写安全性.这也允许更好的版本控制/更新,因为如果您决定进行内部更改,API的用户将不必重写代码.但无论如何,这是优秀OOP所固有的.
在javascript和localStorage对象的情况下,他们已经编写了这个API,他们是作者,我们是它的用户.如果作者决定改变localStorage工作方式,那么如果使用封装方法,则不太可能重写代码.但我们都知道这种变化水平不太可能发生,至少不会很快发生.由于作者在此没有任何固有的不同安全检查,因此,目前,这两种使用localStorage方式基本相同.它有点像垫片.但是,我们可以轻松地进行自己的封装来覆盖/替换现有的封装,localStorage以进行自己的安全检查.
PT
我认为他们是完全一样的,唯一documenation规定是:
注意:尽管可以使用标准JavaScript属性访问方法设置和读取值,但建议使用getItem和setItem方法.
但是,如果使用完整的垫片,则说明:
方法localStorage.yourKey = yourValue的使用方法; 并删除localStorage.yourKey; 使用 此代码设置或删除密钥不是一种安全的方法.
和有限的垫片:
此代码不允许使用方法localStorage.yourKey来获取,设置或删除密钥.
| 归档时间: |
|
| 查看次数: |
32341 次 |
| 最近记录: |