理论上,我可以使用新的 rAppid.js 服务器在那里呈现模板并将呈现的 HTML 发送到客户端吗?
是的,具有节点渲染功能。但请记住,节点渲染是出于 SEO 的原因而开发的。由于这种背景,应用程序的唯一状态是 url。这可能适合您的应用程序概念(例如 /user/{userid}/news)来呈现用户的新闻,但呈现的站点将是完全静态的。
因此,如果您中继用户输入、客户端验证,您应该按照设计方式使用 rAppid:js,并在客户端上呈现完整的应用程序。
鉴于我希望页面尽快加载,并且应用程序不需要离线工作,我更愿意在服务器端呈现模板并将它们作为纯 HTML 发送到客户端。显然,在这种情况下,框架只能为我提供单向数据绑定(除非我重新编写 rAppid.js 代码以支持类似于 Derby 框架的服务器渲染模型),但我认为应用程序的性能改进可能是值得。
我从 RIA 获得的经验是,有一个初始加载阶段(Flex 应用程序显示加载器,iOS 原生应用程序显示图像,直到应用程序准备好)并且应用程序可以快速运行而无需额外的加载时间。如果您将应用程序分成模块(rAppid.js 很好地支持这一点)并在启动期间加载所需的模块,应用程序应该加载得非常快。如果将应用程序包装在 Web 视图中,JS 性能会比在移动浏览器中运行它稍好。
您也可以尝试结合使用服务器端和客户端渲染,但不要混合它们。因此,在服务器上渲染页面并在应用程序的加载阶段显示静态 html。只要应用程序完全加载,就可以切换视图。
也许我对 rAppidJS 在移动设备上的客户端渲染速度过于悲观,但无论如何我很想听听对此的看法。
在我们最新的项目中,我们还添加了一个预加载器并将项目分成模块。与闪存版本相比,我们还拥有它的 10 倍小,并且在桌面系统中加载速度更快。在移动设备上,由于 Flash 插件,它不会加载,所以我无法比较它。
如果您想在移动设备上获得出色的性能,请将应用程序拆分为多个模块并仅在需要时加载它们。
rAppid:js 支持基于路由的模块加载,因此也可以使用预先选择的模块启动应用程序。