jqueryajax使用緩存
『壹』 jquery的輪詢使用ajax導致內存溢出問題
你這種情況就不應該用輪詢,而應該在ajax的回調函數(最好是complete)中再次發起下一次請求,這樣就可以保證每次請求都是在上一次請求結束後才發起的,這樣就不會造成崩潰了。比如:
function xxx(){
$.ajax({
url:"......",
data:{......},
success:function(data){
//處理返回數據
},
error:function(){
//處理錯誤
},
complete:function(){ //不管成功與失敗,都會發生complete回調
setTimeout(xxx,5000); //5秒後再次發起ajax請求
//也可以直接用 xxx();可以做到完全實時,但會犧牲一些性能
}
});
}
特別注意,xxx函數在外部調用時,不能再用setInterval,而應該是xxx()直接調用!
『貳』 jquery里的緩存問題如何解決AJAX面試題
如果直接用jQuery里的$.ajax()方法的話,去除緩存很簡單,只需要配置一下緩存屬性cache為false,但如果想要簡單寫法getJSON(),去除緩存就不能通過配置來解決了。因為getJSON根本沒有這個緩存屬性讓你來配置。因為如果其調用的地址URL和之前的一樣的話,回調函數會直接在緩存裡面讀取數據,而不是進後台調用相應的方法。 解決方法就是讓他的每次請求的URL地址不一樣就行,但是同時又要不影響請求的服務所需要的數據,那麼可以有一下幾種方法: 1、$.getJSON(URL?t=+new Date(),function(json){});就是原有的URL基礎上加一個時間變數,每次的請求地址就不一樣了。 2、$.getJSON(URL?rand=+Math.random,function(json){});就是原有的URL基礎上加上一個隨機變數,不過這個方法有風險,萬一隨機數一樣。。。。。。 3、第三種方法就是自己定義一個遞增變數,在URL後面加上這個遞增變數,每次請求完後,就遞增一下。 $.get()去除緩存的方法和$.getJSON()相同。
『叄』 在jquery ajax裡面cache怎麼用
使用方法:jQuery.ajax( options )
其中options有很參數,是以key/value形式出現的。
在使用過程中,遇到過一個問題,就是回調方法不執行,後來查了一下,是緩存的問題。
cache Default: true,
Added in jQuery 1.2, if set to false it will force the pages that you request to not be cached by the browser.
所以如果不想使用緩存,只要cache:false就可以了。
如:
$.ajax({ type: "POST", url: "some.php",
cache:false, success: function(msg){ alert( "Data Saved: " + msg ); } })
『肆』 jquery ajax緩存問題
圖片的名字還是不變么?在圖片src中加個參數,如
$("img").attr("src","test.jpg?rand="+ new Date().getTime()+Math.random());
『伍』 如何取出jquery ajax的緩存信息
您好,我來為您解答:
Get方式:
用get方式可傳送簡單數據,但大小一般限制在1KB下,數據追加到url中發送(http的header傳送),也就是說,瀏覽器將各個表單欄位元素及其數據按照URL參數的格式附加在請求行中的資源路徑後面。另外最重要的一點是,它會被客戶端的瀏覽器緩存起來,那麼,別人就可以從瀏覽器的歷史記錄中,讀取到此客戶的數據,比如帳號和密碼等。因此,在某些情況下,get方法會帶來嚴重的安全性問題。
Post方式:
當使用POST方式時,瀏覽器把各表單欄位元素及其數據作為HTTP消息的實體內容發送給Web伺服器,而不是作為URL地址的參數進行傳遞,使用POST方式傳遞的數據量要比使用GET方式傳送的數據量大的多。
總之,GET方式傳送數據量小,處理效率高,安全性低,會被緩存,而POST反之。僅供參考。
如果我的回答沒能幫助您,請繼續追問。
『陸』 如何禁用jquery ajax緩存
我們先看看這個問題是怎麼引起來的:
如果沒有進行額外設置的話,如果請求的地址和參數及參數的值完全一樣,就會發生jquery ajax使用緩存的情況。
jquery ajax使用緩存的解決方案:
1.在請求的url後面加上一個隨機參數(***.do?random=Math.random)這不失為一個好方法,缺點就是在所有的jquery ajax請求的地方都要加上這個隨機參數,新項目還行,老項目的花,這是個巨大的工作量。
2.給jquery ajax請求設置禁用緩存的全局設置
我們都知道在jquery ajax的的方法中有個cache參數,如果設置為false,那麼就不進行緩存。這么怎麼設置全局的jquery ajax cache參數呢?
答案就是ajaxSetup() 方法,該方法可以為所有的ajax請求統一設置默認參數。那麼可以設置如下代碼:
$(function(){
$.ajaxSetup ({
cache: false //關閉AJAX緩存
});
});
最後如果沒有common.js文件(所有頁面都調用的JS文件),那麼把這段代碼放到jquery庫文件裡面吧。
解答完畢!
『柒』 jquery的ajax請求的緩存問題
如果沒有進行額外設置的話,如果請求的地址和參數及參數的值完全一樣,就會發生使用緩存的情況。我碰到過很多這樣的。
『捌』 jquery使用ajax技術緩沖頁面
你這是當然的不會出現遮罩層啊。ajax就是非同步請求數據,在執行ajax的時候,js語句繼續往下執行。也就是走showorhidebg(2);
也就是你那上面的代碼,顯示出了遮罩層,立馬就把遮罩層隱藏掉(可以打斷點調試,就能發現遮罩層出現了,然後又消失)……正確的做法是,把遮罩層隱藏放入ajax請求完成之後。也就是你上面的do what 裡面。
『玖』 有關jquery中ajax的緩存問題,怎麼解決
jquery中ajax的緩存問題需要增加參數cache:
$.ajax({
type: "GET",
cache: true,
url: 'aa.php',
dataType: "html",
cache: true,
success: function (res) {
$('.page-loading').remove();
$('.page-content .page-content-body').html(res);
});
這樣類似以下請求就可以緩存了:
aa.com/aa.php
aa.com/aa.css
aa.com/aa.js?_=1373600904652