[jquery]处理较大项目的 javascript 的方法吗?

标签: jQuery
发布时间: 2011/5/27 17:38:31
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

嗨大家,

后发现 jQuery 几年前,我意识到,真是让互动是多么简单和用户友好的网站,而无需编写代码的书。随着项目的大小增加,也也进行任何调试或可能实施的变化或新功能所需的时间。

从阅读各种博客和保持一定程度的更新,我读过关于类似于 Backbone.jsJavascriptMVC 的库的声音像好的替代品,为了使代码更加模块化和分离。

但是作为远离 Javascript. 或 jQuery 专家,我不是真的不适合优先级别的可维护性、 调试和发展未来的易用性是说什么是好的基石,在项目中。

所以这一点-什么是常识启动项目 Javascript. 和 jQuery 随时为广大用户,用户体验和数据演示文稿时?

多谢

解决方法 1:

Backbone.js 和 JavascriptMVC 都是非常好的例子,以理智的方式 (SproutCore卡布奇诺 也不错) 组织大型项目使用的框架。当然,我建议您选择在服务器上处理的服务器,并创建视图从 DOM 事件和响应的一种标准的数据处理方法。否则,它可以维护恶梦。

超越 MVC 框架,您可能应该选择这些问题的解决方案:

  • 依赖关系管理: 如何将编译并按正确的顺序中的 javascript 文件加载?我的建议是 RequireJS
  • 测试: 测试用户界面代码并不容易,但对在 jQuery 的家伙做了一段时间,他们 QUnit 是良好记录/测试的测试工具。
  • 缩小: 你要运行您的代码如下前将部署到生产 RequireJS 已建于此,但您也可以使用 封闭编译器 ,如果你想疯了的小源。
  • 生成系统: 所有这些工具都是很大,但您应该拉他们一起在一个主生成系统,以便您可以在命令行上运行一个简单的命令,并有您调试或生产应用程序中。要使用的特定工具取决于您的选择-=> ,Ruby 的语言 Python-> 编写您自己的情况下,: 生成工具 (我此选项最喜欢) 杰克-> NodeJS

要注意,如果事情感到笨拙的超越或慢 (模具或框架) 和重构。

解决方法 2:

签出这本书,主要是第 10 章 http://jqfundamentals.com/book/index.html#chapter-10

解决方法 3:

我想建议使用 javascript 功能的样式,可以通过 coffeescriptunderscore.js等抽象帮助。

也尽量减少跨模块的相互作用和依靠一个事件驱动的代码是保持您组织的整个项目的好方法。我竖起喜欢的方式,由具有查看 backbone.js 模块视图的句柄弱耦合的绑定模块上的更改事件。

伟大的宏观结构基于功能的事件代码。我还到 DOM 耦合 javascript 的建议 (再 backbone.js 有一个大的例子,如何模型完全是 dom 独立和意见甚至不依赖于 dom。你所关心的所有意见可以拍摄下 WebSocket 的数据)

我个人也相当有一个中央的文件管理器,然后在每一页上有一种复杂的 require/include 结构的风扇。从一页一页功能检测的基于您中央加载程序加载 javascript 模块。(请参阅在这里中央的文件管理器 示例 )。

我也想倡导的好再通过 node.js的可能性越来越。有移植逐字 node.js 到浏览器的代码或逐字的 node.js 代码复制到浏览器上工作的人很少。(请参见 YUI3 nodejs 上的运行在浏览器中的 node.jscommonJS 在浏览器中 不可否认大多数的这些都是 WIP 并不稳定。)

解决方法 4:

我的建议是尽可能的尽可能多的 javascript 隔离成外部 js 文件以外的你的意见,并只在标头中引用它们。不仅这允许重复使用 javascript 页面,但它将您的问题在公平的层面上,展开您的代码,以便更容易调试 (更容易通过我的信仰无论如何)。此外,这使得您的 js 有点更安全,因为它不直接拖到浏览器页上呈现。理所当然,安全是微不足道的自萤火之类的工具,或 IE 的开发工具,可以访问分层走的 javascript 文件。

第二,我建议使用工具 (如你们 compress.msbuild (在部署的最后编译) 压缩所有您自定义编写 javascript 为 whatevertheirnameis min.js。不仅不压缩为单个行的一切实际减少负荷和细枝末节来为您的代码运行时,它也混淆它到更安全。很明显更难拆开-最小文件,那么找到任何特定的功能时的所有代码都是单个行。

赞助商