用于移动应用的rAppid.js——是服务器端渲染的实用工具

rAppid.js for mobile app - is server-side rendering practical?

本文关键字:实用工具 服务器端 js 移动 应用 rAppid 用于      更新时间:2023-09-26

我正在评估rAppid.js框架作为新项目的候选。该项目将是一个主要针对移动设备的web应用程序(我将使用web视图来包装它作为一个应用程序,可以提交到苹果和Android应用程序商店)。我意识到这不是rAppid.js构建的主要用例,但我认为它可能会很好地工作,至少在我的情况下,感谢rAppid.js的基于xml的UI语言。

理论上,我可以使用新的rAppid.js服务器来渲染模板,并将渲染的HTML发送给客户端吗?

考虑到我希望页面尽可能快地加载,并且应用程序不需要离线工作,我更愿意在服务器端呈现模板,并将它们作为纯HTML发送给客户端。显然,在这种情况下,框架只能为我提供单向数据绑定(除非我重新编写rAppid.js代码以支持类似于Derby框架的服务器渲染模型),但我认为应用程序的性能改进可能是值得的。

也许我对rAppidJS在移动设备上的客户端渲染速度过于悲观了,但无论如何,我都很想听听大家对此的看法。

理论上,我可以使用新的rAppid.js服务器来渲染模板,并将渲染的HTML发送给客户端吗?

是的,使用节点呈现特性。但请记住,节点渲染是出于SEO原因而开发的。由于这个背景,应用程序的唯一状态是url。这可能适合您的应用程序概念(例如/user/{userid}/news)来呈现用户的新闻,但呈现的站点将完全是静态的。

所以如果你依赖用户输入,客户端验证,你应该使用rAppid:js设计的方式,并在客户端呈现完整的应用程序。

考虑到我希望页面尽可能快地加载,并且应用程序不需要离线工作,我更愿意在服务器端呈现模板,并将它们作为纯HTML发送给客户端。显然,在这种情况下,框架只能为我提供单向数据绑定(除非我重新编写rAppid.js代码以支持类似于Derby框架的服务器渲染模型),但我认为应用程序的性能改进可能是值得的。

我从RIA的经验是,有一个初始加载阶段(Flex应用程序显示一个加载器,iOS原生应用程序显示一个图像,直到应用程序准备好),应用程序快速工作,没有额外的加载时间。如果你把应用分成几个模块(rAppid.js很好地支持这一点),然后只在启动时加载所需的模块,那么应用应该加载得很快。如果你把应用程序封装在web视图中,JS的性能会比在移动浏览器中运行要好一些。

您还可以尝试服务器端和客户端渲染的组合,但不要混合它们。因此,在服务器上呈现页面,并在应用程序加载阶段显示静态html。只要应用程序完全加载,就切换视图。

也许我对rAppidJS在移动设备上的客户端渲染速度过于悲观了,但无论如何,我都很想听听大家对此的看法。

在我们最新的项目中,我们还添加了一个预加载器,并将项目划分为模块。与flash版本相比,它的体积要小10倍,在桌面系统中加载速度也更快。在移动设备上,由于flash插件,它无法加载,所以我无法比较它。

如果你想在移动设备上获得出色的性能,把应用程序分成几个模块,只在需要的时候加载它们。

rAppid:js支持基于路由的模块加载,所以也可以用预选的模块启动应用。