2013-02-07 32 views
11

我已經到了需要在頁面上使用Ajax的地步,但它只是一小部分 - 查看輸入的用戶名是否在數據庫中。如解釋here Ajax可以單獨使用JavaScript來完成。這樣做有什麼優點/缺點?我傾向於這樣做,因爲我不想要一個大型圖書館,並且認爲當所有其他東西都已經是JavaScript的時候,它是不必要的複雜。不用jQuery做Ajax有多糟糕?

+0

這是相同的,也不是最好的,100%相同 – mikakun

+0

jQuery使ajax調用在代碼中更短,以及綁定事件和很多其他的東西。如果你必須編寫if(IE && version ...),那麼每次你的代碼確實非常冗長時,你可能會發現自己使用jQuery的時候實際上使用了很多函數,但是如果你只打算用它來進行一次AJAX調用,那麼最好不要使用它 – HMR

+1

如果你從CDN(例如Google's)加載jQuery,那麼你的頁面訪問者很可能已經通過訪問其他網頁緩存了它,儘管jQuery的壓縮版本確實不是那麼大,只有90.5 KB。 –

回答

1

沒有什麼差別比你的網頁上加載80KB的Jquery.min.js其他...

1

這並不糟糕,jQuery只是提供了一個快捷方式來完成它,而手工編寫它的所有內容都會變得更大一些。這是非常多的。

如果你只是想一個「AJAX輔助」,請嘗試使用這段代碼從怪異模式:http://www.quirksmode.org/js/xmlhttp.html

2

這並不是說不好...只是小而不爲: Small Ajax JavaScript library 作爲解釋的存在,你也可以只得到一個小型圖書館,單獨處理阿賈克斯。

編輯: 由於MCL在他的評論如下指出的,還有這個片段:https://gist.github.com/mythz/1334560

這似乎實現了jQuery語法,但只針對AJAX調用,如果你已經習慣了,這可能是更好的選擇!

+1

我找到了一個有趣的[ajax standalone library](https://gist.github.com/mythz/1334560)。我沒有測試它,但似乎可以使用原始的jQuery語法來調用'$ .ajax()'調用。這將使他們易於互換。 – MCL

+0

適用於習慣於jQuery語法的人,如果您不介意的話,我會將其添加到答案中並指向評論部分。 –

+0

當然。我相信以這個庫爲基礎,添加像'$ .post()','$ .getJSON()等實用程序包裝並不難。 – MCL

1

jQuery只是一個允許我們更有效地進行AJAX調用的框架。較小的代碼。無論您是否使用jQuery都沒關係。這完全取決於你自己決定。如果jQuery是重量級的,那麼只需使用僅提供AJAX功能的庫。你也可以純JS來進行AJAX調用。

1

我認爲最大的親是jQuery解決了處理AJAX調用的跨瀏覽器方式。

6

如果您不需要支持IE的舊版本,如IE6,那麼它很簡單,你不「T需要任何factory function,只是一個普通的:

var http = new XMLHttpRequest(); 

對於所有瀏覽器。此外,在最新的瀏覽器(我相信也是在IE8),可以簡化使用多個事件onload代替onreadystate

var http = new XMLHttpRequest(); 

http.open("GET", "somepage.html", true); 
http.onload = function() { 
    alert("Request complete: " + http.responseText); 
} 
http.send(); 

也就是說頗爲相似success處理程序的jQuery。

有關詳細信息,請參閱:Using XMLHttpRequest

然而,jQuery的現在有Ajax調用威脅promises,這使得一些場景(如等待多個AJAX調用來完成,然後運行一些代碼)更易於開發。