Ⅰ 如何優雅的解決velocity與jquery的沖突
1、使用jQuery代替$. 如:jQuery.ajax();
缺點:不適合擴展,一旦替換成第三方庫時,那就麻煩大發
2、使用jQuery.noConflict。 如:var j = jQuery.noConflict(); j.ajax();
缺點:當使用jQuery的相關插件時,會使得插件失效哦!
3、wrap jQuery中的沖突方法。
如$.ajax()在Velocity中會沖突,則重新定義如下:
function dw(){}
dw.ajax=function(s){ jQuery.ajax(s); } dw.ajax();
方案3基本上解決了1、2中的缺點~~~故推薦使用第三種方法!
4、
定義一個 $JQ="$."
以後可以用 ${JQ}ajax().......
5. (function($){
//......
})(jQuery);
可以解決大部分問題了
Ⅱ Ajax為什麼需要使用緩存,緩存的優勢有哪些
AJAX如果不進行設置的話,很多時候都是直接調用緩存處理的,緩存的優勢當然是提高訪問的速度了啊~
Ⅲ Ajax禁止緩存問題
在url後面增加一個,隨機數當參數,就緩存不了。
jquery,cache:false的本質就是這樣做的。
加入你請求的原始url是:
var url = "http://www.test.com/list";
你可以這樣:
var random = Math.random();
url += "?_="+random;
Ⅳ 如何禁用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庫文件裡面吧。
解答完畢!
Ⅳ 使用ajax的網站用pwa怎麼改造
他那後面有吧
Ⅵ 有關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
Ⅶ 如何解決ajax與ssl層之間的沖突
使用一個統一filter處理。可以在每個ajax請求的header中加上同一個參數,表明是ajax請求,讓統一的過濾器做安全驗證。
Ⅷ ajax請求請求數據緩存問題分析以及解決方案
在發送ajax請求的時候,為了保證每次的都與伺服器交互,就要傳遞一個參數每次都不一樣,這里就用了時間戳
大家在系統開發中都可能會在js中用到ajax或者dwr,因為IE的緩存,使得我們在填入相同的值的時候總是使用IE緩存
什麼是Ajax緩存原理?
Ajax在發送的數據成功後,會把請求的URL和返回的響應結果保存在緩存內,當下一次調用Ajax發送相同的請求時,它會直接從緩存中把數據取出來,這是為了提高頁面的響應速度和用戶體驗。當前這要求兩次請求URL完全相同,包括參數。這個時候,瀏覽器就不會與伺服器交互。
Ajax緩存的好處
這種設計使客戶端對一些靜態頁面內容的請求,比如圖片,css文件,js腳本等,變得更加快捷,提高了頁面的響應速度,也節省了網路通信資源。
Ajax緩存的不足
Ajax緩存雖然有上述的好處,但是如果通過Ajax對一些後台數據進行更改的時候,雖然數據在後台已經發生改變,但是頁面緩存中並沒有改變,對於相同的URL,Ajax提交過去以後,瀏覽器還只是簡單的從緩存中拿數據,這種情況當然就不行了。
四、解決Ajax緩存問題的方法
解決這個問題最有效的辦法是禁止頁面緩存,有以下幾種處理方法:
1、在ajax發送請求前加上 xmlHttpRequest.setRequestHeader(「Cache-Control」,」no-cache」);
2、在服務端加 header(「Cache-Control: no-cache, must-revalidate」);
3、在ajax發送請求前加上 xmlHttpRequest.setRequestHeader(「If-Modified-Since」,」0″);
4、在 Ajax 的 URL 參數後加上 "?fresh=" + Math.random(); //當然這里參數 fresh 可以任意取了
5、第五種方法和第四種類似,在 URL 參數後加上 "?timestamp=" + new Date().getTime();
6、用POST替代GET:不推薦
7、 jQuery 提供一個防止ajax使用緩存的方法:
javascript" language=" JavaScript ">
$.ajaxSetup ({
cache: false //close AJAX cache
});
8、修改load 載入的url地址,如在url 多加個時間參數就可以:
function loadEventInfoPage(eventId){
$.ajaxSetup ({
cache: true // AJAX cache 下面加上時間後load的頁面中的js、css圖片等都會重新載入,
//加上這句action會重新載入,但是js、css、圖片等會走緩存
});
$("#showEventInfo").load(ctx + "/custEvents/viewEvent.action", {"complaint.Id":eventId, "tt":(new Date()).getTime()},function(){})
}
9、設置html的緩存
Ⅸ AJAX與JS沖突
為什麼要用文件的形式引入呢?直接用腳本吧。如果RegisterStartupScript沒效果,可能是DOM操作的問題,建議你用RegisterClientScriptBlock。