demande jjpery pjax envoyer deux fois

J’ai une application rails et je continue à avoir un comportement étrange avec les requêtes Pjax. Lorsque je consulte mes journaux de développement, je constate que deux demandes sont en cours. La première demande est pjax et la suivante ne l’est pas. En conséquence, la page est toujours rechargée.

J’apprécie si quelqu’un pourrait m’aider avec ceci.

Le plugin JQuery pjax a un gestionnaire d’erreurs par défaut, qui rechargera simplement la page cible. Ce gestionnaire d’erreurs est appelé une fois le délai d’attente écoulé, ce que pjax initialise très bas. Par conséquent, si votre demande prend trop de temps, vous verrez deux demandes identiques. La demande pjax (probablement avec l’atsortingbut _pjax défini), suivie d’une autre demande non-pjax. Dans le navigateur, vous verrez probablement un rechargement complet de la page.

Une chose que j’ai trouvée dans ma situation, c’est que la réponse elle-même n’a pas été aussi longue. Cependant, le code HTML renvoyé incluait une intégration flash. Je ne sais pas si le code pjax obtient sa réponse avant ou après le chargement de l’incorporation de Flash.

Pour résoudre le problème, j’ai changé mon code PJax pour qu’il ressemble à …

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

Bien sûr, cela appelle directement pjax. Si vous ne l’appelez pas directement, vous devrez trouver une solution similaire.

J’ai également rencontré ce problème – il semble qu’il s’agisse d’un problème lié à la mise en cache du navigateur. J’ai remarqué que si j’efface l’historique et le cache, cela cesse de se produire dans Chrome. Je n’ai pas encore réussi à le résoudre, mais j’imagine que cela a quelque chose à voir avec la désactivation de la mise en cache du navigateur?