Ajax и проблема с кешем браузера - PullRequest
0 голосов
/ 24 ноября 2011

У меня есть небольшой веб-сайт, работающий на Sinatra, который обновляет контент через ajax по запросу xhr.

javascript

function get_shows() {
  $.ajax({
    type: 'GET',
    dataType: 'HTML',
    url: '/update/',
    success: function(data) {
      $('#show_list').fadeOut('fast', function(){
        $(this).html(data).fadeIn('fast');
      });
    }, 
    error:function(data){console.log(data.statusText)}
  });
}

ruby ​​

get '/update/' do
  if request.xhr?
     erb :index_show_list, :layout => false
  else 
    erb :index  
  end
end

ПроблемаУ меня есть, когда пользователь обновляет контент через ajax, кеш браузера для этой страницы обновляется и показывает только извлеченный фрагмент, и все теги head и body исчезли.Страница продолжает отображаться нормально, пока вы не покинете страницу, а затем вернетесь через кнопку возврата назад, и в этом случае все, что отображается, - это HTML-фрагмент без остальной части страницы.

1 Ответ

1 голос
/ 17 января 2012

У меня была такая же проблема.Попробуйте установить кеш в false в вашем запросе ajax.По умолчанию установлено значение true.

Подробнее см. http://api.jquery.com/jQuery.ajax/.

Пример:

function get_shows() {
  $.ajax({
    type: 'GET',
    cache: false,
    dataType: 'HTML',
    url: '/update/',
    success: function(data) {
      $('#show_list').fadeOut('fast', function(){
        $(this).html(data).fadeIn('fast');
      });
    }, 
    error:function(data){console.log(data.statusText)}
  });
}
...