【问题标题】:What are jQuery's limitations?jQuery 的限制是什么?
【发布时间】:2010-09-11 18:02:06
【问题描述】:

Joel 总是说在使用 3rd 方库时要小心。从我最初的印象来看,jQuery 很棒。使用时应该注意什么?有什么限制?以后我用得越多,会遇到什么头疼的事?

【问题讨论】:

    标签: javascript jquery dom


    【解决方案1】:

    我已经广泛使用它,我不得不承认,我还没有遇到任何严重的砖墙!我遇到了几个错误,我必须为自己找到一个快速修复,然后使用下一个 jQuery 版本进行额外测试以确保错误得到正确处理,但这适用于任何第 3 方库,而不仅仅是 jQuery。

    我认为这是一个很棒的库,我必须说,虽然关于 3rd 方库的建议有其优点,但在这个 Web 2.0 世界中,Javascript 的使用量猛增,并且浏览器之间存在如此多的小差异,有一个 维护良好库可以真正加快开发速度,因为它可以节省您必须自己完成所有工作的开销。

    我想如果我要发出一个警告,那就是确保你不要过度使用它 - 虽然它通过抽象出你不需要担心的大量逻辑来真正加速 Javascript 开发,但有总是冒着开始编写低效应用程序的风险,因为您没有意识到您对浏览器的确切要求。因此,我建议您使用 Firebug 之类的工具进行大量分析,以检查引擎盖下发生了什么。

    【讨论】:

    • JQuery 1.0(仅供参考:jquerymobile.com)最近发布了。你怎么看待这件事?如果您查看我关于 phonegap 的问题,我也将不胜感激。
    【解决方案2】:

    @mjc

    $("a tip")
    .you()
    .can()
    .chain()
    .stuff()
    .like()
    .this();
    

    和/或定义一个变量,为它使用 jQuery 函数:

    var $tip = $("a tip");
    $tip.choo();
    $tip.choo();
    $tip.train();
    

    【讨论】:

      【解决方案3】:

      我在使用 jQuery 时遇到的一个问题是,您最终会将很多项目链接在一起,如果您不小心,它很快就会变得难以阅读。

      我能想到的一个例子说明这是在John David Anderson's blog

      有一个人写了一个日志 功能,所以你可以弄清楚 whereYou(are).whenYoureCoding().inThe(middleOf).a(jQuery).trainWreck().

      我可以看到链接事物的力量 在一起,但我猜你已经 如果你是,可能走得太远了 需要将内容记录到控制台 中挥杆。可能没什么可做的 没有机会你将能够 一周后也可以阅读。

      【讨论】:

      • 我同意 jQuery 使用一些疯狂的选择器和菊花链方法可能造成的混乱。
      • 根据我自己的经验,这是 JQuery 唯一真正的缺点。链接是其最强大的功能之一,但保持其可读性可能很棘手。 JQuery 小巧、快速且令人惊叹。 (JOel 的主力产品 FogBugz 甚至使用它。)
      • 这不应该被认为是 jQuery 的缺点。你可以用任何语言或框架编写丑陋的、不可维护的代码。无需为人们滥用的强大功能敲打 jQuery。
      • 所以..不要链接那么多。正是因为这个原因,我认为我从来没有将三个以上的 jQuery 方法链接在一起。
      • 与编程语言的任何其他功能一样,开发人员有责任以一种保持其美观和可读性的方式使用它。我们不能为此责怪链接本身。
      【解决方案4】:

      jQuery 很棒——它可以做任何 javascript 可以做的事情,但速度更快,代码更少。它唯一的限制是 javascript 作为客户端脚本语言所固有的限制。与任何工具一样,可能会被误用,但除非您的脚本需求非常基础,否则几乎没有理由不使用它。

      【讨论】:

        【解决方案5】:

        我在阅读博客时遇到了以下内容。这并不是 jQuery 的真正限制,而是使用 jQuery 的 ASP.NET 开发人员经常犯的错误:

        http://encosia.com/2008/06/05/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax/

        【讨论】:

          【解决方案6】:

          @BrilliantWinter

          jQuery 一点也不臃肿。它是目前最小的图书馆之一。

          它的所有功能都是 jQuery 对象的扩展,这意味着您可以分离任何您不使用的功能,并使库的占用空间甚至小于其默认大小(15kb、缩小和 Gzipped)。

          jQuery - 以及所有其他库 - 提供了一个在所有 A 级浏览器中都相同的 API。这种抽象使您的代码更简洁,更不容易出错。

          最后,jQuery 被主要的“玩家”使用。谷歌、戴尔、Digg 和 NBC 等公司都使用该库。这不仅是一个大的批准印章,也是对 jQuery 开发人员在修改库时非常小心的保证,确保没有中断和引入错误。

          【讨论】:

            【解决方案7】:

            @BrilliantWater - 大多数人不使用 jQuery 来“学习”,他们使用 jQuery 是因为它比自己创建所有方法更快、更容易使用并且减少了令人头疼的问题。整个“臃肿”的论点完全没有实际意义。 jQuery 是目前最小的库之一,随着越来越多的人使用宽带,它的问题也越来越少。

            另外,由于 jQuery 由 GoogleCode 托管,它很可能已经在用户缓存中,因为有很多网站都在使用它!

            jQuery 太棒了!我一直对自己说我需要学习另一个图书馆,但我真的不需要。 jQuery 拥有我需要的一切。我知道它并不适合所有项目,但它肯定在大多数项目中占有一席之地!

            【讨论】:

              【解决方案8】:

              我发现 jQuery 在编写任何有用的 javascript 时都是必不可少的。也就是说,我正在处理的一个网站想做动画。我建议不要使用 Flash,而是使用 jQuery 执行 jQuery 打包的相对“简单”的动画。我们使用了淡入淡出和幻灯片等。最后,浏览器处理的太多了(特别是 IE,但 FF 显示出压力的迹象),我们不得不将其几乎全部缩回。

              使用 jQuery 编写代码和进行实验非常有趣。它有一个很棒的开发者社区,可以非常快速地回答问题。只是要小心不要太得意忘形! :)

              【讨论】:

                【解决方案9】:

                jQuery 唯一的缺点是它过于简单易用。你会得到一个非常低的新手使用它并做一些非常奇怪和接近智障的事情。除此之外,jQuery 很漂亮,并且由天才和他的智能程序员手下精心制作,确保跨浏览器质量,减少开发人员的大量工作。不能出错。如果你不喜欢 jQuery,那你有点过分了,可能洗澡的频率不够。

                更新

                这是我的一个非常古老的答案。如果您使用 querySelector 和 MDN 参考,那么 jQuery 就真的不再需要了,因为浏览器在大多数情况下已经融合为相同的,当然除非您仍然生活在 IE8 死亡领域的要求中。 jQuery 也存在于全球范围内,如果您正在构建现代 JavaScript,这很糟糕。 除了有一些不使用模块化语法库的老派插件之外,此时 jQuery 并没有真正有用。

                开始关注模块化 JavaScript,因为这是 jQuery 之后的趋势。注意es6/es2015。开始使用 React/React Native 或 Angular 2 来制作应用程序,因为它在某种程度上赶上了。

                抱歉,约翰·雷西格。在这一点上,人们就像“约翰谁?”尽管他在我的书中仍然是个天才。不过,我希望他能摆脱自己的桂冠,让事情变得更好。

                有趣的是事情的变化。

                【讨论】:

                  【解决方案10】:

                  如果 jQuery 不适合,你总是可以考虑不同的框架。 这是mootools 的示例。

                  MooTools 是一款紧凑、模块化、 面向对象的 JavaScript 框架 专为中间到 高级 JavaScript 开发人员。它 让你写出强大的, 灵活且跨浏览器的代码 它优雅,有据可查,并且 连贯的 API。

                  【讨论】:

                    【解决方案11】:

                    我是 jQuery 的忠实粉丝(我为它写了 plug-inDashboard widget 就证明了这一点)。

                    需要注意的是which browsers jQuery supports。文档站点目前似乎有问题。这是另一件需要注意的事情...... ;-)

                    【讨论】:

                      【解决方案12】:

                      我已经使用它大约 6 个月了,除了我团队中一些速度较慢的开发人员不接受它(可能是因为一些较长的链的外观令人生畏)之外,我还没有遇到过一个问题。

                      【讨论】:

                        猜你喜欢
                        • 2012-03-22
                        • 2011-09-04
                        • 2019-05-20
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 2011-05-08
                        • 2011-08-01
                        • 2011-01-24
                        相关资源
                        最近更新 更多