这是我的剧本。我希望缓存结果,但如果我的鼠标再次输入,它会继续发送请求的请求。
$('.poplist li').mouseenter(function(){
t=$(this).parent().attr("rel");
i=$(this).attr("rel");
$.ajax({
url:"/j/place",
data:{"t":t,"tid":i},
cache:true,
success:function(data){
data= jQuery.parseJSON(data);
s=$('.left[rel='+t+']');
s.find('.intro').html(data["intro"]);
s.find('.shop-avat img').attr("src","http://img.douban.com/u/plao/"+data['img']);
}
})
})
答案 0 :(得分:1)
cache
时,jQuery.ajax的true
选项 nothing ,并且缓存完全由浏览器完成。但是,如果将其设置为false
,则会将高速缓存破坏时间戳附加到请求中。就这样。
更新: 要查看是这样,请查看jQuery.ajax的源代码,版本1.6.4,第676行,这里:https://github.com/jquery/jquery/blob/1.6.4/src/ajax.js#L676
答案 1 :(得分:0)
一个简单的解决方案是,
您可以将结果(data)
保存在变量中,并且可以在ajax请求之前使用if
函数。在鼠标输入时,如果变量没有存储数据,则触发ajax请求,否则返回false。