【问题标题】:Jquery or Basic XmlHttpRequest for MVC AJAX用于 MVC AJAX 的 Jquery 或 Basic XmlHttpRequest
【发布时间】:2010-11-14 18:00:58
【问题描述】:

通过 AJAX 在客户端获取 JSON 是我在我的 ASP.NET MVC 应用程序中寻找的东西。

我为此目的找到了 Jquery 和基本的 XmlHttpRequest 脚本。我知道 dom 操作的易用性是 Jquery 的一个方面。但关心 Jquery 的文件大小。

但仍然找不到为什么我需要选择和研究 Jquery 而不是使用 Javascript 的轻量级简单 XmlHttpRequest。

我想知道我需要遵循的最佳做法是什么,或者除此之外我还缺少什么。

谢谢

【问题讨论】:

    标签: asp.net asp.net-mvc jquery xmlhttprequest


    【解决方案1】:

    JQuery 现在非常普遍,如果您从 Google's library 引用它,很可能人们已经在浏览器缓存中拥有它,并且无论如何都不需要下载它。

    JQuery 库缩小后的大小只有 56k,比很多图片还小。如果它也被网络服务器压缩,它会比这小得多。

    使用 JQuery 的明显优势是它已经封装了您需要执行的所有基本 XHR 操作,并且在跨浏览器环境中完成。因此,您可以在一行 JQuery javascript 中发出 Ajax 请求,而不是编写可能有错误的自制 ajax 代码。

    【讨论】:

    • 听 Womp。他很准。编写自己的 JavaScript 已经发疯了。自己开发的 hacky 代码最终总是和 jQuery 一样大,却不能正常工作!
    • 感谢您的所有努力。我确实喜欢 Jquery。但千万不要在大小的情况下留下基本的 XmlHttpRequest。较小的大小意味着更少的代码,因此更少的错误。
    • @Deo:同意,原始的 ajax xmlhttprequest 代码是如此之小,而且功能如此强大(而 JQuery 1.4 缩小了 78kb)- 但是!当 ajax 正在做 JQuery 非常有用的事情时,它“娱乐”了用户 - 事实上,它使 78kb 的一切都值得。
    【解决方案2】:

    这里的问题是,为什么要重新发明轮子。正如其他人所指出的,库为浏览器怪癖等事物提供了一层抽象。

    几乎可以保证,您编写的任何自定义代码都可能包含错误。当您可以受益于使用具有在野外广泛测试和广泛使用的额外好处的代码时,为什么还要打扰。

    让库来完成您的工作,让您自己有更多时间编写应用程序的自定义业务逻辑。

    【讨论】:

    • 虽然我 100% 同意在编码时不要重新发明轮子,但当我听到这句话时,我总是喜欢抛出一个有趣的引用。 “如果没有人重新发明轮子,我们仍然会使用石轮。” :D
    【解决方案3】:

    jQuery 提供了许多让您的生活更轻松的管道。例如,对于旧版本的 IE,XmlHttpRequest 对象需要为instantiated as an ActiveX object,使用 jQuery 时您不必担心。

    没有您应该遵循的“最佳实践”,但除非大小对您的项目来说是一个非常关键的考虑因素,否则我强烈建议您考虑使用 Ajax 库。它使开发速度大大加快,并让您确信您的 Ajax 将是跨浏览器兼容的。

    【讨论】:

      【解决方案4】:

      jQuery 擅长 DOM 操作。在你的情况下,这可能是矫枉过正。

      如果您关心文件大小,您可能会对 Mootool 的自助式下载感兴趣,您只需选择所需的部分并处理依赖项。你想要请求部分。

      Moo 工具:http://mootools.net/core

      示例:http://davidwalsh.name/basic-ajax-requests-mootools

      【讨论】:

      • mootools 看起来不错,但在大小方面落后于基本的 xmlhttprequest。
      • MooTools 也由 Google Libraries 托管(这意味着它已经为许多人缓存)并提供出色的跨浏览器 JSON 和 Ajax 支持。
      【解决方案5】:

      我认为 js lib 的负载大小问题将被它的跨浏览器支持和前端开发的整体便利性所抵消...

      确保您在生产中托管缩小版本。

      加上jQuery是一个比较轻量级的js库,是学习的绝佳选择。

      当然还有很多其他的:

      我也喜欢YUI 甚至MooTools

      【讨论】:

        【解决方案6】:

        出于几个原因,我会推荐使用 jQuery。第一个原因是因为它提供了一个 javascript 抽象层来编写代码。 jQuery 支持所有主流浏览器(如果不是所有浏览器),因此您无需担心跨浏览器兼容性或浏览器检查。

        其次 - jQuery 提供简单的绑定调用来发出您的 ajax 请求($().load(URL) 等)

        第三(我觉得最有用)- jQuery(如 mootools 和原型)将 ajax 请求的标头设置为“X-Requested-With”,这允许您测试请求是否是 ajax 请求。这允许简单的 javascript 集成(不显眼的 javascript)。

        此外 - 一旦你使用 jQuery,你将永远不会回头。

        【讨论】:

          【解决方案7】:

          对不起我的英语,在我看来,对于简单或复杂的 ajax 客户端应用程序或 dom 操作,您必须学习和了解 Jquery,您可以使用 jquery 轻松调用 dom 和 ajax。

          您已经知道,您已经可以使用纯 javascript 函数进行 ajax 调用。 How to Make AJAX Requests With Raw javascript,这篇文章有两部分。

          否则,在页面上的 ajax 请求期间,您必须检查接收到的数据,并且当您有复杂数据(我的意思是集合或数组数据)时,您应该枚举接收到的数据。此时您将了解 Jquery 的强大功能,即处理、操作接收到的数据。

          我向您保证,当您处理稍微复杂的数据时,您会寻找一些库来轻松地在您的页面上制作一些东西。 Jquery 给你的不仅仅是 Javascript 的 XMLHttpRequest。

          最后想想,您可以像这样将您的脚本引用放在 code.google.com 上

          <script type="text/javascript"
          src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js">
          </script>
          

          通过这种风格,您可以使用 google 的带宽缓存功能,并且您的应用程序始终保持最新状态。

          少写,多做……

          【讨论】:

          • google 托管的 jQuery 有比 1.2.6 更新的版本
          【解决方案8】:

          好的,我会告诉你为什么 JQuery 是 Ajax 的 WTG(Way To Go)

          1. XMLHttpRequest 对不同浏览器的实现方式不同,您必须编写自己的监听函数。
          2. 如果您制作了一个重要的应用程序,那么您编写的使用 JQuery 的代码量将远远少于使用 Javascript 编写的代码量。这不仅可以缩短开发时间,还可能会为您提供更快的执行时间。
          3. JQuery 使 DOM 和 CSS 操作变得容易。没有一个好人在地狱中用 3 倍的时间实现相同功能的机会。

          如果你准备放弃 JQuery,你不妨拒绝 ASP.Net/PHP 并编写一些 CGI 网关以获得更好的性能:)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-06-26
            • 1970-01-01
            • 1970-01-01
            • 2011-06-27
            • 1970-01-01
            • 1970-01-01
            • 2016-09-16
            • 2015-09-19
            相关资源
            最近更新 更多