5

我有一些 jQuery 代码需要 2 个外部 .js 才能完成加载,然后才能成功完成我需要做的事情,并且$(document).ready工作不够一致;有时它可以工作,有时它会被外部 .js 代码覆盖。

有什么方法可以确保页面完全加载完成,包括我的 jQuery 执行之前的所有外部 .js?

4

2 回答 2

9

$(document).ready只等待 DOM 被加载。要等到页面中的所有资源(包括图像、对象、脚本......)都已(下载)加载,您可以使用window.onload

window.onload = function () {
  // do stuff
};

另外你应该阅读:window.onload vs $(document).ready()

于 2013-11-01T16:09:58.370 回答
2

当我们对您的项目一无所知时,不可能知道什么是更好的方法,但一般来说,最好在结束</body>标记之前完成所有脚本加载。然后确保你的 jquery 代码是在它的依赖项之后加载的。

<!DOCTYPE html>
<html lang="en">
  <head>
      <!-- your head stuff -->
  </head>
  <body>

    <!-- your page markup here -->

    <!-- load scripts here -->
    <script src="library_with_no_dependencies.js"></script>
    <script src="jquery.js"></script>
    <script src="library_with_dependency_on_jquery.js"></script>
    <script src="your_js_code.js"></script>

    <script>
      // or you could embed your js here
    </script>

  </body>
</html>

只需按照您希望它们加载的相同顺序列出它们。使用这种方法,您不需要使用 jquery 的$(document).readyor window.onload,并且您的代码将比使用其中任何一种方法更快地执行。

您不想等待加载所有内容,只需加载您的 javascript 代码所依赖的库即可。

于 2013-11-01T16:35:56.450 回答