【问题标题】:Get rid of [dynamic] JavaScript views in Visual Studio摆脱 Visual Studio 中的 [动态] JavaScript 视图
【发布时间】:2018-12-21 00:37:16
【问题描述】:

自从我大约 2 个月前从头开始安装 Visual Studio 2010 以来,它在调试在 IE 中运行的 JavaScript 代码时的行为略有不同。

  • 当我设置断点时,它会打开标题中带有术语“[动态]”的视图副本,并在其中标记断点。
  • 如果在执行期间发生 JavaScript 错误,它会在标记引发错误的代码行之前执行相同的操作。
  • 此“动态”视图是可编辑的,但编辑无效 - 它们不会保存到文件中。

我觉得这种行为很不舒服。每次我在调试过程中注意到代码中的错误时,我都会在动态视图中修复它。我点击保存。 VS 没有抱怨。接下来我在 IE 中刷新页面,然后 - 砰 - 更改丢失了,它再次加载未修改的旧版本。

我不知道如何关闭这些视图。在我重新安装 Visual Studio 之前,它并没有这样做。它只会为 HTML 文件的内联脚本标签中的脚本创建“动态”视图。

【问题讨论】:

  • 我也很想找到这个问题的答案。就我而言,当我将现有文件添加到我的项目时,我将问题缩小到使用“添加为链接”。如果我正常添加现有文件,而不使用 add-as-link,并让 VS 制作自己的副本,那么我可以在调试模式下编辑文件,没有问题。如果我使用“添加为链接”,则调试会显示“[动态]”文件,而我无法编辑。这是否也与您的问题有关?在我看来,简单地不使用“添加为链接”不是一个可接受的解决方案。
  • @stay,我的 Visual Studio 解决方案中没有任何外部 JS 文件。它们都是项目的一部分。

标签: javascript visual-studio-2010 debugging


【解决方案1】:

试试这个 IE > Internet 选项 > 设置(在浏览历史记录下)> 检查存储页面的新版本:每次访问网页时。

这在 IE10 中适用于我。

其他选项是打开开发者工具并选择缓存选项始终从服务器刷新如下图所示

【讨论】:

  • @Zain 我已经添加了截图。如果您仍然找不到它,可能是您的系统管理员删除了该选项(假设它是一个公司框)
  • 谢谢你。这种行为已经让我发疯了好几个月!直到今天早上才能够解决它,这迫使我寻找答案,瞧,修复了。希望我早点搜索。 :S
【解决方案2】:

尝试在网页上按 CTRL+F5。这对我有用。

问题是我在之前的调试会话中打开了其他 IE 窗口,所以动态 javascript 文件仍然被缓存。

【讨论】:

    【解决方案3】:

    打开开发者工具 - F12 - 也会导致页面的缓存文件在每次刷新时被清除。

    【讨论】:

      【解决方案4】:

      将相关 JS 文件的编码从 Windows 代码页更改为 UTF-8,为我解决了这个问题。

      缩小范围,文件中的 OEM 扩展 ASCII 字符(例如,我用于项目符号的 ALT-254)似乎触发了 Windows 代码页文件的问题。

      (Visual Studio 2013 更新 5,IE11)

      【讨论】:

      • 这也是 TypeScript 文件以动态选项卡结尾的解决方案,谢谢! ;)
      • 还帮我调试了Visual Studio 2017和IE11中的js文件,动态标签消失了
      • 那么如何改变编码呢?
      • @Pangamma 文件 |另存为 |使用编码保存(通过保存按钮旁边的向下箭头)|然后从对话框中选择编码
      【解决方案5】:

      对于谷歌浏览器:

      • 打开开发者工具(F12)
      • 打开Network Conditions工具
      • 选择Disable Cache

      【讨论】:

      • 这很好,但只是暂时的,因为当您重新启动应用程序时,您需要重新执行此过程
      【解决方案6】:

      我遇到了同样的问题,即无法在新代码中打断点。并且在同一页面中的旧代码上的断点将调出 [动态] 版本。编辑的页面不会重新加载。这对我来说是一周前在 VS2012 和 VS2013 中开始的。使用刷新页面和/或 Ctl-F5 对我不起作用。但是,阅读这个帖子让我想到了使用 F12 打开开发者工具。保持该窗口打开,同时点击刷新就可以了。谢谢大家。

      【讨论】:

        【解决方案7】:

        1) 不带调试运行页面(调试-->不带调试启动)

        2) 当网页在 Internet Explorer 中打开时,按 Ctrl-F5 以便 IE缓存被清除。确保 IE 具有焦点。

        3) 关闭 IE 并使用 Debugging 重新运行页面(Debug-->Start 调试)。

        这为我解决了这个问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-05
          • 2021-12-22
          • 2020-09-01
          • 2010-10-14
          • 2013-02-09
          相关资源
          最近更新 更多