在同一页面上多次导入javascript文件

在同一页面上多次导入javascript文件,javascript,Javascript,我有一个名为pendingajaxcallsconter.js的javascript文件,其中有一个变量“var pendingaxcalls”,当调用js文件中的各种方法时,该变量会递增/递减 另外,我创建了一个自动测试应用程序,在与任何页面交互之前检查pendingAjaxCalls的值是否为0。我想知道,如果一个给定的页面要多次导入js文件;倍数 语句,这将如何影响变量“var pendingAjaxCalls”的值?每次使用脚本标记包含脚本时,浏览器都会下载文件并对其进行评估。每次包含J

我有一个名为pendingajaxcallsconter.js的javascript文件,其中有一个变量“var pendingaxcalls”,当调用js文件中的各种方法时,该变量会递增/递减

另外,我创建了一个自动测试应用程序,在与任何页面交互之前检查pendingAjaxCalls的值是否为0。我想知道,如果一个给定的页面要多次导入js文件;倍数
语句,这将如何影响变量“var pendingAjaxCalls”的值?

每次使用
脚本
标记包含脚本时,浏览器都会下载文件并对其进行评估。每次包含JavaScript文件时,都会对其内容进行评估。

每次包含JavaScript文件时都会运行脚本,但请确保不要每次重新定义
pendingaxcalls
变量。i、 e.在声明之前,请检查其定义,如:

if(!pendingAjaxCalls)
  var pendingAjaxCalls=0;

/* code happens here */

pendingAjaxCalls++;

如果对增加变量的函数的实际调用被插入了不止一次,则可能会增加多次

另一方面,如果只有增加它的函数被插入多次(不是函数调用),那么JavaScript将使用该函数的最新定义版本。因此,在这种情况下,它不应该增加额外的次数


换句话说,如果您插入同一个函数两次,但只调用一次,则不必担心被调用函数的“两个副本”,因为一个副本实际上覆盖了另一个副本。

这就引出了我的解决方案。谢谢我以这样的语句结束:if(pendingAjaxCalls==null){var pendingaxcalls=0;}/*../../根据我在javascript书中读到的内容递增/递减PendingJaxCalls*/的代码,此if语句将根据“==”中发生的javascript类型强制测试变量PendingJaxCalls是否未定义或为null。这样,如果变量已经在代码中的其他地方被“吐出”,我就不会把它弄乱。是-如果(!PendingJaxCalls)等同于if(PendingJaxCalls==null),因为0==null==false。但我很高兴这有帮助!从2010年1月28日起,我可以说所有的答案都对提高我对javascript的理解和解决这个问题非常有帮助。谢谢大家。