谷歌Chrome网页刷新了

BBS*_*BBS 3 dojo google-chrome

谷歌浏览器版本48.0.2564.97米

在应用程序中点击"重新加载"按钮(或点击F5)时,许多Intranet Web应用程序无法加载.

页面第一次加载正常,但是您在页面上并进行刷新,页面无法加载.

  • 此问题始于Chrome v48
  • 如果你进行"硬刷新"(转换F5),页面重新加载正常
  • 如果服务器没有为javascript页面发送304并且被强制发送200(无缓存控制),则页面加载正常.
  • 所有这些在其他浏览器中工作正常
  • 有问题的应用使用dojo javascript框架(旧版本)

由于初始加载工作正常,它似乎与Chrome处理客户端缓存的javascript文件的方式有关.

有任何想法吗?

小智 5

您已在Chrome中遇到错误 - https://code.google.com/p/chromium/issues/detail?id=570622

基本上,当Dojo执行XMLHttpRequest加载模块并且服务器以304响应时,Chrome会传回一个空的响应主体,而不是从缓存中提取原始响应.不出所料,Dojo认为这是一个错误.

正如您所指出的,强制服务器执行完整的200响应可以解决问题,我正在使用一些Apache HTTPD配置来删除触发我的JavaScript文件304的请求标头:

<LocationMatch "^/portal/static/.*\.js$">
    RequestHeader unset If-Modified-Since
</LocationMatch>
Run Code Online (Sandbox Code Playgroud)

Chromium问题已经有一个补丁,所以希望这将在下一个Chrome版本中修复.