我正在使用不同的基于OO的语言开发桌面软件。我最近没有接触过web开发。我刚刚开始使用jQuery
和jQuery Mobile
来构建简单的Web应用程序。
我注意到我的项目通常以HTML文件作为基础和* .js文件,其中包含方法,事件处理程序等。这有点像编程意大利面条代码,我想不出这是怎么回事处理更复杂的项目。 (可重用性,性能,......)
通常的jQuery-Tutorials只显示了一些简单的例子,这些例子适用于“将所有方法合并到一个脚本文件中” - 方法。我也在某处读过,最好只提供一个大文件,因为只加载一个文件而不是很多小文件会更快。
有人能告诉我jQuery项目的结构有多大,原因是什么?
答案 0 :(得分:4)
我会尝试将你的问题分解成更小的部分:
“我注意到我的项目通常最终会以HTML文件作为基础,并且* .js文件包含方法,事件处理程序等。这有点像编程意大利面条代码,我想不到如何处理更复杂的项目。“
听起来你的OO背景已被宠坏了。 Javascript不会强迫你使用它的原型继承,jQuery也不会。不过,它就在那里。道格拉斯·克罗克福德(Douglas Crockford)写了一篇关于从经典的以OO为中心的遗传转向原型等价物的文章:Prototypal Inheritance in Javascript
“通常的jQuery-Tutorials只展示了一些简单的例子,这些例子适用于”将所有方法合并到一个脚本文件中“-approach。”
是的,将所有代码放在一个文件中对于小型网站或网络应用程序可以正常工作,但它不能扩展。
然而,将所有C方法声明放在一个头文件中并将所有代码放在一个源文件中没有区别。我的观点是你没有。
我建议您查看像RequireJS这样的脚本加载器作为此问题的解决方案。在最坏的情况下,将脚本标记内嵌在HTML代码中仍然没有错,但这也无法很好地扩展。
“我还在某处读到,提供一个大文件会更好,因为只加载一个文件而不是很多小文件会更快。”
嗯......是的,但在大多数情况下这可以忽略不计。即使您确实看到性能下降,为什么还要将您的开发代码视为您的产品?使用压缩工具(如YUI Compressor)压缩和合并JavaScript。负载时间更短,没有污染。
最后一条建议:jQuery不会帮助你解决你的JavaScript架构问题,因为字典可以帮助你构建一个句子。 (换句话说,不要依赖jQuery示例来教你良好的JavaScript实践)。