假设我正在构建一个相当大的基于浏览器的交互式媒体应用程序,并且我有以下要求:
- 仅限 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,以消除动态页面更新和动画内容中的大量样板。关于架构的那一部分有什么有用的想法吗?