移动Web富应用框架RAIS发布

先看看RAIS能做什么


简介



RAIS是专注移动端的Web富应用解决方案,它提供开发Rich Web App的MVVM框架、基础组件、编译工具、调试插件等全链路开发工具,帮助开发者快速高效构建具备优秀交互体验的Web应用。
更多信息请参见官网 http://rais.tmall.net

为什么?



从hybrid模式兴起到现在已有数年,依托海量的Web开发者群体与PC时代积累的基础设施,Web在移动端的占比大幅攀升。但在用户体验要求越来越高的今天,Web页面的体验瓶颈也愈发明显:

打开速度慢。以高度动态化为核心的设计思想在今天的高速网络环境下反而拖累了加载速度,仅仅加载一个页面的基础UI部分就需要10-20个网络请求,并且悲催的是部分资源是需要顺序执行的,这在争分夺秒,哦不,争秒夺毫秒的移动端上显然水土不服,虽然通过各种缓存策略得以缓解,但是由于需要保证资源加载时序,“单点故障”效应仍然是拖累加载速度的最大杀手。天猫H5页面平均秒开率在iPhone 65%(均值1200ms),Android 35%(均值2000ms)左右,这让“H5页面打开慢”的标签难以撕掉。

交互瓶颈。Web内核在移动端交互层面的支持远不及Native UI,这导致在下拉刷新、切页动画、多页状态保持、页面滚动等等交互体验上与Native UI有明显差异,所以大多数人选择在Native中实现视图功能和浏览链路,而在Web内实现单个页面的UI元素,这使得每个页面切换都需要重新载入页面,闻起来还保持的上世纪PC页面的气息。

体系化框架缺失。在今天崇尚简单快速操作的移动端,缺乏体系化的组件框架和开发工具,多数开发者在开启一个项目前,往往要纠结于技术选型,而最终只能选择用零散的组件拼凑页面。

我问过不少同学,如何区分H5页面与Native页面?得到的答案五花八门,比如:“页面布局不稳定,从上往下加载的是H5”、“滚动没停止时图片出不来的是H5”等等,当然最多的答案还是“打开要白屏一两秒钟的是H5”

所以RAIS的初衷,正是解决移动Web的交互体验和全链路开发体验问题。

而近两年站在风口的React Native以及我们自己的WEEX,与其说给Web端开发者带来了希望,倒不如说,NativeUI+WebDSL的兴起让我们看到了他们对移动端H5的绝望。好,那么问题来了,我们为什么要死磕H5呢?

我们认为,Web的优势在于高度动态化、灵活的UI模型以及海量的开发者群体。如果用一句话来概括WebUI的灵活性,那就是“没有什么UI布局是一个 position:absolute 搞不定的,如果有,那就两个”。当然,这是句玩笑话。NativeUI+WebDSL的硬伤在于任何WebDSL终究无法还原真正的WebUI模型,这使得其开发效率要追赶H5,尚需些时日。而Web标准是所有Web开发者多年达成的共识,短时间内难以被新标准取代。 而今天移动端Web的窘境,是我们还远没有做好。许多人相信“H5是终局”,但是要“再等等”,那句话叫什么来的?“幸福不会从天降,共产主义等不来”(原谅我抄了这么low的slogan)。而且,在手机硬件更新换代远快于PC的年代,我们相信在一两年内,将会是移动Web的大时代。回想当年PC,BS大规模替代CS的时代,又用了几年呢?

另外,Apple对除自身的 built-in webkit 外的动态SDK的态度比较暧昧,2017.3.8 发出的大量开发者警告可见一斑。

RAIS是如何解决这些问题的?


体验瓶颈突破与基础组件封装

打开速度。RAIS会将资源打包,将代码请求减少到1个(使用预加载情况下则无请求);首屏通过数据配置实现优先渲染。一般用户从看到界面到手指滑动界面通常在1.5s以上,极端情况也至少需要800ms,因此在首屏展示至用户操作间,可以让用户在无感知间完成二次渲染。RAIS目前的线上页面iPhone秒开率达到93%(均值430ms),Android秒开率达到82%(均值860ms)。
滚动阻塞。在UC3内核和iOS的UIWebView中存在使用滚动页面时,JavaScript停止执行的问题,导致在滚动期间的懒加载图片以及节点回收等无法执行。RAIS提供了ScrollView组件解决此问题,并保证较好的性能。
下拉刷新。基于ScrollView的实现,纯Web的下拉刷新也成为可能,RAIS提供了pulldown-scrollview以支持下拉刷新操作。
长列表实时回收。RAIS提供ListView组件,以支持长列表实时进行UI对象回收,在ListView里可以看到加载10000条数据流畅滚动的例子。
曝光事件。RAIS提供appearance模块,以支持元素曝光/隐藏时的事件派发

MVVM与高性能

RAIS提供了MVVM的App框架,并在内置的directive提供了针对移动端模式的性能优化方案。比如在 repeat directive 中,提供了from x to x功能,开发者可以更改显示范围,repeat directive 能够以最佳复用率复用UI对象,ListView就是基于此功能实现的。

ListView 10000条数据渲染效果

多页应用

RAIS可构建高性能的单视图应用,也提供了多视图和路由系统,提供可自定义切页动画的视图切换。同时,支持视图缓存,可在路由中配置当前视图在下次访问时使用上次的缓存对象还是重新渲染。使用缓存视图可保持上次一操作的状态,比如上一次列表滑动的位置。

更多特性可以移步官网 http://rais.tmall.net 查看。

RAIS提供哪些框架和工具?


  1. RAIS框架 & 移动端基础组件库
  2. 编译器 & 工程脚手架 & 周边工具和Chrome开发插件
  3. RAIS 模块贡献机制 & 最佳实践

