zoukankan      html  css  js  c++  java
  • 脚本的加载,解析,与执行

    <script> 标签引入脚本有三种情况:

    立即执行

    <script src="a.js">
    <script src="b.js">

    顺序:保证先后顺序。解析:HTML 解析器遇到它们时,将阻塞(取停止解析),待脚本下载完成并执行后,继续解析标签之后的文档。

    浏览器对它的处理主要有2部分:下载和执行
      下载在有些浏览器中是并行的,有些浏览器中是串行的,如IE8、Firefox3、Chrome2都是并行下载的
      执行在所有浏览器中默认都是阻塞的,当js在执行时不会进行html解析等其它操作,所以页面顶部的js不宜过大,因为那样将导致页面长时间空白,对于这些外链js,有2个属性可以减少它们对页面加载的影响,分别是:

      1. async
      2. 标识js是否异步执行,当有这个属性时则不阻塞当前页面的加载,并在js下载完后立刻执行
      3. 不能保证多个script标签的执行顺序
      4. defer
      5. 标示js是否延迟执行,当有这个属性时js的执行会推迟到页面解析完成之后
      6. 可以保证多个script标签的执行顺序



    推迟执行

    <script defer src="a.js">
    <script defer src="b.js">

    顺序:保证先后顺序。解析:HTML 解析器遇到它们时,不阻塞(脚本将被异步下载),待文档解析完成之后,执行脚本。

    尽快执行

    <script async src="a.js">
    <script async src="b.js">

    顺序:不保证先后顺序。解析:HTML 解析器遇到它们时,不阻塞(脚本将被异步下载,一旦下载完成,立即执行它),并继续解析之后的文档。

    有一张图可以帮助理解这些情形:

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    加载顺序就是按js出现在html里的先后顺序
    执行时同一个块里的所有定义语句先执行 然后再按顺序执行其他语句
    与事件绑定的语句在触发时才解析和执行

    把你的JavaScript打包成PNG文件

    把你的JS和CSS添加到图片的末尾,然后用CSS来裁切,通过一次HTTP请求来获得应用程序中所需的所有信息。

    我最近找到了这个方法。它基本上把你的JavaScript/css数据打包成PNG文件。之后,你可以拆包,只要使用画布API的getImageData()。此外,它非常高效。你可以在不缩小数据的情况下,多压缩35%左右。而且是无损压缩!我得指出,对比较庞大的脚本来说,在图片指向画布、读取像素的过程中,你会觉得有“一段”装入时间。

    详情可参考:http://www.1stwebdesigner.com/design/load-JavaScript-faster/

     
  • 相关阅读:
    GCC默认的标准不是ANSI C,而是GNU C90
    C/C++预定义宏
    GCC对C标准的支持
    Tupper's selfreferential formula
    VC++对C标准的支持
    一道笔试题
    C语言标准
    FLVPlayback视频
    getDefinitionByName与ApplicationDomain.getDefinition
    SVN
  • 原文地址:https://www.cnblogs.com/jellychow/p/3146450.html
Copyright © 2011-2022 走看看