jquery pjax请求发送两次

Les*_*ial 11 jquery ruby-on-rails pjax

我有一个rails应用程序,我继续得到一个奇怪的行为与pjax请求.当我查看我的开发日志时,我可以看到正在发出两个请求.第一个请求是pjax而下一个请求不是.结果页面仍然重新加载.

如果有人能帮助我,我感激不尽.

小智 14

JQuery pjax插件有一个默认的错误处理程序,它只是重新加载目标页面.超时过去时会调用此错误处理程序,pjax设置得非常低.因此,如果您的请求时间过长,您将看到两个相同的请求.pjax请求(可能设置了_pjax属性),后跟另一个非pjax请求.在浏览器中,您可能会看到整个页面重新加载.

我在我的情况中发现的一件事是,响应本身并没有那么久.但是,返回的HTML包含flash嵌入.我不确定pjax代码是否在加载flash嵌入之前或之后获得响应.

为了解决这个问题,我改变了我的PJax代码,看起来像......

$.pjax({
        url: xhr.getResponseHeader('Location'),
        container: '#container',
        timeout: 4000 // pick a suitable timeout
      });
Run Code Online (Sandbox Code Playgroud)

当然,这是直接调用pjax.如果您不是直接调用它,则必须找到类似的解决方案.