跨浏览器的本地存储(二):DOM:Storage
作者:blank 来源:怿飞blog 发布时间:2008-08-15 13:39:00
跨浏览器的本地存储(一):userData behavior
DOM Storage,是基于 Web Applications 1.0 specification 中介绍的 Structured client-side storage。相比 Cookies 来说,DOM Stroage 空间更大、更安全、更易于使用的。目前它只在基于Moziila的浏览器中可以使用,从 Firefox2 开始。
一、DOM:Storage: sessionStorage
浏览器支持:Firefox 2.0+
基本语法:
// 设置 key 值
sessionStorage.key = value;// 获取 key 值
value = sessionStorage.key;
备注:
作为每个 window 对象的属性存在的全局对象,即:可以通过 sessionStorage 或者 window.sessionStorage 来访问它们。
sessionStorage 含有一个在页面会话有效期内(只要页面没有关闭,一个页面会话就始终保持着,且当页面被重新载入或恢复时“复活”,而打开一个新的标签页或新窗口都会初始化新的会话)可用的存储区域。
sessionStorage 持有那些应该保存的临时数据,一旦浏览器突然被刷新时,可恢复。
sessionStorage 暂时还没有实现在浏览器崩溃后存储和恢复数据的功能( bug 339445 )。
更多信息:sessionStorage specification
样例:自动保存文本字段的内容,如果浏览器突然被刷新,就恢复字段内容,这样就不会丢失任何输入了。
// 获得我们要跟踪的那个文本字段var field = document.getElementById("field");// 看看我们是否有一个autosave的值// (这将只会在页面被突然刷新时发生)if ( sessionStorage.autosave ) { // 恢复文本字段中的内容 field.value = sessionStorage.autosave;}// 每秒钟检查一次文本字段的内容setInterval(function(){ // 并把结果保存到会话存储对象中 sessionStorage.autosave = field.value;}, 1000);
二、DOM:Storage: globalStorage(重点)
浏览器支持:Firefox 2.0+
基本语法:
globalStorage['developer.mozilla.org'] —— 在developer.mozilla.org下面所有的子域都可以通过这个存储对象来进行读和写。
globalStorage['mozilla.org'] —— 在mozilla.org域名下面的所有网页都可以通过这个存储对象来进行读和写。
globalStorage['org'] —— 在.org域名下面的所有网页都可以通过这个存储对象来进行读和写。
globalStorage[''] —— 在任何域名下的任何网页都可以通过这个存储对象来进行读和写。
方法属性:
setItem(key, value) —— 设置或重置 key 值。
getItem(key) —— 获取 key 值。
removeItem(key) —— 删除 key 值。
或者:
// 设置 key 值
window.globalStorage["planabc.net"].key = value;// 获取 key 值
value = window.globalStorage["planabc.net"].key;
备注:
作为每个 window 对象的属性存在的全局对象,即:可以通过 globalStorage 或者 window.globalStorage 来访问它们。
Storage 空间:整个域名的默认 Storage 大小为 5MB (不过 Storage 区域的大小用户可以自定义),globalStorage['net'] 为 2MB,globalStorage['planabc.net'] 为 3MB,如果超过限制,则会报错。
Firefox 支持 Storage 事件:document.addEventListener(”storage”, eventHandler, false);。
Firefox 目前还没有实现 globalStorage[tld] 和 globalStorage[''] (会抛出一个安全错误),这是由于对于这些名字空间可以进行随意读写的话是有安全漏洞的。
Firefox 2 允许访问比当前文档域名层次高的存储的对象,由于安全的因素 Firefox 3 中不再允许。
更多信息:globalStorage specification
样例:(DOM Storage Test)


猜你喜欢
- 本文实例为大家分享了JavaScript实现扫雷小游戏的具体代码,供大家参考,具体内容如下工具:Sublime Text / Dreamwe
- **将Python程序(.py)转换为Windows可执行文件(.exe)第一步:安装pyinstaller打开cmd,输入 pip ins
- mysql-connector-java与mysql版本的对应我们知道版本更新经常带来的问题就是兼容性问题。在编程过程中版本的错误选择很可能
- 随手google咗一下,基本上都用select实现非阻塞监听,但问题是,监听的是用select之后是不能像getchar()那样
- 在HTML中,我们设置border=”1″ 时,表格边框实际大小是2px,那如果我们要做成1px的细线表格要怎么办?以前在做1px的表格的时
- 如果您正尝试去处理元类,或者正受困于 Twisted 中的异步编程,或者正在研究由于使用了多分派而使您精疲力尽的面向对象编程,那么您完全错了
- 文件操作我们可以使用python来操作文件,比如读取文件内容、写入新的内容等,因为任何计算机文件的本质都是一些有不同后缀的字符组成的。pyt
- Celery是Python开发分布式任务列队的处理库。可以异步分布式地异步处理任务,也可定时执行任务等等。通常我们可以使用celery在Dj
- 1.php in_array方法说明PHP查找数组元素是否存在,一般会使用in_array方法。bool in_array ( mixed
- 前言延迟队列是一个非常有用的工具,我们经常遇到需要使用延迟队列的场景,比如延迟通知,订单关闭等等。这篇文章主要是使用Go+Kafka实现延迟
- 前言调用EXPLAIN可以获取关于查询执行计划的信息,以及如何解释输出。EXPLAIN命令是查看查询优化器如何决定执行查询的主要方法,但该动
- 一、内容回顾Model- 数据库操作- 验证class A(MOdel):user = email = pwd =Form- class L
- random模块用于生成随机数,下面看看模块中一些常用函数的用法:from numpy import randomnumpy.random.
- 本文实例讲述了Python进程的通信Queue、Pipe。分享给大家供大家参考,具体如下:内容相关:概念:进程的通信Queue:创建与使用P
- 写一个类似linux head的小工具,在window下用。head.py # -*- coding: UTF-8 -*-#!/u
- 主要讲 except 和 not in 的性能上的区别。 CREATE TABLE tb1(ID int) CREATE TABLE tb2
- 本文实例讲述了python简单分割文件的方法。分享给大家供大家参考。具体如下:有的网站在上传文件时对文件大小有限制,因此可以将大文件分割成多
- 起因是因为公司要开发一款自动登录某网站的助手工具提供给客户使用,要使用到selenium,所以选择了pyqt5的方式来开发这个C/S架构的客
- 本文实例讲述了Python网络编程之TCP套接字简单用法。分享给大家供大家参考,具体如下:上学期学的计算机网络,因为之前还未学习python
- 前言最近公司业务服务老出bug,各路大佬盯着链路图找问题找的头昏眼花。某天大佬丢了一张图过来“我们做一个资源拓扑图吧,方便大家找bug”。就