问题 没有jQuery做Ajax有多糟糕? [关闭]


我已经到了我需要在我的页面上使用Ajax的地步,但这只是一小部分 - 看看输入的用户名是否在数据库中。如上所述 这里 Ajax可以单独使用JavaScript完成。这样做的优点/缺点是什么?我倾向于这个,因为我不想要一个大型库,并认为当其他所有东西都已经是JavaScript时,它会不必要地复杂化。


1399
2018-02-07 09:01


起源

它是相同的,也不是最坏也不是更好,100%相同 - mikakun
jQuery使代码中的ajax调用更短,绑定事件和许多其他东西。如果你必须写if(IE &&版本...每次你的代码确实非常冗长。当你实际使用它的很多函数时你可能会发现自己使用jQuery但是如果你只打算用它来进行一次AJAX调用那么最好不要使用它。 - HMR
如果你从像谷歌这样的CDN加载jQuery,那么访问你网页的访问者很可能已经通过访问其他网页来缓存它。虽然jQuery的压缩版本确实不是那么大,但只有90.5 KB。 - Anthony Grist
microjs.com/#ajax 列出了许多小型库来执行AJAX请求。 - Alessandro Vendruscolo
我的建议是停止使用jQuery库之类的东西并开始学习本机 JavaScript的。它比你想象的容易(是的,甚至是AJAX)。 - delete me


答案:


除了在您的页面上加载80kb的Jquery.min.js之外没有什么区别......


1
2018-02-07 09:08





如果你不需要支持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调用威胁视为 许诺,这使得某些场景(比如在运行某些代码之前等待多个ajax调用完成)更容易开发。


6
2018-02-07 09:29





它不是那么糟糕......只是不那么小: 小型Ajax JavaScript库 正如那里所解释的那样,你也可以得到一个独立处理ajax的小型库。

编辑: 正如MCL在他的评论中指出的那样,还有这个片段: https://gist.github.com/mythz/1334560

它似乎实现了jQuery语法,但仅适用于ajax调用,如果你已经习惯了,这可能是更好的选择!


2
2018-02-07 09:04



我发现了一个有趣的 ajax独立库。我没有测试它,但它似乎 $.ajax()可以使用原始jQuery语法进行调用。这将使它们易于互换。 - MCL
对于那些习惯于jQuery语法的人来说,如果你不介意的话,我会把它添加到答案并指向评论部分。 - Gonçalo Vieira
当然。我相信以这个库为基础,添加实用程序包装器并不是很难 $.post(), $.getJSON() 等等 - MCL


它一点也不差,jQuery只是提供了一个快捷方式来实现它,而手动编写它会变得更大。这就是它。

如果您只想要一个“ajax助手”,请尝试使用quirksmode中的这个片段: http://www.quirksmode.org/js/xmlhttp.html


1
2018-02-07 09:04





我认为最大的优点是jQuery解决了跨浏览器处理AJAX调用的方式。


1
2018-02-07 09:06





jQuery只是一个允许我们更有效地进行AJAX调用的框架。较小的代码。无论你是否使用jQuery都没关系。这完全取决于你的决定。如果jQuery很重,只需使用一个只提供AJAX功能的库。你也可以使用纯JS来进行AJAX调用。


1
2018-02-07 09:06