【问题标题】:Can a failure in 2nd dynamic loading of exactly the same javascript overshadow the 1st successful loading?完全相同的javascript的第二次动态加载失败会掩盖第一次成功加载吗?
【发布时间】:2015-12-24 17:51:03
【问题描述】:

大家好(实际上我之前问过完全相同的问题,但有人毫无理由地将其标记为重复。他给出的重复没有回答我下面的问题(以粗体显示))

假设我的 JS(称为 default.js,它依赖于一些名为 A.js 的库)首先通过 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 的第二次动态加载(通过

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

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

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

非常感谢

【问题讨论】:

  • 能否请您发布您正在使用的代码,以便我们看到您在说什么。
  • 你好 Rory,javascript 基本上是连续做一些很简单的事情。首先它通过 $.ajax 加载 A.js,然后它做一些事情。其次,它再次加载 A.js,但这次是通过添加

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-26
    • 2022-08-15
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 2013-03-10
    • 2012-04-10
    • 1970-01-01
    相关资源
    最近更新 更多