Как остановить результаты кэширования нагрузки jpery php - PullRequest
1 голос
/ 19 марта 2011

У меня есть новая проблема, которая ДОЛЖНА затрагивать практически каждого, кто использует AJAX.У меня есть страница HTML / JavaScript, которая (используя вызов jQuery) загружает .php в мою страницу - но, похоже, она кэширует результаты и часто просто возвращает кэшированную информацию, а не перезапускает скрипт PHP.

Приведенный ниже код показывает, как я пытаюсь решить эту проблему (спасибо bazmegakapa за код - я только что попытался добавить кеш: flase bit - но, похоже, он не работает).

$(document).ready(function() {
    cache: false
    $('#selecthere').load('/temp/php_script.php', function () { //callback
        $('select', this).change(function () { //catch onchange event of select
            //call your function here, pass the selected value
            initialize($(this).val());
        });
    });
});`

Ответы [ 3 ]

3 голосов
/ 19 марта 2011

Ваш файл php_script.php должен отправлять правильные заголовки для предотвращения кэширования.

<?php
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>
1 голос
/ 19 марта 2011

Просто добавьте случайное число в конец

var random = Math.random() * 10;
$('#selecthere').load('/temp/php_script.php?r=' + random, function () { 
0 голосов
/ 19 марта 2011

Похоже, что вы делаете кеш: ложь не так.

$(document).ready(function() { 
    $.ajax('/temp/php_script.php', 
       { 
           cache: false, 
           success: function(result) {
               $('#selecthere').html(result);
           }
       }
    );
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...