假设我的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通过但第二次在网络请求级别失败?
非常感谢