《高性能网站建设指南》笔记

2021-05-23 08:31

阅读:438

标签:pre   业务逻辑   属性   可见   str   html   包含   全局变量   判断   

js文件什么时候合并?

css和js到底是内联还是外部引入?

  前者速度快,但没办法缓存,没办法多页面共用;后者速度慢,需要额外的请求,但可以缓存,多页面共享。

  两全其美的办法【内联+预加载+cookie标志判断】:用户第一次打开网页时,没有cookie,服务器返回包含内联css和js的页面和cookie,速度很快,页面空闲下来后执行预加载;第二次打开有cookie了,而且第一次执行了预加载,现在可以返回一个带外部文件的html了,因为之前预加载了,所以速度很快。注意,第一次预加载的时候,要处理内联代码和预加载的代码,防止两者冲突。解决冲突的方式如下(主要是处理js,因为css重复的话没问题,但js重复执行的话可能会造成问题):

  1.创建一个不可见的iframe,里面是空白。iframe标签onload之后,往里面的dom添加script标签或者link标签,因为iframe内外环境是隔离的,所以不会有影响

  2.使用preload、prefetch等属性

  3.最麻烦的方式,处理冲突的逻辑嵌入到业务逻辑中。标志一个全局变量,来判断代码有没有执行过。

《高性能网站建设指南》笔记

标签:pre   业务逻辑   属性   可见   str   html   包含   全局变量   判断   

原文地址:http://www.cnblogs.com/hellohello/p/7685812.html


评论


亲,登录后才可以留言!