我有一个文档,在准备就绪($(function (){ ... })
)时,会创建一个将某些数据加载到表中的请求。然后,用户可以向此表添加项目。添加项目时,会向服务器发送一个请求以保存项目,然后将该行添加到表客户端(非常简单的应用程序)。
如果用户添加了一行,然后导航到其他页面,然后按下其后退按钮,则会请求重新加载所有行。但是,bfcache接管并服务于最后一个请求的结果缓存而不是命中服务器!我原以为会有一个真正的新请求,但事实并非如此。显然,刷新工作符合预期。
在服务器端,我使用的是ASP.NET MVC 3,任何动作响应都有 no caching 。
显而易见的解决方案是将cache: false
添加到特定请求或全局使用$.ajaxSetup({ cache: false })
。这真的不太理想,因为它应该是服务器控制何时应该缓存请求。
有没有简单的方法来禁用ajax请求的bfcache?或者是否有一种通过bfcache检测加载的简单方法,这样只有在页面从后向/前向加载时我才能cache: false
?