我有一个 rails 应用程序,并且我不断收到 pjax 请求的奇怪行为。当我查看我的开发日志时,我可以看到正在发出两个请求。第一个请求是 pjax,下一个不是。结果页面仍然重新加载。
如果有人可以帮助我,我将不胜感激。
我有一个 rails 应用程序,并且我不断收到 pjax 请求的奇怪行为。当我查看我的开发日志时,我可以看到正在发出两个请求。第一个请求是 pjax,下一个不是。结果页面仍然重新加载。
如果有人可以帮助我,我将不胜感激。
JQuery pjax 插件有一个默认的错误处理程序,它将简单地重新加载目标页面。这个错误处理程序在超时时间过后被调用,pjax 设置得非常低。因此,如果您的请求花费的时间过长,您将看到两个相同的请求。pjax 请求(可能带有 _pjax 属性集),然后是另一个非 pjax 请求。在浏览器中,您可能会看到整个页面重新加载。
我在我的情况中发现的一件事是,响应本身并没有花那么长时间。但是,返回的 HTML 包含 Flash 嵌入。我不确定 pjax 代码是在加载 Flash 嵌入之前还是之后得到响应。
为了解决这个问题,我改变了我的 PJax 代码看起来像......
$.pjax({
url: xhr.getResponseHeader('Location'),
container: '#container',
timeout: 4000 // pick a suitable timeout
});
当然,这是直接调用pjax。如果您不直接调用它,则必须找到类似的解决方案。
我也遇到过这个问题——看起来这是一个与浏览器缓存有关的问题。我注意到,如果我清除历史记录并缓存它会停止在 Chrome 中发生。我还没有解决它,但我想它与禁用浏览器缓存有关?