Javascript基础知识体系化学习总结(十)小谈Web运行环境

223 阅读2分钟

这是我参与2022首次更文挑战的第2天,活动详情查看:2022首次更文挑战

一、页面加载

1.运行环境这里统称为浏览器。

2.页面加载的内容:

(1)html代码;

(2)媒体文件(如图片、音频等);

(3)js、css

3.页面加载的过程:

(1)DNS解析即域名解析成IP地址;

(2)发起TCP连接;

(3)发送http请求给服务器;

(4)服务器根据http请求返回报文,接收到这些报文后渲染整个页面;

(5)结束连接

4.页面渲染的过程:

(1)根据html代码渲染成DOM树;

(2)根据css代码渲染出CSSOM树;

(3)将两棵树整合成渲染树Render树;

(4)根据渲染树渲染整个页面;

(5)遇到script标签则先执行js代码再进行渲染;

(6)渲染完成

5.页面加载和渲染举例:

(1)css代码应该放在head标签里面执行;

(2)js代码应该放在body的最后;

(3)图片加载不会阻塞页面的加载和渲染;

(4)执行js代码的时机最好选择在DOMContentLoaded,此刻DOM渲染已经完成,没有必要等到其它资源都加载完成再执行(即loaded)

二、性能优化

1.性能优化没有正确的答案,一般是依据以空间换时间的原则尽可能的全面。大体上分为加载的时候更快和渲染的时候更快两方面入手。

2.加载更快:

(1)减少资源的体积:压缩代码,例如webpack进行代码的打包压缩再上线、雪碧图;

(2)减少访问次数:合并代码、SSR服务端渲染、缓存;

(3)使用更快的网络:CDN

3.渲染更快:

(1)css代码写在head,js代码放在最后;

(2)尽早开始执行js代码,用DOMContentLoaded触发;

(3)图片懒加载/预加载;

(4)对DOM查询的结果进行缓存;

(5)频繁的DOM操作,合并到一起一次性操作;

(6)防抖和节流

三、安全

1.安全主要分为两个方面:XSS注入和XSRF跨域请求攻击。

2.XSS注入就是在原本的代码中插入一段JS代码,来执行一些恶意的操作,预防的方法就是<写为&lt,而>写为&gt,如此script代码就会在页面直接展示而不是执行了。

3.XSRF跨域请求攻击,一般就是伪造请求,我们可以使用POST并且添加一些额外的验证手段即可!