BOM 浏览器对象模型_Storage 接口 - window.sessionStorage - window.localStorage
Storage 接口
用于脚本在浏览器保存数据。
- 保存的数据都以“键值对”的形式存在。也就是说,每一项数据都有一个键名和对应的值。
- 所有的数据都是以文本格式保存
- 受同域限制 ---- 某个网页存入的数据,只有同域下的网页才能读取,如果跨域操作会报错
只有一个属性:
- Storage.length ---- 返回保存的数据项个数
有五个方法
- Storage.setItem()
用于存入数据 ---- 如果储存空间已满,该方法会抛错
该方法没有返回值
它接受两个参数 (两个参数都是字符串。如果不是字符串,会自动转成字符串,再存入浏览器)
- 第一个是键名 ---- 如果键名已经存在,该方法会更新已有的键值
- 第二个是保存的数据
- 支持直接写入
// 下面三种写法等价
window.localStorage.foo = '123';
window.localStorage['foo'] = '123';
window.localStorage.setItem('foo', '123');window.sessionStorage.setItem('key', 'value');
window.localStorage.setItem('key', 'value'); window.sessionStorage.setItem(3, { foo: 1 });
window.sessionStorage.getItem('3'); // "[object Object]"
Storage.getItem()
用于读取数据
只有一个参数,就是键名 ---- 如果键名不存在,该方法返回null
键名应该是一个字符串,否则会被自动转为字符串
window.sessionStorage.getItem('key')
window.localStorage.getItem('key')
Storage.removeItem()
用于清除某个键名对应的键值
接受键名作为参数 ---- 如果键名不存在,该方法不会做任何事情
sessionStorage.removeItem('key');
localStorage.removeItem('key');
Storage.clear()
用于清除所有保存的数据
该方法的返回值是 undefined
window.sessionStorage.clear()
window.localStorage.clear()
Storage.key()
接受一个整数作为参数(从零开始)
返回该位置对应的键值
window.sessionStorage.setItem('key', 'value');
window.sessionStorage.key(0) // "key"
结合使用 Storage.length 属性 和 Storage.key() 方法,可以遍历所有的键
for (var i = 0; i < window.localStorage.length; i++) {
console.log(localStorage.key(i));
}
Storage 接口储存的数据发生变化时,会触发 storage 事件
window.addEventListener('storage', onStorageChange);
接受一个 event 实例对象作为参数。这个实例对象继承了 StorageEvent 接口
有以下几个特有的属性,都是只读属性
- StorageEvent.key ---- 字符串,表示发生变动的键名
如果 storage 事件是由 clear() 方法引起,该属性返回null
特别注意:
它不在导致数据变化的当前页面触发,而是在同一个域名的其他窗口触发
也就是说,如果浏览器只打开一个窗口,可能观察不到这个事件
比如同时打开多个窗口,当其中的一个窗口导致储存的数据发生改变时,只有在其他窗口才能观察到监听函数的执行
可以通过这种机制,实现多个窗口之间的通信
function onStorageChange(e) {
console.log(e.key);
} window.addEventListener('storage', onStorageChange);- StorageEvent.newValue ---- 字符串,表示新的键值
如果 storage 事件是由 clear() 方法 或 删除该键值对 引发的,该属性返回null
- StorageEvent.oldValue ---- 字符串,表示旧的键值
如果该键值对是新增的,该属性返回null
- StorageEvent.storageArea ---- 对象,返回键值对所在的整个对象
也说是说,可以从这个属性上面拿到当前域名储存的所有键值对
- StorageEvent.url ---- 字符串,表示原始触发 storage 事件的那个网页的网址
4
4
4
window.sessionStorage
保存的数据用于浏览器的一次会话(session),当会话结束(通常是窗口关闭),数据被清空
window.localStorage
存的数据长期存在,下一次访问该网站的时候,网页可以直接读取以前保存的数据
BOM 浏览器对象模型_Storage 接口 - window.sessionStorage - window.localStorage的更多相关文章
- BOM 浏览器对象模型_window 对象的常见 window.属性_window.方法
1. 常用属性 window.devicePixelRatio 像素比 = css / 物理像素 window.scrollX,window.scrollY 滚动条 卷曲距离 if ...
- 第一百一十一节,JavaScript,BOM浏览器对象模型
JavaScript,BOM浏览器对象模型 学习要点: 1.window对象 2.location对象 3.history对象 BOM也叫浏览器对象模型,它提供了很多对象,用于访问浏览器的功能.BOM ...
- JavaScript——BOM(浏览器对象模型),时间间隔和暂停
BOM(浏览器对象模型):能够对浏览器的窗体进行訪问和操作 1.主要的BOM体系: window------------document-------------------------------- ...
- JavaScript(二、BOM 浏览器对象模型)
一.BOM是什么 BOM是browser object model的缩写,简称浏览器对象模型 BOM提供了独立于内容而与浏览器窗口进行交互的对象 由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心 ...
- BOM浏览器对象模型
访问和操作浏览器窗口的模型称为浏览器对象模型BOM(Browser Object Model). BOM整体对象图. 核心是window对象: 以下有特殊双重身份: window对象既是ECMAScr ...
- javascript之BOM浏览器对象模型引入
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- BOM—浏览器对象模型(Browser Object Model)
1,javascript 组成部分: 1.ECMAscript(核心标准): 定义了基本的语法,比如:if for 数组 字符串 ... 2.BOM : 浏览器对象模型(Browser ...
- JS第三部分--BOM浏览器对象模型
一.client系列:宽高边框 二.offset系列:偏移 三.scroll系列 四.BOM的介绍 4.1.打开新窗口 4.2.location对象(本地信息对象) 4.3.history对象 4.4 ...
- js BOM浏览器对象模型
BOM即Browser Object Model,浏览器对象模型,表示浏览器窗口,所有js全局对象.函数以及变量均是window 对象的成员. 对于不同的浏览器,表示宽度和高度的方法不同: 对于IE9 ...
随机推荐
- HDU 1584(蜘蛛牌 DFS)
题意是在蜘蛛纸牌的背景下求 10 个数的最小移动距离. 在数组中存储 10 个数字各自的位置,用深搜回溯的方法求解. 代码如下: #include <bits/stdc++.h> usin ...
- js值类型转换(boolean/String/number),js运算符,if条件,循环结构,函数,三种弹出框
js值类型转换 number | string | boolean boolean类型转换 num = 0; var b1 = Boolean(num); console.log(b1) 转化为数字类 ...
- [物理学与PDEs]第4章第1节 引言
1. 本章讨论可燃流体在流动过程中同时伴随着燃烧现象的情况. 2. 燃烧有两种, 一种是爆燃 (deflagration): 火焰低速向前传播, 此时流体微元通常是未燃气体.已燃气体的混合物; 一 ...
- 在Unity3D里使用WinForm
之前给一个游戏写过MOD,功能大概是在游戏里可以打开一个编辑器,然后可以直接在编辑器里修改到游戏数据. 编辑器UI的实现部分,一开始用的是原生GUI,即OnGUI部分,这种方式虽然最简洁,也不用引用任 ...
- 常见的cmake工程做法
第一步,创建一个build目录存放cmake生成的中间文件: mkdir build 第二步,进入到build文件目录: cd build 第三步,cmake把代码文件生成一个makefile文件: ...
- 用juery的ajax方法调用aspx.cs页面中的webmethod方法
首先在 aspx.cs文件里建一个公开的静态方法,然后加上WebMethod属性. 如: [WebMethod] public static string GetUserName() { //.... ...
- JS获取当月第一天和最后一天
/** * 获取当前月的第一天 */function getCurrentMonthFirst(){ var date=new Date(); date.setDate(1); return date ...
- 【译】索引进阶(六):SQL SERVER索引书签
[译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正] 原文链接:传送门. 在之前的章节,我们把索引看做一组有序条目的集合,每行数据对应一个索引条目.我们解释了很多关于索引逻辑方面的内容, ...
- typecho视频播放插件JWPlayer
JWplayer for typecho是羽中大神开发并持续维护的一款插件,目前插件已经发布了8个版本,涵盖typecho0.8到1.0,插件基于原生的JWPlayer,可以说非常完美,详细使用方法在 ...
- HDR拍照
HDR 拍照: (High Dynamic Range Imaging)高动态范围成像,是用来实现比普通数字图像技术更大曝光动态范围(即更大的明暗差别)的一组技术.高动态范围成像的目的就 ...