Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AJAX应用程序JavaScript加载问题_Javascript_Ajax_Asp.net Mvc - Fatal编程技术网

AJAX应用程序JavaScript加载问题

AJAX应用程序JavaScript加载问题,javascript,ajax,asp.net-mvc,Javascript,Ajax,Asp.net Mvc,我正在创建一个完整的ajax应用程序,其中有一个基本页面,用户在应用程序中导航到的任何页面都通过ajax加载到页面上的contentdiv中。在基本页面上,我包含了应用程序中每个页面所需的各种脚本(jQuery、jqueryui、其他自定义javascript文件)。然后,在应用程序的各个页面上,我为每个页面包含一到两个脚本,其中包含该页面所需的逻辑。这些脚本文件中的每一个都有在page ready事件中执行的内容。问题是每次用户导航到page1时,都会加载page1.js文件。因此,如果他们访

我正在创建一个完整的ajax应用程序,其中有一个基本页面,用户在应用程序中导航到的任何页面都通过ajax加载到页面上的contentdiv中。在基本页面上,我包含了应用程序中每个页面所需的各种脚本(jQuery、jqueryui、其他自定义javascript文件)。然后,在应用程序的各个页面上,我为每个页面包含一到两个脚本,其中包含该页面所需的逻辑。这些脚本文件中的每一个都有在page ready事件中执行的内容。问题是每次用户导航到page1时,都会加载page1.js文件。因此,如果他们访问该页面10次,那么该脚本将被加载到他们的浏览器中10次。在网站上运行之后,看看Chrome脚本开发工具,我看到了大量重复的脚本

我在某个地方读到过关于检查脚本是否已经使用布尔值加载或将加载的脚本存储在数组中的内容。但是,问题是,如果我看到脚本已经加载,而我没有加载它,页面的javascript文件的pageready函数就不会启动,所有操作都会失败

当用户多次访问同一页面时,是否会反复加载javascript文件

我确实注意到,在查看网络流量时,每次访问页面时,都会使用随机数参数(/Scripts/Page1.js?=298384892398)请求脚本,这会导致每次都强制请求脚本文件。我在jQuery ajaxSetup方法上设置了cache:true设置,并从请求中删除了参数,因此加载了javascript文件的缓存版本,而不是实际为其发出单独的HTTP请求。但是,问题是我不希望所有的ajax请求都随着内容的不断变化而被缓存。有没有一种方法可以强制只缓存javascript文件,而不缓存所有其他ajax请求

即使在我强制缓存所有请求时,javascript文件仍然在开发人员工具中多次出现。也许这没什么大不了的,但似乎不太对


关于如何处理这种情况有什么建议吗?

关于您的第一个问题:

每次加载JavaScript文件时,浏览器都会对整个内容进行评估。如果您可以在一行中多次加载和执行它,则这完全取决于内容。我认为这样做不是最好的做法。p> 不过我还是建议您找到一种方法来检查它是否已经加载,并在已经存在的代码中手动触发“page loaded”事件


对于第二个问题:我假设脚本打算在多次包含它时显示多次。为了给出一个关于如何不缓存加载的JS的建议,我需要知道您是如何加载代码的,如何进行AJAX和一般的jQuery设置。

在做了更多的研究之后,它看起来实际上只是一个Chrome问题。当您通过AJAX加载脚本时,您可以在代码中包含以下内容,以使其显示在Chrome developer工具中

//@sourceURL=某个脚本名


问题是,当您离开页面时,开发工具会保留脚本,但实际上页面不再引用它。

谢谢您的建议,但请查看我的答案。原来是铬的东西。