Douglas Crockford说jQuery无法扩展时是什么意思?[关闭]


32

本次演讲的“问答环节”中,道格拉斯·克罗克福德(Douglas Crockford)说jQuery不能像其他一些流行的库那样扩展。他的意思是什么,以及其他使它们更具可伸缩性的库又是什么?


在JavaScript的这个更多的讨论reddit添加:reddit.com/r/javascript/comments/h21vr/...
MatrixFrog

如果没有观看整部影片,我可以说,使用jQuery 本身不能很好地扩展到单页面应用程序。原因是您没有模型视图之类的框架来组织代码。但是,将jQuery与诸如Backbone.jsKnockout.js和/或Sammy.js之类的结构框架结合起来,确实可以很好地扩展。
user16764 2011年

尚未见过讨论,但我的2c点是野兽以插件为中心的本质,再加上缺乏指导和加载依赖项的工具,导致应用程序出现jQuery插件汤,因为团队中的某人需要一些用于特定任务的插件,表示该插件已包含在整个应用程序中,最终您最终在整个应用程序中加载了342个不同的jquery插件。这是野兽的天性-它旨在使小规模的东西变得容易,但又以没有大型上游概念为代价。
Wyatt Barnett

4
很好奇的是4个答案中的3个开头是“我没看过视频”的一些变化。在不观看视频的情况下,您如何确切地解释Crockford先生的意思?
科尔宾

好吧,他没有说太多。正如一位回答者所说的,这在最后的“问答”部分是一副副词。但是,您确实提出了要点。
MatrixFrog 2011年

Answers:


41

如果您观看视频,他不会正式谈论jQuery。演讲结束后,这是对某人的一些有点离题的问题的快速响应。...在演讲结束时,大约1:29分钟。

他说了很多关于jQuery的好东西。他说,关于它的伸缩性不好的部分,他说他认为jQuery对于非常复杂的应用程序的伸缩性不是很好(与其他类似YUI的东西相比)。。


29
+1用于在发布回复之前实际观看视频。(-:
KM。11年

3

对于我来说,不看视频就很难说,但是我猜是因为jQuery没有提供大多数其他库的所有功能,这些功能使JavaScript编程更容易。jQuery的目的是通过简化通过CSS选择器对元素的寻址,并为更改这些元素提供简单的框架,从而使DOM操作更容易。它提供了其他一些功能,例如Ajax请求,基本事件管理,模板以及其他一些基本功能,仅此而已。

如其他图书馆原型MooTools的Ext JS的道场提供负载的其他功能用于创建对象,管理数组和集合,操作字符串,和做其他所有的细节问题的事情,我们作为程序员希望能够做到。

简而言之,jQuery缺少大型JavaScript应用程序所需的工具。由于这个原因,使用jQuery找到任何JavaScript繁重的站点是非常罕见的。例如,Mint.com建立在YUI上。Apple的MobileMe Web服务在SproutCore上运行(Apple的主站点使用Prototype)。

至少,这就是我认为他的意思。


1
嗯 我对jQuery非常熟悉,但是对YUI或其他任何JS框架都不是非常熟悉。因此,也许我应该问,YUI,Prototype等有什么用,它们对于构建大型可伸缩Web应用程序非常有用?而不是问jQuery 没有什么...
MatrixFrog 2011年

6
“在使用jQuery的情况下,找到非常JS繁重的站点是非常不常见的。”。

@ken如果将整个YUI库加载到页面上,则说明做错了。雅虎提供动态加载程序是有原因的。如果您不同意我的评估,请提供相反的例子。向我们展示一个基于jQuery的大型应用程序。
ChiperSoft

4
然后定义“大比例尺”。SE堆栈使用jQuery。

SE不是主要由JS驱动的,它以大多数人使用jQuery的方式使用jQuery:基本事件绑定,简单的AJAX请求,某些DOM操作。大型意味着整个应用程序完全基于JS构建;非基于页面的网站。我们正在谈论诸如我上面提到的东西(Mint.com和MobileMe),Cloud9编辑器,gMail,Mockingbird。内部编写的JS代码等于或大于1MB的网站。
ChiperSoft

2

jQuery不允许您像MooTools这样的大量重用。

这是一个哲学/设计决策:jQuery对于一劳永逸的场景而言,并不是很多代码。

当您构建不引人注目的JavaScript体验(通常仅对页面进行增强)时,这会很好地工作,并且只需要很少的代码。当您构建Google文档时 ...没那么多。您将需要其他项目公开的更多OOP概念,例如继承,类似接口的机制等。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.