加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

网页性能之html css javascript

发布时间:2016-01-12 19:44:04 所属栏目:语言 来源:alloyteam.com
导读:html css javascript可以算是前端必须掌握的东西了,但是我们的浏览器是怎样解析这些东西的呢 我们如何处理html css javascript这些东西来让我们的网页更加合理,在我这里

前言

html css javascript可以算是前端必须掌握的东西了,但是我们的浏览器是怎样解析这些东西的呢 我们如何处理html css javascript这些东西来让我们的网页更加合理,在我这里做了一些实验,总结起来给大家看看。

最简单的页面

  • <!DOCTYPE html>
    <html>
      <head>
        <title>test</title>
      </head>
      <body>
        <img src="download-button.png" alt="HTML代码优化 网页性能 JavaScript技巧 Javascript">
      </body>
    </html>

我们打开chrome的控制台查看timeline

HTML代码优化 网页性能 JavaScript技巧 Javascript

由上图 可得结论

1 图中蓝色透明条标识浏览器从发起请求到接收到服务器返回第一个字节的时间,时间还是挺长的,而蓝色实体条则为真正的html页面下载的时间 还是很短的。

2 图中红框内的这部分时间则表示浏览器从下载完成html之后开始构建dom,当发现一个image标签时所花费的时间,由此可见dom是顺序执行的,当发现image时便立即发起请求,而紫色透明条则是image发起请求时在网络传输时所消耗的时间。

3 图中timeline蓝色竖线所处的时间为domComplete时间,红色竖线为dom的onload时间,由此可见两种事件的差异。而浏览器构建dom树所花费的时间可以算出即domComplete时间 减去 html下载完成后的时间大概80ms。

含有css的页面

  • <!DOCTYPE html>
    <html>
      <head>
        <title>test</title>
        <link rel="stylesheet" type="text/css" href="stylesheet.css" media="screen">
      </head>
      <body>
        <img src="download-button.png" alt="HTML代码优化 网页性能 JavaScript技巧 Javascript">
      </body>
    </html>

我们打开chrome的控制台查看timeline

HTML代码优化 网页性能 JavaScript技巧 Javascript

1 在添加了外部引入css之后,并没有发现什么异常,但是有一点指的注意,也就是红色竖线和蓝色竖线挨得更进了,这表明domComplete时间必须等待css解析完成,也就是构建dom树必须等待css解析完成,这也就解释了下图

HTML代码优化 网页性能 JavaScript技巧 Javascript

含有javascript和css的页面

  • <!DOCTYPE html>
    <html>
      <head>
        <title>test</title>
          <link rel="stylesheet" type="text/css" href="stylesheet.css" media="screen">
      </head>
      <body>
        <img src="download-button.png" alt="HTML代码优化 网页性能 JavaScript技巧 Javascript">
      <script type="text/javascript" src="H5FullscreenPage.js"></script>
      </body>
    </html>

我们打开chrome的控制台查看timeline

HTML代码优化 网页性能 JavaScript技巧 Javascript

1 图上显示在引入外部的js文件之后domComplete时间又被延后了,结合上面的renderTree,由于javascript代码可能会更改css属性或者是dom结构,所以在形成renderTree之前必须等待javascript解析完成才能接着构建renderTree。

2 将javascript放在head内和body底部的区别也在于此,放在head里面,由于浏览器发现head里面有javascript标签就会暂时停止其他渲染行为,等待javascript下载并执行完成才能接着往下渲染,而这个时候由于在head里面这个时候页面是白的,如果将javascript放在页面底部,renderTree已经完成大部分,所以此时页面有内容呈现,即使遇到javascript阻塞渲染,也不会有白屏出现。

内嵌javascript的页面

HTML代码优化 网页性能 JavaScript技巧 Javascript

1 图上可以看到,由于内嵌了javascript,页面上减少了一个请求,导致html文档变大,消耗时间增多,但是domComplete时间提升的并不多。

使用async的javascript

  • <!DOCTYPE html>
    <html>
      <head>
        <title>test</title>
          <link rel="stylesheet" type="text/css" href="stylesheet.css" media="screen">
      </head>
      <body>
        <img src="download-button.png" alt="HTML代码优化 网页性能 JavaScript技巧 Javascript">
          <script async src="H5FullscreenPage.js" type ="text/javascript" ></script >
      </body>
    </html>

HTML代码优化 网页性能 JavaScript技巧 Javascript

1 可以看到domComplete时间被大大提前 javascript也没有阻塞css和body里面img元素的并行下载。

2 使用async标识的script,浏览器将异步执行这中script不会阻塞正常的dom渲染,这时html5所支持的属性,另外defer也可以达到这种效果。

head里面js和css加载的关系

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读