Не удается обновить с помощью метода jQuery.Get () - PullRequest
3 голосов
/ 14 сентября 2011

Я использую метод AJAX jQuery.Get (), потому что он действительно прост в использовании. Я использую это для загрузки страниц в div. Но когда я изменяю эту страницу, которая загружается и нажимаю Обновить. Это не будет обновлено. Единственное решение - выйти из браузера, открыть его и снова зайти на сайт. Это действительно раздражает, и мне интересно, есть ли решение для этого.

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

Используемый код:

function pagina_ophalen(pagina){    
    $.get('paginas/' + pagina + '.html', function(data){
    $('#inlaadcontent').css('display','none');
        $('#inlaadcontent').html(data);
    $('#inlaadcontent').fadeIn("slow");
    });

}

Большое спасибо. Дилан

Ответы [ 3 ]

4 голосов
/ 14 сентября 2011

Самое простое изменение, которое вы можете сделать, чтобы получить эту работу:

function pagina_ophalen(pagina){    
    $.get('paginas/' + pagina + '.html',
          { t = new Date().getTime() },    // ADD THIS
          function(data){
            $('#inlaadcontent').css('display','none');
            $('#inlaadcontent').html(data);
            $('#inlaadcontent').fadeIn("slow");
          });
}

В чем разница?

Ваш браузер кэширует результат запроса AJAX, потому чтоURL-адрес один и тот же каждый раз.Добавляя параметр запроса, который является переменным (?t=xxxxxxx, на основе текущей метки времени), вы заставляете браузер рассматривать каждый запрос как новый и извлекать страницу снова вместо использования кэшированного результата.

Если выВзглянув на функцию jQuery.ajax (из которых get - просто подмножество для удобства), вы увидите, что есть опция cache, которую вы можете установить.Это делает именно то, что я описал выше, если установлено false.

0 голосов
/ 14 сентября 2011

Самый простой способ - использовать http://api.jquery.com/jQuery.ajax/ и установить для кэша значение false.

$. Get () в любом случае вызывает $ .ajax, поэтому вы пропускаете шаг и получаете правильный результат.

0 голосов
/ 14 сентября 2011

Проблема в кешировании. Попробуйте добавить случайное число к вашему URL:

var randomToken = Math.random(); // Or replace if you need
$.get('paginas/' + pagina + '.html' + ? randomToken, function(data) {
    // ...
});
...