【问题标题】:How bad is it to do Ajax without jQuery? [closed]没有 jQuery 做 Ajax 有多糟糕? [关闭]
【发布时间】:2013-01-22 17:21:21
【问题描述】:

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

【问题讨论】:

  • 是一样的,不是最差也不是更好,100% 一样
  • jQuery 使您的代码中的 ajax 调用更短,以及绑定事件和许多其他内容。如果您必须编写 if(IE&&version ... 每次您的代码确实会非常冗长。当您实际使用 jQuery 的很多功能时,您可能会发现自己在使用 jQuery,但如果您只打算将它用于一个 AJAX 调用,那么最好不要使用它。
  • 如果您从诸如 Google 之类的 CDN 加载 jQuery,那么您页面的访问者很有可能已经将其缓存在访问其他网页时。虽然 jQuery 的压缩版本其实并没有那么大,只有 90.5 KB。
  • microjs.com/#ajax 列出了许多执行 AJAX 请求的小型库。
  • 我的建议是停止使用 jQuery 库之类的东西,开始学习原生 JavaScript。它比您想象的要容易(是的,甚至 AJAX)。

标签: javascript jquery ajax web-applications


【解决方案1】:

如果你不需要支持老版本的IE,比如IE6,那么很简单,你不需要任何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();

这与 jQuery 的 success 处理程序非常相似。

更多详情请见:Using XMLHttpRequest

然而,jQuery 现在将 ajax 调用威胁设为 promises,这使得某些场景(例如在运行某些代码之前等待多个 ajax 调用完成)更容易开发。

【讨论】:

    【解决方案2】:

    没那么糟糕……只是没那么小: Small Ajax JavaScript library 正如那里所解释的那样,您也可以只获得那些单独处理 ajax 的小型库之一。

    编辑: 正如 MCL 在他的评论中指出的,还有这个 sn-p:https://gist.github.com/mythz/1334560

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

    【讨论】:

    • 我发现了一个有趣的ajax standalone library。我没有测试它,但似乎 $.ajax()calls 可以使用原始的 jQuery 语法进行。这将使它们易于互换。
    • 对于习惯 jQuery 语法的人来说,这可能是一个很好的库,如果你不介意我会把它添加到答案中并指向评论部分。
    • 当然。我相信以这个库为基础,添加诸如$.post()$.getJSON() 等实用程序包装器并不难。
    【解决方案3】:

    除了在你的页面上加载一个 80kb 的 Jquery.min.js 之外没有什么不同......

    【讨论】:

      【解决方案4】:

      一点都不错,jQuery 只是提供了一个快捷方式来完成它,而手动编写它会变得更大一些。差不多就这些了。

      如果您只想要一个“ajax 助手”,请尝试使用来自 quirksmode 的 sn-p。:http://www.quirksmode.org/js/xmlhttp.html

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

          jQuery 只是一个允许我们更有效地进行 AJAX 调用的框架。较小的代码。是否使用 jQuery 并不重要。这完全由您决定。如果 jQuery 是重量级的,只需使用仅提供 AJAX 功能的库。您也可以使用纯 JS 进行 AJAX 调用。

          【讨论】:

            猜你喜欢
            • 2010-11-15
            • 2010-12-05
            • 1970-01-01
            • 1970-01-01
            • 2019-01-24
            • 1970-01-01
            • 2010-11-24
            • 2011-01-01
            • 1970-01-01
            相关资源
            最近更新 更多