Backbone: Quando clico no botão Voltar, json é renderizado

Criado em 24 set. 2011  ·  10Comentários  ·  Fonte: jashkenas/backbone

Eu tenho um aplicativo Rails usando backbone. Quando clico no botão Voltar ou no botão frontal aleatoriamente, vejo json.

invalid

Comentários muito úteis

Obrigado!
para mim

$.ajaxSetup
  cache: false

foi o suficiente

Todos 10 comentários

Voce pode fornecer mais informação? Muitas pessoas estão usando o Backbone em produção com Rails no momento e não estão vendo o mesmo comportamento.

Especificamente, forneça um caso de teste para que possamos reproduzir o problema com precisão.

Estou experimentando o mesmo - sempre que navego para uma url externa (não controlada pelo aplicativo de backbone) ou fecho a guia e depois volto ou reabra a guia - estou vendo JSON. Não tenho certeza de como posso fornecer um caso de teste, mas posso compartilhar alguns detalhes que podem lhe dar uma pista do que está acontecendo.

o aplicativo usa a função _.delay para sincronizar a coleção de modelos com o servidor (collection.fetch ()). O servidor é um aplicativo RoR que atende tanto o aplicativo quanto o JSON para sincronização na mesma URL e usa cabeçalhos para decidir se precisa servir o aplicativo inteiro ou apenas uma matriz JSON de dados para modelos. poderia ser esse o problema?

Minha outra ideia é que o navegador armazene em cache a última solicitação feita ao servidor e, quando você pressiona de volta, ele apenas a renderiza. Se eu conseguir sair do aplicativo rapidamente (antes da primeira solicitação de sincronização), voltar renderiza o aplicativo (não o JSON).

Você tem alguma ideia de como superar isso?

Eu resolvi o problema fazendo isso

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

Obrigado!
para mim

$.ajaxSetup
  cache: false

foi o suficiente

+1

+1

Tive o mesmo problema em meu aplicativo RoR e sua solução funcionou para mim.

Obrigado @omenking @antonlitvinenko

Melhor ainda, sempre adicione explicitamente a extensão .json aos seus urls e deixe o navegador armazenar em cache tanto json quanto page html (se você não se importar), ou seja, /users/1 + /users/1.json vez de sobrescrever a entrada de cache para o mesmo url. Caso contrário, você perderá os benefícios do cache do navegador (o que é bom, certo?)) Just my 2c.

@Sija você tem razão, mas mudei para .json explícito e quando faço o teste foi recebido o mesmo problema de json sobrescrever a página. Você tem ideia do que estou fazendo de errado? ele Ele
tks

+1

Esta página foi útil?
0 / 5 - 0 avaliações