所有
我对网络应用程序开发还不熟悉。
最近,我制作了一些专门针对iPad和iPhone的HTML5应用程序。
我注意到很少有人似乎使用直接的JavaScript - 几乎每个人都使用jQuery(Prototype,YUI,Mootools等似乎不太受欢迎)。
如果我刚开始 - 我应该使用jQuery吗?或者,我会更好地编写自己的JavaScript吗?
一般来说 - 我更喜欢尽可能多地使用“我自己的”代码。如果我可以避免使用框架,我会感到很不舒服 - 我觉得它让我无法理解“引擎盖下发生了什么”。
(当然 - 即使我使用的是直接的JavaScript - “幕后有很多层次”(例如,浏览器的JavaScript引擎,操作系统,内核等),我不明白,但是我做所理解的等级越好。)
我可以想到的唯一具体优势就是不使用jQuery ...加载整个jQuery框架,当我只需要它的一些功能时 - 似乎没必要也浪费。
所以 - 总的来说 - 我会为每个项目创建自己的,高度定制的,特定于应用程序的JavaScript吗?
或者 - 我应该咬紧牙关,克服我不愿意使用别人的代码,并使用jQuery?除了不必创建自己已经由其他人编写的函数版本之外,它是否有优势?
。例如,它的功能是否以某种方式优化或比我自己生产的效率更高?
[UPDATE]
到目前为止答案中的一个常见主题... jQuery消除了担心浏览器差异的需要。好点。
就我而言,我正在为iPhone,iPad和Android专门编写应用程序。据我所知 - 浏览器非常一致。 IE6,7和8的变幻莫测和特性似乎并不适用。真的吗?如果是这样,它是否消除了使用jQuery的主要原因?
另一个关键问题... jQuery非常受欢迎,它很可能已经存在于用户的缓存中,从而无需加载它。真的......但这是唯一的表现吗?换句话说......作为jQuery一部分的数百个函数的存在是否影响了我的页面的性能? (我不知道JavaScript引擎是如何工作的,所以我不知道是不是这样......)。
非常感谢您的建议和指导。
答案 0 :(得分:6)
我理解你。我有相同的想法很长一段时间。然而,在这个特定的例子中,它有一个很好的理由为什么这么多人使用框架(jQuery是当今最流行的)。原因是,不要关心浏览器差异+一个很好的方法和函数工具包。
但首先(浏览器差异)更为重要。如果您要自己编写所有内容,那么您只需要关心所有这些浏览器和版本的所有内容,这只是令人作呕。因此,一些聪明聪明的人提出了这个想法,为什么不创建一个抽象所有这些差异的库,我们可以在几乎任何浏览器平台上使用相同的方法集。 Boohja,这就是Javascript库的诞生方式。
你提到的另一点:loading the ENTIRE jQuery framework (...)
好吧,正如你也正确提到的那样,jQuery非常受欢迎,因此用户已经在浏览器中缓存了jQuery版本。因此,首先尝试从像谷歌这样的普通CDN加载像jQuery这样的库总是一个好主意。浏览器甚至不需要下载它的可能性非常好。
现在我不会争论代码质量和类似的东西。但是jQuery是一个非常可靠的库。它提供了非常好的浏览器抽象以及方便的语法(jAndys意见)。但是那里还有很多其他很好的图书馆。一般情况下,我总是建议使用一个,特别是对于大规模的Web应用程序。
在某些时候,无论如何,你都会开始编写自己的方法来自己抽象浏览器差异和行为,因为每次编写这么多代码都很烦人。因此,不需要在这里发明轮子(可能仅用于学习目的)。
答案 1 :(得分:0)
这更像是一个哲学问题而不是其他问题。 jQuery针对性能,轻量级进行了高度优化,并且每次都有很多手工繁琐的事情。如果您有一个只需要4-5个函数的项目,则可能不需要使用库。
但如果有一个应用程序使用类/ id /属性选择器,动画,监听事件等,那么你应该“咬紧牙关”。
没有理由不采用两种方法imo,只需根据项目选择。
答案 2 :(得分:0)
我的意见是,如果你认为你可以根据自己的意愿弯曲javascript而不需要框架,那就去吧。
答案 3 :(得分:0)
如果我是你,我会选择jQuery,只是因为JavaScript具有跨浏览器的怪癖。 jQuery为你处理这个问题。
,例如,它的功能是以某种方式优化还是比什么更有效 我可以自己制作吗?
可能,虽然可能有一些例外。
答案 4 :(得分:0)
JavaScript(Web浏览器)应该标准化,但它们(尚未)。 jQuery这样做!
答案 5 :(得分:0)
如果您认为jQuery太大,您可能会对tiny JS frameworks列表感兴趣。
答案 6 :(得分:0)
是的,jQuery隐藏了很多你。是的,使用jQuery的页面将比没有jQuery的优化页面慢。但是现在计算机如此强大,除非你在大型应用程序中以非常低效的方式使用jQuery,否则没有人会注意到。 关于下载问题:它只有31KiB。即使使用GPRS,也只需要几秒钟的时间来加载。
我的建议:学习jQuery,然后在适当的时候使用它。