在同一HTML页面上使用的两个JavaScript文件中有两个jQuery$(document).ready调用时会发生什么?

在同一HTML页面上使用的两个JavaScript文件中有两个jQuery$(document).ready调用时会发生什么?,javascript,jquery,html,dom,document-ready,Javascript,Jquery,Html,Dom,Document Ready,我有一个关于jQuery$(文档)的问题。准备好了吗 假设我们有一个HTML页面,其中包含2个JavaScript文件 <script language="javascript" src="script1.js" ></script> <script language="javascript" src="script2.js" ></script> 内部script2.js: $(document).ready(function(){ g

我有一个关于jQuery
$(文档)的问题。准备好了吗

假设我们有一个HTML页面,其中包含2个JavaScript文件

<script language="javascript" src="script1.js" ></script>
<script language="javascript" src="script2.js" ></script>
内部script2.js

$(document).ready(function(){
    globalVar = 1;
})
$(document).ready(function(){
    globalVar = 2;
})
现在我的问题是:

  • 这两个就绪事件函数都会被激发吗
  • 如果是,他们被解雇的顺序是什么 文件将同时准备好 他们俩的时间到了
  • 这是推荐的方法还是我们最好只有1个 $(文档)。准备好了吗
  • 所有浏览器(IE、FF等)的执行顺序是否相同

  • 谢谢。

    您可以指望在任何当前浏览器中,这两个处理程序都是按脚本包含顺序执行的,
    globalVar
    在第二个脚本引用之后是
    2

  • 这两个就绪事件函数都会被激发吗
  • 是的,他们都会被解雇

  • 他们被解雇的顺序是什么,因为文档将同时为他们两人准备好
  • 它们的显示方式(从上到下),因为ready事件将被触发一次,并且所有事件侦听器都将一个接一个地收到通知

  • 这是推荐的方法还是我们最好只有1$(文档)。准备好了吗
  • 这样做没关系。如果可以将它们放在同一块代码中,那么管理起来就更容易了,但这就是全部。更新:显然我忘了提到,如果在多个文件中执行此操作,您将增加JavaScript代码的大小

  • 所有浏览器(IE、FF等)的执行顺序是否相同
  • 是的,因为jQuery需要跨浏览器规范化。

    请参见此处:和此处:

  • 附件的顺序。使用维护一个
    readyList
  • 这部分是品味的问题。拥有一个就绪处理程序将使您对正在发生的一切有一个很好的概述,而多个(即,每个包含的文件一个)将使您的代码更加模块化(即,您可以包含或删除
    .js
    文件,并确保它提供并绑定自己的就绪处理程序)
  • 是-随附订单

  • 如果您想要完全控制,我强烈建议您只使用一个$(document).ready()

    如果通过ajax加载HTML的部分内容,并且ajax响应包含$(document).ready()-脚本,并且您希望激发$(document.ready();来自ajax回调中的script1.js、script2.js等。。你必须复制大量的代码

    祝你好运

    /$(window.ready()<强>;)

  • 两人都会被解雇
  • 一旦所有灰尘沉淀,变量的值将为2
  • 不推荐的主要内容是使用两个不同的JS文件,正如Google PageSpeed和Yahoo YSlow建议的那样,最好将所有Javascript代码放在同一个文件中。 对于相同的事件处理程序,老实说,我看不出有什么理由这么做,这只会使代码的可读性更差
  • 我对此没有答案

  • 它们将按照您编写它们的顺序执行,尝试向全局var发出警报,您将获得answer@Ibu:这将在他/她测试的浏览器上给他/她答案,在他/她的测试中,这与知道它在现实世界中应该做什么不同,跨浏览器。实验是好的,但它也有局限性。“在任何当前浏览器”或任何其他浏览器中,都是jQuery确保了顺序(就像所有与jQuery连接的事件处理程序一样,以处理这样一个事实,即Microsoft以一种方式处理顺序,而其他人则以另一种方式处理)。编写本文时,jQuery当前支持的任何浏览器。为什么ajax处理程序会包含一个doc ready?一旦您注入了从ajax响应返回的HTML元素,它就可以由ajax处理程序进行操作了。没有必要等待一个准备就绪的事件。回答不错,只是对#3的一点评论:这不好。。即使可能,您也应该实施最佳实践,不要习惯坏习惯。我可以倒车,但我不会一直倒车;)@是的,你是对的,把它放在一个地方是最好的做法。但是,这里有讨论的余地,因为如果他/她有两个大文件,在一个地方他/她需要加载其中一个,而在其他地方他/她需要加载两个,那么在两个文件上重复几行文档就更符合逻辑了,不是同时包含两个文件,也不是用ifs和所有其他东西污染逻辑流。是和否。就我个人而言,在你描述的情况下(有两个或多个带onload函数的文件),我会制作一个js文件,它只有onload函数。里面有一些if语句吗?如果是,那就像我在上面的评论中描述的那样。否则,您将如何处理何时运行哪个?