1: 资源合并压缩,减少htpp请求和下载的大小。
例如工程化中的多个js、css合并一个文件 和 接口尽量合并。
2:使用CDN。
解:(内容发布网络,最快的速度进行下载)
3: 预解析DNS。
1:这个是解析页面里面a标签,有些浏览器不会解析,加了这个强制会进行预解析
<meta http-equiv="x-dns-prefetch-control" content="on" />
2: 在页面header中使用link标签来强制对DNS预解析
<link rel="dns-prefetch" href="http://bdimg.share.baidu.com" />
注意:域名解析大概占20ms。
参考文章:
4:缓存。
延申问题缓存有什么方式?什么样的原理?什么样的请求头?
强缓存
概念: 不通过服务器协商,然后直接使用
expires: 过期的日期。
cache-control: 多少秒时间过期。
注意:(1) 当expires 和 cache-control 同时存在时, cache-control优先级更高。
(2) expires缺点:是服务器的时间和客户端的时间有可能不一致。
协商缓存
概念: 通过服务器的协商,如果不需要更新header信息,否则才返回资源。
Etag( 每个资源的唯一标识字符串 ,服务器判断资源是否修改)、Last-Modified (上次的时间传送给服务器的)
Last-Modified (服务器返回的字段) / If-Modified-Since(再次请求时候带上这个服务器返回的时间)和 Etag(服务器返回字段资源符号)/ If-None-Match (请求将资源符号带上)
参考文章: https://blog.csdn.net/m0_37747665/article/details/83045494
5: 异步加载
延申有哪几种方式?这几种方式的区别?
解:动态脚本的加载。 // 这个是指js创建script标签这样加载的
script 标签的属性 defer、async。指html加载完成后,在进行加载
区别:defer按照script排列的顺序按照顺序进行加载,而async则不一样。
网友评论