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);//緩存記錄,來做標記