解析jquery中的ajax缓存问题
更新时间:2013年12月19日 10:07:37 作者:
现在我要在浏览器里读取缓存,因为ajax请求的数据很大,请求一次就够了。但是问题来了,在FF里面,是没有ajax缓存的,也就是每次都会触发ajax请求,这点和IE不一样
jquery的ajax请求默认请求cache是true 也就是开启的,dataType为script和jsonp时默认为false。现在我要在浏览器里读取缓存,因为ajax请求的数据很大,请求一次就够了。但是问题来了,在FF里面,是没有ajax缓存的,也就是每次都会触发ajax请求,这点和IE不一样。所以在这里就得注意,做个判断,阻止触发ajax事件。
function ajax_show(apartId,roomClass,sortTile){
HX_THIS_FANGXING_NUM=sortTile;
huxing_pic_set_color();
var this_li=$('#title_'+sortTile);
var cache=this_li.data("cache");
if(undefined!=cache){
var data_arr =cache.split('-');
xg_pic_links=data_arr[0];//缓存记录
layout_pic_links=data_arr[1];
layout_big_pic_links=data_arr[2];
product_links=data_arr[3];
xg_pic_deal_array();
xg_show_pic(xg_now_pic_id);
}else{
$.ajax({//用JQ的缓存cache在FF下还是会发起新请求
type: "POST",
url: "index.php?m=content&c=index&a=ajax_all_pic",
data: "apartId=123&roomClass=123",
dataType:'text',
success: function(backdata){
this_li.data('cache',backdata);//缓存记录
var data_arr =backdata.split('-');
xg_pic_links=data_arr[0];
layout_pic_links=data_arr[1];
layout_big_pic_links=data_arr[2];
product_links=data_arr[3];
xg_pic_deal_array();
xg_show_pic(xg_now_pic_id);
}
});
}
}
通过this_li.data('cache',backdata);//缓存记录,来做标记
复制代码 代码如下:
function ajax_show(apartId,roomClass,sortTile){
HX_THIS_FANGXING_NUM=sortTile;
huxing_pic_set_color();
var this_li=$('#title_'+sortTile);
var cache=this_li.data("cache");
if(undefined!=cache){
var data_arr =cache.split('-');
xg_pic_links=data_arr[0];//缓存记录
layout_pic_links=data_arr[1];
layout_big_pic_links=data_arr[2];
product_links=data_arr[3];
xg_pic_deal_array();
xg_show_pic(xg_now_pic_id);
}else{
$.ajax({//用JQ的缓存cache在FF下还是会发起新请求
type: "POST",
url: "index.php?m=content&c=index&a=ajax_all_pic",
data: "apartId=123&roomClass=123",
dataType:'text',
success: function(backdata){
this_li.data('cache',backdata);//缓存记录
var data_arr =backdata.split('-');
xg_pic_links=data_arr[0];
layout_pic_links=data_arr[1];
layout_big_pic_links=data_arr[2];
product_links=data_arr[3];
xg_pic_deal_array();
xg_show_pic(xg_now_pic_id);
}
});
}
}
通过this_li.data('cache',backdata);//缓存记录,来做标记
相关文章
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
这节介绍一个自己写的jQuery文本框字符限制插件,至于如何写插件,我这里就不多讲了,可以查看相关介绍,这里主要介绍下该插件的功能2012-02-02jQuery源码分析-05异步队列 Deferred 使用介绍
异步队列是一个链式对象,增强对回调函数的管理和调用,用于处理异步任务2011-11-11多个datatable共存造成多个表格的checkbox都被选中
所以当有多个datatable 引用到一个页面中的时候,全选事件会匹配全部的datatable,所以造成全部多个表格的checkbox被都被选中2013-07-07JQuery Easyui Tree的oncheck事件实现代码
最近项目中有用到Easyui Tree,我想要checkbox的选中事件,但是api只提供了一个onClick事件,我百度、google之后,额,还是看js吧2010-05-05jquery序列化form表单使用ajax提交后处理返回的json数据
这篇文章主要介绍了jquery序列化form表单,使用ajax提交后处理返回的json数据的示例,需要的朋友可以参考下2014-03-03
最新评论