第二次动态加载完全相同的javascript失败可以掩盖第一次成功加载吗?

时间:2015-12-24 17:51:03

标签: javascript jquery internet-explorer internet-explorer-9

大家好(我之前实际上问了同样的问题,但是有些家伙完全没有理由将其标记为副本。他给出的副本没有回答我的问题(以粗体显示))

让我们说我的JS(称为default.js,它依赖于一些名为A.js的lib)首先通过jquery动态加载一些A.js文件,然后通过添加第二次加载A.js <脚本>标记到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)由于某种原因失败。我还看到我的default.js将无法正常运行(基于通过UX与default.js绑定的用户交互),如果根据网络跟踪,第二次加载的A.js失败且http状态不佳。

我想自己调试,但看起来很难,因为第二次加载只会不时失败。所以有两个基本问题:

1)如果相同A.js的第二次加载失败,IE会从其缓存中清除第一个加载的A.js吗?我问,因为看起来好像default.js由于缺少A.js库而失败。

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

非常感谢

1 个答案:

答案 0 :(得分:0)

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

2)你可以使用Fiddler(免费)来处理Web请求。这是调试此类事情的绝佳工具:http://www.telerik.com/fiddler