应用程序被杀后,Chrome for Android从缓存重新加载

时间:2014-03-27 16:36:25

标签: android ajax google-chrome breeze

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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