【问题标题】:Javascript files not loading consistently?Javascript文件加载不一致?
【发布时间】:2017-12-01 11:07:14
【问题描述】:

我们有一个 .net 网络表单应用程序,在我们自己的服务器上的 iis 上运行,在过去 24 小时内出现了一些奇怪的行为。

Rollbar 通知我多个错误,都说无法从大量用户那里找到某些 js 函数/变量 - 实质上是破坏了应用程序。我今天开始工作,在 chrome 开发工具中加载了该站点,却发现它没有显示任何源文件,因此没有 js 文件可以加载/单步执行(尽管有 css 和图像文件)。

为了让事情更混乱,刷新页面后一切都应该是这样吗?!

昨天发布了应用程序的更新版本,所以我猜这与它有关?

老实说,任何关于我们可以调查以防止再次发生的事情的推测性指针都将不胜感激。

【问题讨论】:

  • 如果您有多个 JS 文件并且您的代码在加载依赖项之前正在运行,那么您会收到“未定义”错误。刷新后文件已被缓存,因此它们碰巧“按包含顺序”加载。尝试在 devTools 中禁用缓存并重新加载几次,检查它是否仅在第一次尝试时仍然损坏,或者可能总是。
  • 我认为文件的顺序是正确的,但你是对的 - 部署时将它们捆绑在一起是有意义的,它是一个包含用户控件的 1 页应用程序,因此总共有大约 10 个 js 文件。我不确定这是不是问题所在,因为他们只是在我今天早上第一次使用该页面时没有加载。
  • 让我知道,如果这是问题所在,那么我会将我的评论移至答案
  • 如果你想移动它,我会标记为已接受,我们将继续它。这被认为是一种很好的做法,因此它似乎是一个可靠的答案。

标签: javascript iis webforms


【解决方案1】:

如果您有多个 javascript 文件并且您的代码在其依赖项加载之前正在运行,那么您会收到“未定义”错误。

页面刷新后,依赖文件已经被缓存了,所以它们会立即加载,几乎是同步的。这就是你下次不会出错的原因。

尝试在 devTools 中禁用缓存并重新加载几次,检查下一次尝试是否仍然有效。

如果这是问题所在,您可以考虑模块化您的 JavaScript 代码并将其加载为异步依赖项,例如使用 browserifywebpack 甚至 require .js。无论如何,您可以在寻找“javascript 加载顺序”的主题中找到更多信息。

【讨论】:

    猜你喜欢
    • 2017-05-03
    • 2016-07-25
    • 1970-01-01
    • 2012-05-23
    • 1970-01-01
    • 2013-07-09
    • 2020-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多