【发布时间】:2012-03-30 01:08:55
【问题描述】:
假设我正在构建一个相当大的基于浏览器的交互式媒体应用程序,并且我有以下要求:
- 仅限 Webkit(假设桌面上使用 chrome)
- 平板电脑和台式机版本,用户界面可能略有不同
- 完全客户端:没有任何服务器交互
- 可能的最佳性能
- 完全国际化
- 我将构建大量此类应用程序
- 长期可维护性不是优先事项(此处没有 TDD)
- 重用和从项目到项目是一个优先事项
- 设计师称雄 - 大量时间将花在外观和动画上
- 非常短的开发时间表
- 小而精的团队
我正在寻求以前做过类似事情的人的建议,以避免事先做出一些错误的选择。
我对 JS 和 CSS3 了如指掌,但我足够聪明/经验丰富/年纪大,知道使用别人开发的架构框架而不是自己开发的架构框架有好处。但是,只有当我编写的应用程序符合框架开发人员的目标时,这些好处才有效。
我花了一天时间尝试了解 SenchaTouch,并得出结论认为它非常适合构建与我正在构建的完全不同的东西。 (以此类推,SenchaTouch/ExtJS 是 Swing,我正在寻找 Flash。)此外,Sencha 似乎费了很大力气将 Javascript 更改为基于类的系统,而不是仅仅接受/拥抱它是一个原型- 为基础的系统。这让我很烦。
我花了一天时间学习所有关于backbone.js,我真的很喜欢它,除了1)我真的不需要任何服务器交互的东西(尽管我可能会用它来引导所有的UI元素资源文件),以及 2)它完全强调保持视图是最新的。但也许这是件好事?这个我不是很清楚。
我查看了 knockout.js,虽然它确实非常担心保持视图的更新,但我查看的演示都没有解决国际化问题。我的 i18n 需求很简单:我的应用程序中出现的每个文本字符串都需要来自一个表格(并且可以随时更改使用的语言)。当我在 knockout.js 主页中看到这样的内容时:
optionsCaption="choose..."
我担心根据运行时变量设置使该字符串动态化是多么容易。也就是说,如果我想写相当于:
optionsCaption=l10n("choose")
是否有一种相当轻松的方法来做到这一点,让语言更改自动在整个 UI 中传播涉及什么?
有什么强烈的建议可以让我看看另一个框架,这可能更合适?
另外,我假设我们将使用 jquery/ui 或 zepto,可能是 zepto,以消除动态页面更新和动画内容中的大量样板。对架构的这一部分有什么有用的想法吗?
【问题讨论】:
-
您能接受其中一个答案吗?我在 KnockoutJS + Jed 中为您提供了 i18n 的演示。
-
抱歉,Magnus,但是这个项目的优先级降低了,我还没有回复它。在我对它们进行全面评估之前,我无法真正接受答案,这仍在我的待办事项清单上。
标签: jquery backbone.js sencha-touch knockout.js zepto