我已经到了需要在我的页面上使用 Ajax 的地步,但这只是一小部分 - 查看输入的用户名是否在数据库中。正如这里所解释的, Ajax 可以单独使用 JavaScript 完成。这样做的优点/缺点是什么?我倾向于这个,因为我不想要一个大型库,并且认为当其他一切都已经是 JavaScript 时,它会变得不必要地复杂。
6 回答
如果你不需要支持老版本的IE,比如IE6,那么很简单,你不需要任何工厂函数,简单的:
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的处理程序非常相似。
有关详细信息,请参阅:使用 XMLHttpRequest
然而,jQuery 现在将 ajax 调用威胁作为promises,这使得一些场景(比如在运行一些代码之前等待多个 ajax 调用完成)更容易开发。
还不错……只是没有那么小: Small Ajax JavaScript library ,正如那里解释的那样,您也可以只获得那些单独处理 ajax 的小型库之一。
编辑:正如 MCL 在他的评论中指出的那样,还有这个片段:https ://gist.github.com/mythz/1334560
它似乎实现了 jQuery 语法,但仅适用于 ajax 调用,如果您习惯了它,这可能是一个更好的选择!
这一点都不错,jQuery 只是提供了一个快捷方式来完成它,而手动编写它会变得更大一些。差不多就是这样。
如果您只想要一个“ajax 助手”,请尝试使用来自 quirksmode 的这段代码:http ://www.quirksmode.org/js/xmlhttp.html
jQuery 只是一个允许我们更有效地进行 AJAX 调用的框架。较小的代码。是否使用 jQuery 并不重要。这完全由您决定。如果 jQuery 是重量级的,只需使用仅提供 AJAX 功能的库。您也可以使用纯 JS 进行 AJAX 调用。
我认为最大的优点是 jQuery 解决了处理 AJAX 调用的跨浏览器方式。
除了在您的页面上加载 80kb 的 Jquery.min.js 之外,没有什么不同......