Google Chrome 网页刷新中断
Google Chrome web page refresh broken
Google Chrome Version 48.0.2564.97 m
许多 Intranet web 应用程序在点击 "reload" 按钮(或点击 F5)时无法加载。
页面第一次加载正常,但如果您在页面上并进行刷新,页面加载失败。
- 此问题始于 Chrome v48
- 如果您执行 "hard refresh" (shift F5),页面重新加载正常
- 如果服务器不为 javascript 页面发送 304 而被迫发送 200(无缓存控制),页面加载正常。
- 在其他浏览器中一切正常
- 有问题的应用程序使用 dojo javascript 框架(它的旧版本)
由于初始加载工作正常,这似乎与 Chrome 处理客户端缓存 javascript 文件的方式有关。
有什么想法吗?
您在 Chrome 中遇到了错误 - https://code.google.com/p/chromium/issues/detail?id=570622
基本上,当 Dojo 执行 XMLHttpRequest 加载模块并且服务器响应 304 时,Chrome 传回空响应 body 而不是从缓存中提取原始响应。不出所料,Dojo 将此视为错误。
如您所述,强制服务器执行完整的 200 响应可以解决问题,我使用一些 Apache HTTPD 配置来删除触发 304 的请求 header JavaScript 个文件:
<LocationMatch "^/portal/static/.*\.js$">
RequestHeader unset If-Modified-Since
</LocationMatch>
Chromium 问题已经有一个补丁,所以希望这会在下一个 Chrome 版本中得到修复。
Google Chrome Version 48.0.2564.97 m
许多 Intranet web 应用程序在点击 "reload" 按钮(或点击 F5)时无法加载。
页面第一次加载正常,但如果您在页面上并进行刷新,页面加载失败。
- 此问题始于 Chrome v48
- 如果您执行 "hard refresh" (shift F5),页面重新加载正常
- 如果服务器不为 javascript 页面发送 304 而被迫发送 200(无缓存控制),页面加载正常。
- 在其他浏览器中一切正常
- 有问题的应用程序使用 dojo javascript 框架(它的旧版本)
由于初始加载工作正常,这似乎与 Chrome 处理客户端缓存 javascript 文件的方式有关。
有什么想法吗?
您在 Chrome 中遇到了错误 - https://code.google.com/p/chromium/issues/detail?id=570622
基本上,当 Dojo 执行 XMLHttpRequest 加载模块并且服务器响应 304 时,Chrome 传回空响应 body 而不是从缓存中提取原始响应。不出所料,Dojo 将此视为错误。
如您所述,强制服务器执行完整的 200 响应可以解决问题,我使用一些 Apache HTTPD 配置来删除触发 304 的请求 header JavaScript 个文件:
<LocationMatch "^/portal/static/.*\.js$">
RequestHeader unset If-Modified-Since
</LocationMatch>
Chromium 问题已经有一个补丁,所以希望这会在下一个 Chrome 版本中得到修复。