完全相同javascript的第二次动态加载中的失败是否会盖过第一次成功加载

Can a failure in 2nd dynamic loading of exactly the same javascript overshadow the 1st successful loading?

本文关键字:加载 是否 成功 第一次 失败 javascript 第二次 动态      更新时间:2023-09-26

大家好(我以前问过完全相同的问题,但有人无缘无故地把它标记为副本。他给出的副本没有回答我下面的问题(用粗体显示)

假设我的JS(称之为default.JS,它依赖于一个名为A.JS的lib)首先通过jquery动态加载一些A.JS文件,然后通过添加<script>标记到html文件。(不要问我为什么这么做。这只是我为了简化问题而创造的一个假设情况)。

在IE(IE 9和IE 11)上,A.js实际上被加载了两次,而不是缓存A.js以避免第二次网络请求。我可以从使用IE嵌入式开发工具的网络跟踪中看到这种情况。当我在Chrome上做同样的事情时,Chrome似乎足够聪明,只加载一次A.js(在jquery之后不加载A.js)。

在Windows 7上运行的IE 9上,偶尔我会看到A.js的第二次动态加载(通过<script>标记而不是jquery)由于某种原因失败。我还看到,如果第二次加载A.js失败,根据网络跟踪,http状态不好,我的default.js将无法正确运行(基于通过与default.js绑定的UX进行的用户交互)。

我想自己调试,但这似乎很难,因为第二次加载只是偶尔失败。所以两个基本问题:

1)如果同一个A.js的第二次加载失败,IE会从缓存中清除第一次加载的A.js吗?我之所以这么问,是因为default.js似乎因为缺少A.js库而失败了

2) 有没有什么简单的方法可以通过手动允许第一次加载的A.js通过,但第二次在网络请求级别失败来测试它?

非常感谢

1)这取决于浏览器,但从缓存中删除A.js是合理的,所以是的。

2) 你可以使用Fiddler(免费)来处理网络请求。这是一个很棒的工具,可以调试这类事情:http://www.telerik.com/fiddler