每天这个请求的内容都会发生变化:问题是浏览器(肯定是IE和Chrome),总是显示OLD结果(第一次获取),直到我清除缓存!
我该如何解决这个问题???
$('#q').keyup(function(){
var param = $(this).val();
if(param == ''){
return
}
if(param != ''){
$('#p_a').html('');
}
$.ajax({
url: 'ajax.php',
data: {qty: param},
type: 'GET',
success: function(result){
$('#p_a').html(result);
},
error: function(result){
$('#p_a').html('Error');
},
});
});
PHP:
<?php
if(isset($_GET['qty'])){
$cq = $_GET['qty'];
$cq = $link->real_escape_string($cq);
$GetP = $link->query("CALL GetPrice($cq)") or die('Query Error');
if(mysqli_num_rows($GetP) === 1){
while($p = mysqli_fetch_array($GetP)){
echo $p['values'];
echo $p['dates'];
}
}else{
echo 'More Rows';
}
}
?>
编辑:
这个jQuery功能是一个/正确/最佳/良好的工作解决方案吗?来自documentation:
cache (default: true, false for dataType 'script' and 'jsonp')
Type: Boolean
If set to false, it will force requested pages not to be cached by the browser. Note: Setting cache to false will only work correctly with HEAD and GET requests. It works by appending "_={timestamp}" to the GET parameters. The parameter is not needed for other types of requests, except in IE8 when a POST is made to a URL that has already been requested by a GET.
答案 0 :(得分:2)
您可以在cache: false
来电中设置$.ajax()
,或者如果您希望缓存影响您可以执行的给定页面中的所有请求
$.ajaxSetup({ cache: false });
这将向查询字符串添加_=32409035094
,该查询字符串是名为_
的参数,以及当前时间戳的值。这会创建一个唯一的请求字符串,导致从服务器而不是缓存中读取请求。