浏览器

127 阅读3分钟

BOM 属性对象方法

Bom 是浏览器对象。常用属性location对象

  • location.href-- 返回或设置当前文档的 URL location.search -- 返回 URL 中的查询字符串部分。例如www.dreamdu.com/dreamdu.php… 返回包括(?)后面的内容?id=5&name=dreamdu location.hash -- 返回 URL#后面的内容,如果没有#,返回空 location.host -- 返回 URL 中的域名部分,例如 www.dreamdu.com
  • location.port -- 返回 URL 中的端口部分。例如 www.dreamdu.com:8080/xhtml/ 返回8080

cookie、sessionStorage、localStorage 的区别

  • cookie:每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题
  • localStorage和sessionStorage:仅在客户端(即浏览器)中保存,不参与和服务器的通信。主动打开一个新窗口或者新标签,打开F12你会发现,sessionStorage为空,因为重新初始化了sessionStorage。如果window.open()打开同源新标签,则sessionStorage会带过去。 9ef0c26a559cde95190c8bf5464c9fb0.png

cookie、session区别

  • cookie 数据存放在客户端,session 数据放在服务器端。
  • cookie 本身并不安全,考虑到安全应当使用 session。
  • session 会在一定时间内保存在服务器上。如果访问量比较大,会比较消耗服务器的性能。考虑到减轻服务器性能方面的开销,应当使用 cookie 。
  • 单个 cookie 保存的数据不能超过 4K,很多浏览器都限制一个域名最多保存 50 个 cookie。将登陆信息等重要信息存放为 session、其他信息如果需要保留,可以放在 cookie 中。

输入 URL 到页面加载显示完成发生了什么

  • DNS解析:将域名解析成IP地址。
  • TCP连接:TCP三次握手。
  • 发送HTTP请求。
  • 服务器处理请求并返回HTTP报文。
  • 浏览器解析渲染页面。
    1. 根据HTML文件解析出DOM Tree
    2. 根据CSS解析出 CSSOM Tree(CSS规则树) 
    3.DOM TreeCSSOM Tree合并,构建Render tree(渲染树) 
    4. reflow(重排):根据Render tree进行节点信息计算(Layout5. repaint(重绘):根据计算好的信息绘制整个页面(Painting
  • 连接结束:TCP四次挥手。
   1、A——>B :A告诉B:“我发完了”;
   2、B——>A:B告诉A:“好的,我知道你发完了”
   3、B——>A:B告诉A:“我收完了”;
   4、A——>B:A告诉B:“好的,我知道你发收完了”

tcp 三次握手

  • 面向连接的,可靠的,基于字节流的传输层通信协议。
  • 客户端和服务端要进行可靠传输,需要确认双方的接收和发送能力,因此需要三次握手。第一次握手可以确认客服端的发送能力,第二次握手,确认了服务端的发送能力和接收能力,所以第三次握手才可以确认客户端的接收能力。不然容易出现丢包的现象。

浏览器在生成页面的时候,会生成那两颗树

构造两棵树,DOM 树和 CSSOM 规则树。当浏览器接收到服务器相应来的 HTML 文档后,会遍历文档节点,生成DOM树,CSSOM 规则树由浏览器解析 CSS 文件生成。