Backbone: Quand je clique sur le bouton retour, json est rendu

Créé le 24 sept. 2011  ·  10Commentaires  ·  Source: jashkenas/backbone

J'ai l'application Rails utilisant le backbone. Lorsque je clique sur le bouton retour ou le bouton avant au hasard, je verrai json.

invalid

Commentaire le plus utile

Merci!
pour moi

$.ajaxSetup
  cache: false

était suffisant

Tous les 10 commentaires

Pouvez-vous fournir plus d'informations? De nombreuses personnes utilisent actuellement Backbone en production avec Rails et ne voient pas le même comportement.

Plus précisément, veuillez fournir un cas de test afin que nous puissions reproduire avec précision le problème.

Je vis la même chose - chaque fois que je navigue vers une URL externe (non gérée par l'application backbone) ou que je ferme l'onglet, puis que je reviens ou rouvre l'onglet - je vois JSON. Je ne sais pas comment puis-je fournir un cas de test, mais je peux partager quelques détails qui pourraient vous donner une idée de ce qui se passe.

l'application utilise la fonction _.delay pour synchroniser la collection de modèles avec le serveur (collection.fetch()). Le serveur est une application RoR qui sert à la fois l'application et JSON pour la synchronisation sur la même URL et utilise des en-têtes pour décider s'il doit servir l'ensemble de l'application ou simplement un tableau JSON de données pour les modèles. Est-ce que cela pourrait être le problème?

Mon autre idée est que le navigateur met en cache la dernière demande qu'il a faite au serveur et que lorsque vous appuyez en arrière, il la rend simplement. Si je parviens à quitter l'application rapidement (avant la première demande de synchronisation), le retour rend l'application (pas le JSON).

Avez-vous des idées pour surmonter cela?

j'ai résolu le problème en faisant ça

$.ajaxSetup
  beforeSend: (xhr) ->
    xhr.setRequestHeader "Accept", "application/json"
  cache: false

Merci!
pour moi

$.ajaxSetup
  cache: false

était suffisant

+1

+1

J'ai eu le même problème dans mon application RoR et votre solution a fonctionné pour moi.

Merci @omenking @antonlitvinenko

Mieux encore, ajoutez toujours explicitement l'extension .json à vos URL et laissez le navigateur mettre en cache les deux, json et la page html (si cela ne vous dérange pas), c'est- /users/1 dire /users/1.json au lieu d'écraser l'entrée du cache pour la même URL. Sinon, vous manquerez les avantages de la mise en cache du navigateur (ce qui est bien, non ? ;)) Just my 2c.

@Sija vous avez raison, mais j'ai changé en .json explicite et lorsque je teste, j'ai reçu le même problème de json écraser la page. Avez-vous une idée de ce que je fais mal? héhé
tks

+1

Cette page vous a été utile?
0 / 5 - 0 notes