0

几周以来一直在使用 Visual Studio Express 2012 Web,现在正在为基于 Web 的应用程序学习 JavaScript、HTML5 和 CSS。作为 .NET 开发人员,熟悉 VS 非常好(尽管更好的 JS/HTML 智能感知会很好)而且我的进步很好,但是在调试期间有一个令人讨厌的 VS 怪癖,我无法解决。有时 VS(或者更具体地说是 IE10)会停止识别任何代码更改并运行以前版本的代码。这很烦人,但我可以通过在 IE10 启动时按额外的 F5 来解决它,但它不应该是必需的。我假设更新源时没有刷新 IIS express 的文件缓存,但我可能是错的。在遇到这个问题一段时间后,我无法找到一种模式来了解导致问题的使用模式。

有没有其他人看过这个?有什么修复吗?上网一搜,一片空白。

我使用 VS 网站项目类型,并在 Windows 8 上安装了 VS 2012 express(使用 IIS express)并使用 IE10 进行调试。

谢谢。

4

3 回答 3

1

是否有任何使用 Visual Studio Web 的 Web 开发人员找到解决此问题的方法?我发现 Chrome 在确保在代码更改时刷新缓存方面更可靠,但是使用 IE 和 VS 集成更容易使用 IE 进行开发。

这一定是通病吧?我也尝试过 IIS Express 和同样的问题(我确信这是浏览器缓存的问题)。通常在第一次运行 IE 时会出现问题,如果我的 Javascript 代码中有一个错误会在绘制屏幕之前中断执行,那将非常痛苦,因为手动清除缓存并不容易。我唯一的解决方法是使用 F12 并“清除该域的浏览器缓存”,然后 F5 刷新。可行但烦人。

任何解决此问题的提示将不胜感激

于 2013-06-22T01:37:02.520 回答
1

添加这个:

window.applicationCache.addEventListener('updateready', function (e)
{
  if (window.applicationCache.status == window.applicationCache.UPDATEREADY)
  {
    window.applicationCache.swapCache();
    if (confirm('A new version of this site is available. Load it?'))
     window.location.reload();
  }
}, false);

我在网络的某个地方找到了这个解决方案。对不起,我不记得作者了。当我使用 IE 在 Visual Studio 2012 中使用 JavaScript 调试 Web 应用程序时,它适用于我。请停止诅咒微软。公平地说,我们都使用他们的产品。我不在微软工作,但如果没有它的产品,我会很不高兴。我想我们所有人都会。

于 2013-10-22T06:28:06.940 回答
0

我自己使用 Chrome,但仍然遇到同样的问题。最后,我选择了在我的本地 WebServer 上完全关闭缓存的解决方案 - 作为 VS 的 IIS Express -。这可以通过UseMaxAge在. 如下:0web.config

XML
<configuration>
  ...
    <system.webServer>
      ...
      <staticContent>
        ...
        <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="0.00:00:00" />
      </staticContent>
  </system.webServer>
</configuration>
笔记
  • 这也适用于常规/完整 IIS。
  • 确保不要将此设置部署到 PRODUCTION。使用特定的产品web.config来允许最终用户利用一些缓存:)。否则这可能是性能杀手。
  • 使用CTRL+F5而不是仅仅F5应该刷新它,但是不知何故这在 Chrome v39.0.2171.71 m) 中不起作用。我发现在同一个浏览器(!)选项卡中直接打开缓存的 Javascript URL 确实有效,按Ctrl+F5然后返回到(HTML)页面并再次使用CTRL+F5那里。
  • 有时可行的另一个选项是重新启动 IIS Express(右键单击任务栏并从上下文菜单中选择“退出”)。但这也很麻烦.. :)
于 2014-12-10T11:10:23.373 回答