解析jquery中的ajax缓存问题
jquery的ajax请求默认请求cache是true 也就是开启的,dataType为script和jsonp时默认为false。现在我要在浏览器里读取缓存,因为ajax请求的数据很大,请求一次就够了。但是问题来了,在FF里面,是没有ajax缓存的,也就是每次都会触发ajax请求,这点和IE不一样。所以在这里就得注意,做个判断,阻止触发ajax事件。
通过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);//缓存记录,来做标记
相关推荐
curiousL 2020-08-03
TONIYH 2020-07-22
83510998 2020-07-18
wcqwcq 2020-06-26
delmarks 2020-06-14
ppsurcao 2020-06-14
tthappyer 2020-06-07
kentrl 2020-11-10
结束数据方法的参数,该如何定义?-- 集合为自定义实体类中的结合属性,有几个实体类,改变下标就行了。<input id="add" type="button" value="新增visitor&quo
ajaxyan 2020-11-09
zndy0 2020-11-03
学留痕 2020-09-20
Richardxx 2020-11-09
learningever 2020-09-19
chongxiaocheng 2020-08-16
ajaxhe 2020-08-16
lyqdanang 2020-08-16