jQuery 与 javascript?

IT技术 javascript jquery
2021-02-26 18:36:03

我最近偶然发现了一些 javascript 论坛(可悲的是,链接在宇宙中的某个地方丢失了),在那里你会真正讨厌 jQuery,因为它不是......有什么好处?

大多数论点实际上似乎都有道理。

现在,我真的很喜欢 jQuery,主要是因为它让我专注于我想做的事情而不是浏览器的不一致,它实际上使 AJAXing 与酷(或过度使用?)效果变得有趣。

但是,如果 jQuery 的核心真的有些烂,我不想像我实际那样依赖它……依赖它。

我不想再开始争论哪个框架是最好的……但是……哪个框架是最好的(笑话)作为案例用法,请考虑中小型网络及其管理。

我只是想弄清楚,某些框架中的东西或具有很少我的功能的纯 javascript 是否真的有区别。

编辑:

我实际上试图就以下优点和缺点进行正常的客观讨论:

  1. 在纯 javascript 上使用框架和
  2. jQuery 与其他,

因为 jQuery 似乎最容易使用,而且学习曲线最快。然而,有些人就是不理解它,认为我又开始了另一个火焰(我不是什么)。我实际上投票重新打开这个问题。

另外我真的很感兴趣:

  • jQuery 是否严重依赖浏览器嗅探?这可能是未来的潜在问题吗?为什么?
  • 我发现了很多 JS 选择器引擎,有没有 AJAX 和 FX 库?
  • 是否有任何原因(除了浏览器嗅探和个人对 John Resig 的“仇恨”)为什么 jQuery 是错误的?

实际上,最常用的 jQuery 也代表其他框架。

6个回答

这完全与性能和开发速度有关。当然,如果您是一名优秀的程序员并设计出真正适合您的需求的东西,那么与使用 Javascript 框架相比,您可能会获得更好的性能。但是你有时间自己做这一切吗?

我个人的观点是 Javascript 非常有用且被过度使用,但如果你真的需要它,那么框架就是要走的路。

现在是框架的选择。有关基准测试的value,您可以在http://ejohn.org/files/142/ 上找到一个它还取决于可用的插件以及您打算用它们做什么。我开始使用 jQuery 是因为它似乎得到了维护并且功能良好,尽管当时它并不是最快的。我不后悔,但从那以后我没有测试任何其他东西。

现在,也许。大约 10 年前,情况有点不同:)
2021-04-24 18:36:03
好吧,这正是我的想法(目前),但声称 jQuery 如何在“核心”核心中做错了所有事情并评估浏览器和其他东西......让我感到困惑
2021-05-10 18:36:03
jQuery 不是一个框架,它是一个实用程序库。
2021-05-19 18:36:03

我个人认为你应该先学习艰难的方法。它会让你成为一个更好的程序员,当它出现时,你将能够解决这个问题。在您可以使用纯 JavaScript 完成之后,使用 jQuery 加速开发只是一个额外的好处。

如果你能以困难的方式做到,那么你就可以以简单的方式做到,反之则行不通。这适用于任何编程范式。

Jquery 与任何其他优秀的 JavaScript 框架一样,为您提供独立于浏览器平台的功能,其中包含您可能不关心或不想关心的所有错综复杂的问题。

我认为使用框架比使用纯 JavaScript 并从头开始做所有事情更好,除非您的使用非常有限。

我绝对推荐JQuery!

谢谢

由于其优雅和持续的新功能,至少我还没有看到任何 JavaScript 框架拥有如此快速增长的用户和支持社区。谢谢
2021-04-22 18:36:03
@Greg:我不明白你的评论。Elegance在错误的上下文中使用了吗?
2021-05-01 18:36:03
我已经在使用 jQuery,我对为什么它更好的争论更感兴趣(把“易用性”放在一边)
2021-05-09 18:36:03

“我实际上试图对 1. 的优缺点进行正常的客观讨论,使用框架而不是纯 javascript和 2.,jquery 与其他,因为 jQuery 似乎最容易使用,学习曲线最快。”

因为不想真正学习底层语言而使用任何框架是绝对错误的,不仅对于 JavaScript,对于任何其他编程语言也是如此。

“有什么理由(除了浏览器嗅探和个人对 John Resig 的“仇恨”)为什么 jQuery 是错误的?”

对它的大部分仇恨来自夸大的狂热分子,它通过“使用 jQuery”作为每个 JavaScript 问题的答案来污染论坛,以及过度使用产生的代码,在这些代码中,诸如声明变量之类的简单语句是通过库调用完成的。

尽管如此,也存在一些合法的技术问题,例如在产生难以辨认的代码和开销方面的共同负罪感。当然,由于缺乏开发人员的熟练程度而不是库本身,这两种情况更加严重。

  • jQuery 是否严重依赖浏览器嗅探?将来可能是那个潜在的问题吗?为什么?

不 - 有 $.browser 方法,但它已被弃用且未在核心中使用。

  • 我发现了很多 JS 选择器引擎,有没有 AJAX 和 FX 库?

负载。通常选择 jQuery 是因为它可以很好地执行 AJAX 和动画,并且易于扩展。jQuery 不使用它自己的选择器引擎,它使用Sizzle,一个非常快的选择器引擎。

  • 是否有任何原因(除了浏览器嗅探和个人对 John Resig 的“仇恨”)为什么 jQuery 是错误的?

不 - 它很快,相对较小且易于扩展。

就我个人而言,很高兴知道随着浏览器包含更多内容(例如 classlist API),jQuery 将更新以包含它,这意味着我的代码始终以尽可能快的速度运行。

如果您有兴趣,通读源代码,http://code.jquery.com/jquery-1.4.3.js - 您会看到首先根据最佳情况添加功能,然后逐渐向后移植到旧浏览器 - 对于例如,来自 1.4.3 的 parseJSON 方法的一部分:

return window.JSON && window.JSON.parse ?
    window.JSON.parse( data ) :
    (new Function("return " + data))();

如您所见,如果 window.JSON 存在,则浏览器使用本机 JSON 解析器,如果不存在,则避免使用 eval(因为否则 minfiers 不会缩小该位)并设置返回数据的函数。这种首先采用现代技术,然后降级为旧方法的想法贯穿始终,这意味着新浏览器可以在不牺牲遗留兼容性的情况下使用所有 whiz bang 功能。

由于性能问题,使用 jquery 的动画可能不是最佳选择。 css-tricks.com/myth-busting-css-animations-vs-javascript 也 将 GSAP 视为一个很好的包。
2021-04-20 18:36:03