如何停止缓存jquery php加载的结果

时间:2011-03-19 09:24:46

标签: php javascript jquery ajax

我有一个新问题,几乎每个人都会影响使用AJAX。我有一个HTML / JavaScript页面(使用jQuery调用)将.php加载到我的页面中 - 但它似乎缓存结果并且通常只返回缓存的信息而不是重新运行PHP脚本。

下面的代码是我试图克服这个问题的方法(感谢bazmegakapa的代码 - 我刚刚尝试添加缓存:flase位 - 但它似乎不起作用。)

$(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 个答案:

答案 0 :(得分:3)

您的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 :(得分:1)

只需在末尾添加一个随机数

var random = Math.random() * 10;
$('#selecthere').load('/temp/php_script.php?r=' + random, function () { 

答案 2 :(得分:0)

看起来你正在做缓存:错误。

$(document).ready(function() { 
    $.ajax('/temp/php_script.php', 
       { 
           cache: false, 
           success: function(result) {
               $('#selecthere').html(result);
           }
       }
    );
});