加载Javascript的超时

时间:2010-08-02 13:50:51

标签: javascript dom

考虑以下文件

<html>
    <body>
        This is some content
        <script type="text/javascript" src="verySlowToRespond.js"></script>
        This is some more content
    </body>
</html>

我首先要检查一下我的假设,即在脚本加载并执行之前,浏览器解析超出script标记是不安全的。

这意味着(如果我的假设是正确的),说verySlowToRespond.js需要20秒才能响应,在解决此依赖关系之前,页面DOM无法完全组合。

假设verySlowToRespond.js无限期地挂了?浏览器会在什么时候放弃并继续解析?

3 个答案:

答案 0 :(得分:3)

正确:浏览器不会继续超出脚本标记,直到它被读取并对其进行评估。

浏览器根据它用于页面的相同超时规则放弃。这取决于浏览器,以及超时的确切性质。

我想知道为什么会有这样一个缓慢回应的脚本。你的托管有什么问题吗?脚本缓慢响应,还是加载然后需要很长时间才能运行?

答案 1 :(得分:2)

是的,你的第一个假设是正确的。浏览器停止渲染,直到<script>标记完成加载和执行。

非常长时间运行的scrips上的行为取决于浏览器。较新的浏览器通常会让您有机会中止脚本。较旧的浏览器可能需要强制关闭。

答案 2 :(得分:1)

你是对的。在脚本完成之前,浏览器不会呈现页面的其余部分。超时将取决于我想的底层套接字属性。

如果您担心脚本的加载时间,那么在页面的其余部分呈现之前,脚本不需要执行任何需要执行的DOM更改。然后,您可以添加onload处理程序来调用setTimeout来执行代码以异步加载脚本。