這只是一個普遍的問題。哪個更好,傳統的ajax或jquery ajax? 因爲當我使用jquery ajax時,它似乎在IE中做了時髦怪異的東西。它應該是一個跨瀏覽器的庫...所以我對使用哪一個有點困惑。再次,我問這是因爲串行殺手IE ...傳統的Ajax或JQuery的Ajax,哪一個更好?
時髦的奇怪的東西,即有時它停止發送信息到服務器後,只需幾個請求,即使當我把'緩存:假'。
這只是一個普遍的問題。哪個更好,傳統的ajax或jquery ajax? 因爲當我使用jquery ajax時,它似乎在IE中做了時髦怪異的東西。它應該是一個跨瀏覽器的庫...所以我對使用哪一個有點困惑。再次,我問這是因爲串行殺手IE ...傳統的Ajax或JQuery的Ajax,哪一個更好?
時髦的奇怪的東西,即有時它停止發送信息到服務器後,只需幾個請求,即使當我把'緩存:假'。
的jQuery $.ajax()
應該在IE瀏覽器的罰款。它使用XMLHttpRequest
就像你自己做的那樣。但jQuery的方法已經增加了一些頭髮和東西,以使其在不同瀏覽器之間始終如一地工作。
看一看jQuery's ajax source code。其中一個原因是593 sloc,而不僅僅是4,是修復和包裝不同瀏覽器之間的所有不一致。評論將揭示許多這些問題。
我想說jQuery中的大部分代碼都是用於生成語法糖的(儘管當然很多loc需要瀏覽器怪癖。) – npup 2010-10-06 09:19:17
實際上,在'ajax.js中有很少的瀏覽器解決方法代碼'。大多數工作都是爲了獲得額外的功能,比如通過相同的接口,事件鉤子或者使用'load()'將內容注入到DOM中(通過一個可怕的和不明智的正則表達式黑客)來處理JSONP。 – bobince 2010-10-06 09:23:53
@bobince,@npup:你說得對。改編我的誇張聲明:) ......然而,有很多關於「這是因爲Opera沒有這樣做......」,「IE不會在這裏開火」,「那裏有Firefox 1.5」等... – 2010-10-06 09:26:00
簡單。 JQuery的。
缺點:
上升空間:
顯然你必須花時間學習jQuery框架,但結果是jQuery是最常用的JS框架之一。所以你的投資時間將會得到回報,因爲你會發現jQuery可以做的不僅僅是Ajax通信。
此外,jQuery允許遍歷DOM樹的方式是至高無上的,這使得在jQuery中開發事物變得非常簡單。
沒有什麼意義的區別。 jQuery的ajax()
自然建立在XMLHttpRequest
上,它們應該表現相同。我認爲其他一些腳本錯誤導致了「怪異的奇怪東西」。
請注意,如果您想在沒有大型JS庫的情況下進行跨瀏覽器XMLHttpRequest,那麼這些日子實際上非常簡單。所有你需要的是IE6的修正:
if (!window.XMLHttpRequest && 'ActiveXObject' in window) {
window.XMLHttpRequest= function() {
return new ActiveXObject('MSXML2.XMLHttp');
}
}
然後你就可以在任何地方使用標準new XMLHttpRequest
接口。不再需要部署overrideMimeType
黑客(這是古老的Mozilla里程碑版本),並且從來沒有任何需要嘗試多個ActiveXObject progid。
也許你可以澄清你的意思是「怪異的奇怪東西」。 – 2010-10-06 09:07:40
'時髦怪異的東西'可能是因爲IE緩存GET請求是相同的,請嘗試添加一個虛擬參數(timestamp)或使用POST。 – Fermin 2010-10-06 09:13:13
@Fermin:我正在使用「發佈」請求。 – Shaoz 2010-10-06 09:14:54