【问题标题】:Does iframe loading block javascript execution?iframe 加载会阻止 JavaScript 执行吗?
【发布时间】:2012-10-28 03:46:13
【问题描述】:

假设您将一个 iframe 动态插入到从跨域获取一些资源的页面中。它会阻止任何当前正在执行的 javascript,还是 javascript 在加载和呈现其内容时继续运行?

【问题讨论】:

    标签: javascript html iframe asynchronous


    【解决方案1】:

    不,它不会阻塞 - 框架的内容将异步加载,就像几乎任何其他类型的内容一样。

    【讨论】:

    • 这两个框架之间似乎可能/应该有一些同步,因为一个框架中的 javascript 有可能调用另一个框架中的 javascript(如果它们在同一个域上),我会认为这需要在执行时间上进行一些协调。
    【解决方案2】:

    只是为黄昏的回答添加一点:虽然 iframe 确实不会阻止加载主页中的内容,但它会做的是将主页的 onload 事件的调度推迟到它自己的 onload 之后事件被调度。

    如果您有一些由 onload 触发的重要脚本,这可能是一个问题,并且如果用户注意到浏览器仍然指示它正在加载页面,则可能会给用户带来加载缓慢的印象。

    如果您想规避这些问题并且可以忽略可能禁用了 JavaScript 的用户,则可以使用 JS 将 iframe 元素动态写入 DOM。

    【讨论】:

      猜你喜欢
      • 2014-03-11
      • 2011-01-13
      • 2016-10-19
      • 2021-06-11
      • 2011-05-05
      • 2018-02-16
      • 2016-06-14
      • 1970-01-01
      相关资源
      最近更新 更多