El plugin JQuery pjax tiene un controlador de error predeterminado, que simplemente recargará la página de destino. Este controlador de errores se llama cuando ha transcurrido el tiempo de espera, que pjax establece muy bajo. Como resultado, si su solicitud toma demasiado tiempo, verá dos solicitudes idénticas. La solicitud de pjax (probablemente con el conjunto de atributos _pjax), seguido de otra solicitud que no sea pjax. En el navegador, es probable que vea una página completa de recarga.
Una cosa que encontré en mi situación, fue que la respuesta en sí misma no llevaba tanto tiempo. Sin embargo, el HTML que se devolvió incluía una incrustación flash. No estoy seguro de si el código pjax obtiene su respuesta antes o después de que se cargue la memoria flash.
Para resolver el problema, he cambiado mi código PJax para parecerse ...
$.pjax({
url: xhr.getResponseHeader('Location'),
container: '#container',
timeout: 4000 // pick a suitable timeout
});
Por supuesto, esto está llamando pjax directamente. Si no lo está llamando directamente, tendrá que encontrar una solución similar.
Necesitamos ver más que una explicación escasa de su pregunta. Por favor, publique un código relevante, archivos de registro u otras cosas. – Bojangles
Me encuentro con el mismo problema. Tengo un ejemplo disponible [aquí en cloudfoundry] (http://scaffolding.cloudfoundry.com/book/list). Los enlaces de paginación y clasificación de tablas deben ser pjax, pero con Firebug puede observarlos haciendo una solicitud XHR seguida de una actualización completa de la página. El código fuente de la aplicación que se ejecuta allí es [aquí en GitHub] (https://github.com/robfletcher/grails-enhanced-scaffolding/tree/pjax) probablemente el archivo relevante sea 'grails.list.js' –
con Firebug Establecí que en mi caso el controlador de éxito predeterminado de pjax no puede encontrar ningún contenido utilizando el selector de fragmentos que le he dado. En cuanto a [el código pjax] (https://github.com/defunkt/jquery-pjax/blob/master/jquery.pjax.js#L106) en ese caso se realizará una actualización de página completa. No estoy seguro de por qué el selector no funciona, ya que la respuesta de AJAX parece estar bien y el selector es válido. –