RAIS Chrome 调试插件

自己试试?



请移步这里 http://rais.tmall.net/guide/rais/quickStart/ 快速搭建一个RAIS App

目前已知的问题和解决方案


  1. Android低端机在U3内核下滚动有卡顿现象,预计3月中旬支持在U4及Chrome内核上使用native-scroller
  2. 暂不支持横划手势返回,预计在3月中旬支持
  3. 在Chrome56上调试时,滚动Scrollview时会有警告。此为Chrome在56版本中的更新修改的特性,预计在3月中旬修复

最后



对WebApp方向有兴趣的同学欢迎随时向我们吐槽、建议、贡献、合作。
RAIS框架 http://gitlab.alibaba-inc.com/groups/rais
移动组件库 http://gitlab.alibaba-inc.com/groups/rais-mobile

时间: 2024-09-16 02:54:35

移动Web富应用框架RAIS发布的相关文章

系统-目前WEB富客户端框架推荐

问题描述 目前WEB富客户端框架推荐 好久没搞WEB前端了,请问目前比较流行的富客户端框架有哪些呢? 最近想搞一个后台系统, 我大致知道的框架有,bootstrap.dwz.easyui.. 解决方案 booystrap就很强大了,各种功能都有

DWZ-RIA v1.2 Final发布 DWZ富客户端框架

DWZ富客户端框架(jQuery RIA framework), 是中国人自己开发的基于jQuery实现的Ajax RIA开源框架. DWZ富客户端框架设计目标是简单实用.扩展方便.快速开发.RIA思路.轻量级DWZ支持用html扩展的方式来代替javascript代码, 基本可以保证程序员不董javascript, 也能使用各种页面组件和ajax技术. 如果有特定需求也可以扩展DWZ做定制化开化. 国内很多程序员javascript不熟, 大大影响了http://www.aliyun.com/

Vaadin 6.7.5发布 Web应用程序框架

Vaadin 是一款http://www.aliyun.com/zixun/aggregation/11969.html">互联网应用程式的Web应用程序框架,使用 Apache V2 许可协议的开源产品.相对于Javascript库和浏览器插件,它的功能是一个服务器端架构,也就是说大多数的逻辑运行都是在服务器上.AJAX技术是用在浏览器端,以确保有一个丰富和交互式的用户体验. Vaadin是一个大的UI组件系列,服务器端组件包括:按钮.表格和Tree,可以用来组成用户界面的应用程序.它是

Vaadin 6.6.3发布 Web应用程序框架

Vaadin 是一款RIA的Web应用程序框架,使用 http://www.aliyun.com/zixun/aggregation/14417.html">Apache V2 许可协议的开源产品.相对于Javascript库和浏览器插件,它的功能是一个服务器端架构,也就是说大多数的逻辑运行都是在服务器上. AJAX技术是用来在浏览器端,以确保有一个rich的和交互式的用户体验. Vaadin是一个大的UI组件系列,服务器端组件包括:按钮,表格和Tree,可以用来组成用户界面的应用程序.

Click 2.0.1发布 J2EE Web应用程序框架

Click 2.0.1此版本增加了NS-3的支持.修复重要的用户级别ToDevice错误,更好地处理单调的计时,改善长数据流的处理,修复数据包分类和数据包合并的问题. Click 是一个高性能的J2EE Web应用程序框架适用商业 Java 开发者,是http://www.aliyun.com/zixun/aggregation/14417.html">Apache基金会下的一个子项目,它是基于页面和组件的 java web 框架,基于事件编程模型,使用 Velocity 模板作为页面视图

Vaadin 6.6.4发布 Web应用程序框架

Vaadin 6.6.4这是一个维护版本. Vaadin 是一款RIA的Web应用程序框架,使用 http://www.aliyun.com/zixun/aggregation/14417.html">Apache V2 许可协议的开源产品.相对于Javascript库和浏览器插件,它的功能是一个服务器端架构,也就是说大多数的逻辑运行都是在服务器上. AJAX技术是用来在浏览器端,以确保有一个rich的和交互式的用户体验. Vaadin是一个大的UI组件系列,服务器端组件包括:按钮,表格和

Click 2.0发布 J2EE Web应用程序框架

Click 2.0该版本新增和更新了大量的路由元素. rescheduler已被重构和加速.提高对计时器的性能.计时器可能现在也可以本地化一个线程.轮循调度错误已修复.基础的配置已经被清理.多线程已被添加. Click 是一个高性能的J2EE Web应用程序框架适用商业 Java 开发者,是http://www.aliyun.com/zixun/aggregation/14417.html">Apache基金会下的一个子项目,它是基于页面和组件的 java web 框架,基于事件编程模型,

Web应用程序框架 Easy Java Websites 2.4发布!

Easy Java http://www.aliyun.com/zixun/aggregation/8048.html">Websites 2.4 版本更新日志: -增加了支持servlet spec 3.x 的注解.-增加了安全和身份验证功能,例如 WAR.-更新了documentation and javadocs 文件.以上这些更新的功能可以在安全和身份验证的例子中看到(ejw_simplelogin.war). Easy Java Websites(简称 EJW)是一个Web应用程

Xataface 1.3rc5发布 Web应用程序框架生成器

Xataface 是一个开源的Web应用程序框架生成器,建立在MySQL数据库让用户可以每天进行访问.在无需知道任何SQL的形式下,它能够自动生成相应的表格.列表和菜单到相互的数据库.Xataface具有功能全面的Web应用程序框架,使http://www.aliyun.com/zixun/aggregation/7155.html">开发人员能够灵活地自定义应用程序的功能和性能,通过配置文件(使用简单的INI文件语法).模板和插件.通用应用程序是完全没有自定义的功能,但开发商可以自由定制