V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
keys
V2EX  ›  问与答

JS问题:为什么同样是<script>标签,硬编码的会阻塞页面内容加载,动态加载的却可以并发加载?

  •  
  •   keys · 2012-09-03 08:55:42 +08:00 · 2841 次点击
    这是一个创建于 4261 天前的主题,其中的信息可能已经有所发展或是发生改变。
    6 条回复    1970-01-01 08:00:00 +08:00
    SAGAN
        1
    SAGAN  
       2012-09-03 09:09:45 +08:00
    你硬编码时加个async="async"也能异步加载了
    keys
        2
    keys  
    OP
       2012-09-03 09:20:04 +08:00
    @SAGAN 这几天google了很多无阻塞加载js的东西,大家都只是说了这种方法,没看到谁解释为什么浏览器的行为会不同,我是疑惑这点不是找别的方法
    reorx
        3
    reorx  
       2012-09-03 09:32:47 +08:00
    觉得楼主提出的是2个不相干的问题呢。

    script 标签在大多数现代浏览器中都是并发加载的,硬编码也不例外。

    script 阻塞页面内容的加载,是既定的规范。虽然没有见到过有关的说明,个人认为,是由于 javascript 的执行可能对页面的内容造成改变,因此必须等 script 标签加载完成后才能继续页面的加载。
    skydiver
        4
    skydiver  
       2012-09-03 09:38:37 +08:00
    参考:高性能网站建设指南——前端工程师技能精髓 http://book.douban.com/subject/3132277/
    keys
        5
    keys  
    OP
       2012-09-03 09:44:46 +08:00
    @reorx 我表达有误吧,我用firebug查看的时候,很奇怪为什么动态加载的script标签没有阻塞?这才是我想问的
    SAGAN
        6
    SAGAN  
       2012-09-03 11:15:40 +08:00   ❤️ 1
    动态加载的script默认异步.

    "Script-inserted script elements now have async default to true, which can be set to false to make the scripts execute in insertion order."

    http://www.w3.org/TR/html5-diff/
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   940 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:49 · PVG 02:49 · LAX 11:49 · JFK 14:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.