BOM:Browser Object Model 是浏览器对象模型,浏览器对象模型提供了独立与内容的、可以与浏览器窗口进行互动的对象结构,BOM由多个对象构成,其中代表浏览器窗口的window对象是BOM的顶层对象,其他对象都是该对象的子对象。
(一)对象
1.window 对象,是 JS 的最顶层对象,其他的 BOM 对象都是 window 对象的属性;
2.document 对象,文档对象;
3.location 对象,浏览器当前URL信息;
4.history 对象,浏览器访问历史信息;
Window对象:
BOM的核心对象是window,它表示浏览器的一个实例。在浏览器中,window对象有双重角色,它既是通过javascript访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象。
所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。
全局变量是 window 对象的属性。
全局函数是 window 对象的方法。
document对象
每个载入浏览器的HTML文档都会成为Document对象,Document对象是window对象的一部分,document对象使我们可以从脚本中对HTML页面中的所有元素进行访问。
window.location对象
用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。在编写时可不使用 window 这个前缀。
location.herf = 'url地址'
hash 返回#号后面的字符串,不包含散列,则返回空字符串。
host 返回服务器名称和端口号
pathname 返回目录和文件名。 /project/test.html
search 返回?号后面的所有值。
port 返回URL中的指定的端口号,如URL中不包含端口号返回空字符串
portocol 返回页面使用的协议。 http:或https:
window.history 对象
包含浏览器的历史。为了保护用户隐私,对 JavaScript 访问该对象的方法做出了限制。
history.back() - 加载历史列表中的前一个 URL。返回上一页。
history.forward() - 加载历史列表中的下一个 URL。返回下一页。 go(“参数”) -1表示上一页,1表示下一页。
(二)数据传递
数据传递的特性
同一会话的各个页面 其localStorage sessionStorage是共享的
同一会话: 同域
同协议:http https
同域名:www.baidu.com
同端口号:8848
可以使用 本地存储 实现同一个会话各个页面之间的数据传递
(三)localStorage、sessionStorage
在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k),localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同。
localStorage的优势与局限
localStorage的优势:
1、localStorage拓展了cookie的4K限制
2、localStorage会可以将第一次请求的数据直接存储到本地,这个相当于一个5M大小的针对于前端页面的数据库,相比于cookie可以节约带宽,但是这个却是只有在高版本的浏览器中才支持的
localStorage的局限:
1、浏览器的大小不统一,并且在IE8以上的IE版本才支持localStorage这个属性
2、目前所有的浏览器中都会把localStorage的值类型限定为string类型,这个在对我们日常比较常见的JSON对象类型需要一些转换
3、localStorage在浏览器的隐私模式下面是不可读取的
4、localStorage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡
5、localStorage不能被爬虫抓取到
localStorage与sessionStorage的唯一一点区别就是localStorage属于永久性存储,而sessionStorage属于当会话结束的时候,sessionStorage中的键值对会被清空
//设置localStorage
localStorage.setItem('person',JSON.stringify({
'admin': '刘健',
'password': 'lj123456',
}));
// 获取
var arr=localStorage.getItem('localstorage名');
// 数据解析
console.log(arr, JSON.parse(arr).data);
// 删除单个
localStorage.removeItem('flyBird');
// 全删
localStorage.clear();
区别:
本地存储 分为 localStorage sessionStorage
localStorage:永久储存 只要不手删 就一直在;
sessionStorage:只在浏览器程序运行状态下存在,关闭后立即销毁;
操作方法几乎相同,在进行数据储存的时候都是以键值对的形式储存,而且其中的值都会强制转换成字符串;
因此在存取的时候要对数据进行解码。