在执行jQuery代码之前等待外部js完成的更好方法是什么?

时间:2013-11-01 16:04:40

标签: jquery external

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

有没有办法确保页面完全加载,包括我的jQuery执行之前的所有外部.js?

2 个答案:

答案 0 :(得分:5)

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

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

此外,您应阅读:window.onload vs $(document).ready()

答案 1 :(得分: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).readywindow.onload,并且您的代码将比使用这些方法之一。

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