【问题标题】:Chrome for Android reloading from cache after app is killed应用程序被杀死后,Chrome for Android 从缓存中重新加载
【发布时间】:2014-03-27 16:36:25
【问题描述】:

我有一个单页 Web 应用程序,它通过对我的 Web 服务的 ajax 调用拉入数据(使用微风.js)。应用程序在首次加载时加载数据,并在通过连接的网络套接字接收到更新到网络服务的通知时再次加载数据,即另一个浏览器会话进行了一些更改。

现在,如果 Chrome 在页面打开的情况下被发送到后台,并且我通过桌面浏览器修改数据。该页面通过 Web 套接字接收 ping,并使 ajax 请求获取新数据,如果我将其带到前台,我可以在 Chrome 中看到这些数据。如果我 kill Chrome(将其从多任务菜单中滑出,或者只是等待 Android 将其杀死),然后在桌面会话中进行另一次编辑。当我再次打开它时,页面似乎会重新加载(进度条会延迟移动,直到页面出现)并进行初始 ajax 调用(显示我的加载微调器)但 old 数据被检索最近的编辑。

据我了解,Chrome 正在加载页面的缓存版本。这似乎包括 Ajax 调用的缓存结果。如何确保从服务器查询中检索到新数据而不是过时的缓存数据?我认为甚至连 Web 套接字连接都不会恢复,因为这也会恢复缓存数据,因此看不到进一步的编辑。似乎唯一的解决方案是重新加载页面,但这是一个非常糟糕的体验。

【问题讨论】:

    标签: android ajax google-chrome breeze


    【解决方案1】:

    解决方案是确保所有 Breeze ajax 请求都禁用缓存。

    breeze.config.getAdapterInstance("ajax").defaultSettings = { cache: false };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-05
      • 2020-10-23
      • 2016-12-31
      • 1970-01-01
      • 1970-01-01
      • 2016-10-22
      相关资源
      最近更新 更多