2013-02-28 50 views
-1

我正在评估rAppid.js框架作为新项目的候选人。该项目将成为主要针对移动设备的Web应用程序(我将使用Web视图将其作为可提交给Apple和Android App Store的应用程序进行打包)。我意识到这不是rAppid.js的主要用例,但我认为它可能有效,至少在我的情况下,这要归功于rAppid.js的基于XML的UI语言。rAppid.js移动应用程序 - 服务器端渲染是否实用?

莫非我,在理论上,使用新的rAppid.js服务器有渲染模板和发送HTML呈现到客户端?

考虑到我想要的页面,以尽可能快地加载,应用程序并不需要脱机工作,我更愿意呈现在服务器端的模板,并将其发送到客户端为普通的HTML。显然,在这种情况下,框架只能为我提供单向数据绑定(除非我重写了rAppid.js代码来支持与Derby框架类似的服务器呈现模型),但我认为应用程序的性能改进可能是值得。

也许我过于悲观,在移动设备上rAppidJS的客户端的渲染速度,但在任何情况下,我会很想听到这个意见。

回答

1

我理论上可以使用新的rAppid.js服务器在那里呈现模板并将呈现的HTML发送到客户端?

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

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

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

我从RIA的经验是,有一个初步的加载阶段(显示装载机Flex应用程序,iOS原生应用程序显示一个图像,直到应用程序已准备就绪)和应用程序的工作原理快速无需额外的加载时间。 如果您将应用程序分为多个模块(rAppid.js支持这一点),并且在需要启动的时候加载模块,应用程序应该加载非常快。如果您将应用程序封装在Web视图中,则JS性能比在移动浏览器中运行它稍好。

您也可以尝试的服务器和客户端绘制的组合,但没有MIXIM起来。因此,在服务器上呈现页面并在应用程序的加载阶段显示静态html。只要应用程序完全加载切换视图。

也许我对rAppidJS客户端在移动设备上的渲染速度过于悲观,但无论如何我都会好奇听到有关这方面的意见。

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

如果您想要在移动设备上获得出色的性能,请将应用程序拆分为多个模块并仅在需要时加载它们。

rAppid:js支持基于路由的模块加载,因此也可以使用预先选择的模块启动应用程序。

+0

谢谢您的详细解答;这绝对改变了我的观点。在页面呈现期间显示静态HTML的想法非常聪明!这可以通过服务器端的节点渲染功能来完成,对吧?关于网页浏览与移动浏览器...网页浏览会更快,因为Javascript已经在电话上,而不需要下载,或出于其他原因? – 2013-03-01 20:04:01

相关问题