在WEB项目中,影响客户体验度的一个重要元素就是页面响应的速度。在加载首屏的时候,浏览器需要解析js,加载图片,当这些请求没有完成之前,页面会处于白板的情况;
针对web页面的首页白屏加载问题,我们可以借鉴京东:
首屏(骨架屏)
京东:
当前台向后台发起请求,拿数据-渲染页面的这段时间,京东做了一个首屏骨架屏,
仿照京东:
html:
css:
注:.box下的所有标签元素都将加上伪类:after,
当数据请求成功,渲染到页面的时候,再重置ClassName下所有的伪类:after的背景background:none;
分屏加载:
当用户在访问网站的时候,往往会有等待时间,需要页面将所有的JS加载完成后,才会开始渲染页面。
这时为了节约时间,减少请求数据,我们可以只将第一屏的数据展示给用户,其他的模块,当用户滚动页面的时候再去触发,按需加载。
js:
如何查看一个网站首屏加载数据的大小:
谷歌浏览器为例:
在Network下可以看见请求的所有数据,以红线为准,加载资源排在红线前的,都是首屏需要做的求情,在红线后的,都是后续加载的。
京东首屏120个资源,资源大小2.9MB,Load时间747ms;
后续资源请求会有排队请求:
注:Queueing排队时间。