好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

423_html/css_WEB-ITnose

在web页面中敲定一个高度,以高度得到一条首屏线,在首屏线上方的内容是需要第一之间展示给用户的,它能不能及时的展示是能否留住用户的一个非常重要的因素。研究认为,用户最满意的网页打开速度在2s以内。

火极鸟工作室

首屏时间

在web页面中敲定一个高度,以高度得到一条首屏线,在首屏线上方的内容是需要第一之间展示给用户的,它能不能及时的展示是能否留住用户的一个非常重要的因素。研究认为,用户最满意的网页打开速度在2s以内。

首屏时间:指用户在没有滚动页面时,看到的内容渲染完成以及可以交互的时间。 加载时间:整个页面滚动到底部,可以渲染并且交互的时间。

在用户访问一个站点时,浏览器会发送一个请求,请求该html文档,当浏览器接收到文档后,就会开始解析并渲染到窗口上。

在这个过程中,有两个非常重要的时间点:

Time Of First Byte(首字节时间) Start Render Time(开始渲染时间)

以上两个时间点,将首屏时间分为了如下图三短时间:

Time Of First Byte

首字节时间越长,浏览器就越晚解析文档,首屏时间就越长。

在 HTML5 performance API 中提供了这个时间点。

如果首字节时间越长,那么瓶颈应该是存在于网络、后端程序等方面。

Start Render Time

Start Render Time是指用户屏幕刚开始显示某些内容的时候。

浏览器最开始是一片空白的,在绘制时就会产生变化,有可能是文字、背景、logo等。

非可视化的DOM如head标签是不会展示在浏览器窗口中的,这意味着在浏览器开始渲染之前,至少需要解析完head标签中的内容。

在一般情况下,只要文档中的css文件准备就绪就可以开始绘制,而我们的css文件都是写在head标签中的。因此,我们可以认为,只要是开始渲染body标签或者解析完head标签的时刻就是 Start Render Time 。

根据这一特性,我们可以在body标签开始处或者head标签结束处埋下脚本用来获取 Start Render Time。

减少首屏使用的方法 首屏css内嵌 css放 head内,js放 前 js尽量异步加载, script标签内添加 async属性

手淘rem方案

flexible.js

建议此js在 所有资源加载前执行

此js会在 html即 document.documentElement上增加一个 data-dpr和 font-size属性,之后的元素都可以用rem来进行设置,这里设置的 font-size就是rem的基准像素

该方案会把视觉稿分为100份,每一份被认定为一个单位a,1rem被认定为10a。拿750px的视觉稿举例:

1a = 7.5px1rem = 10a = 75px 

flexible.js到底做了什么? 如果 meta标签里已经设置了 viewport,则使用已有的 viewport并且对 dpr进行设置 如果 meta标签里已经设置了 flexible, 则使用里面的内容 如果 meta标签里没有对以上两个中任意一个进行书写的时候,他会自动获取一个 dpr值。 ios下,会设置dpr为该设备的dpr,只存在dpr=2和dpr=3的情况 安卓下,统一设置dpr=1 得到的dpr有什么用?

有这么一个公式: scale = 1 / dpr(scale即缩放值)

#span{ font-size: 20px;}[data-dpr="2"] span { font-size: 40px;}	[data-dpr="3"] span { font-size: 60px;} 

上面的一段css代码,分别为dpr=1,dpr=2,dpr=3情况下的 span设置了字体大小。

dpr = 1时,scale = 1,font-size = 16px; dpr = 2时,scale = 0.5,font-size = 32px; 对32px的字体进行0.5倍缩放,得到的还是16px的大小 dpr = 3时,scale = 1/3,font-size = 48px; 对48px的字体进行1/3倍缩放,得到的还是16px的大小

查看更多关于423_html/css_WEB-ITnose的详细内容...

  阅读:41次