Web移动应用开发框架的8个技术构想

  之前我们已经介绍过四大主流移动Web开发框架,今天我们再次深入,探讨Web移动应用框架需要具备的技术特性和理念。目前虽然已经有诸如iUI、jQTouch、WPTouch、PhoneGap、XUI、iWebkit等Web移动应用开发框架,但在移动这个领域毕竟刚刚起步,需要更多技术人员对其修正和思辨。下面这篇文章来自腾讯WSD团队博客,为我们梳理了移动Web开发框架的技术构想。

  iUI、jQTouch、WPTouch、PhoneGap、XUI、iWebkit、Rhodes、gwt-mobile…当我们已经开始惊叹web移动应用充斥着各种各样框架与类库的时候,其实各大web框架才刚刚开始他们的移动领域:Yahoo的YUI3.2的Touch版、jQuery的 jQueryMobile、ExtJS整合JQTouch和Raphaël库推出的Sencha Touch框架。

  ExtJs更名为Sencha的确让我震惊不少,毕竟自己也曾是ExtJs框架的粉丝,如此重量级的框架忽然掉头往mobile touch的方向发展,确实不是一件易事,我们也不禁惊叹移动应用所带来的重大改变。

  在这里我并不是想跟大家介绍各种web移动应用框架的用法介绍和性能对比。只是受ExtJs的影响,以及想知道自己到底去到一个什么程度,以及更好的积累沉淀下前端的经验,于是我开始构想一个好的web移动应用框架应该如何如何,并开始尝试着手实现。重复造轮子只是强迫自己更深入地去了解这个领域,并不是自大到要挑战什么。于是分析对比了下,总结如下:

  1.轻量级

  这个应该是移动应用框架里最重要的一点,不要想着3G的普及还有wifi啥的,国情就是国情,要大部门用户在3秒内下载完你那100K的css和js文件是强人所难。因此我们的移动应用框架必须尽可能的轻量化,所有的命名和函数实现方法都要尽可能的简练和高度压缩。抛掉那些PC上web应用的特效和组件吧,不要为了一个菜单效果把7,80K的jQuery.js加在你的页面上。

  2.主流手机浏览器兼容性

  面对如此多的手机平台和浏览器,要你的移动应用在所有浏览器上表现如一是很困难的,有时候你需要对不同浏览器加载不同的样式文件,又或是运行不一样的函数来实现效果。因此我们的框架必须有能识别各种主流浏览器的方法,具体点,你的框架必须能区分如iPhone、iPad、Android、Windows Phone等,OK,再国情化一点,QQ手机浏览器和UCWeb。最后要注意的是这里尽量不用UA的方法来判断,因为各浏览器的 avigator.userAgent都很不可靠,这里可以参考下mooltools判断浏览器的思路,应用到我们的移动领域上。

  3.强大的选择器

  选择器可以说是一个框架灵魂,在将来的web移动应用中会大量使用CSS3的高级伪类,因此我们的框架必须能尽快遍历定位到尽可能多的HTML5标签和CSS3的伪类,哪怕是像E:first-of-type这种jquery选择器都不支持的结构。

  4.页面动画效果

  与桌面web应用不同的是,移动应用在页面的切换效果方面要炫的多,比如:滑动切换,遮罩弹出,渐入渐出,闪屏,iPhone上的zoomin,zoomout效果等。看看CSS关于fadein和zoomin动画的定义:

  再看看JS端对页面切换的处理:

  5.Ajax解析

  移动设备浏览器受性能和带宽限制,ajax的应用也与桌面应用有较大的区别,因此低带宽和易用性就成了ajax应用的目标,最典型的例子就是翻页,哈,一丝一毫的带宽都不能放过,这方面可以参考下iUI的思想。

  6.手势操作

  这就是Touch,一个给移动互联网带来革命的事件。把mouseOut、mouseover这些桌面相关的鼠标事件从你的移动框架里去除吧,与之替换的是各种Touch和Gesture(手势)事件:

◆touchstart : 手指放在屏幕上时触发

◆touchend : 手指离开屏幕时触发

◆touchmove : 手指在屏幕上移动时触发

◆touchcancel : 取消Touch事件(这个貌似是系统触发的)

◆gesturestart : 开始手势事件

◆gestureend : 停止手势事件

◆gesturechange : 改变手势事件

  监控Touch操作,我们需要利用Touch事件相对于整个页面视图的X轴和Y轴位置来定位(PageX、PageY),并重载默认的Touch事件来扩展我们的需求,对于没有Touch支持的浏览器,我们依然可以重载相应Mouse事件,而Gesture(手势)事件由于需要两根手指触发的放大、缩小、旋转,鼠标是无法模拟,比如下面使用CSS3的webkitTransform样式属性缩放和旋转一个对象Box:

  7.重力感应

  当然,一般的应用很少会用到重力感应,它更适应于游戏方面。对于浏览器更多的是正屏与侧屏的区分。我们要做的就是重载浏览器默认的resize监控事件并对正屏和侧屏做出相应的操作处理。

  8.离线存储

  由于手机网络的特殊性,离线存储技术就变得相当重要,相关的API可以看看W3C提供的有关Client-Side的描述。Client-Side提供了3种离线存储的方案:

◆Database storage : 数据库

◆Local storage : 本地储存

◆Session storage : 区段储存

  我们的框架必须能很好的封装这3种离线存储方式,提供一个方便易扩展的API,比如storage能直接储存JSON参数数据段,就好像下面的Demo:

  以上这些构想可以整理成下面的框架结构图:

  当然,这仅仅是个开始,关于移动应用框架的构思还待我们进一步深入挖掘。

时间: 2024-09-30 21:38:42

Web移动应用开发框架的8个技术构想的相关文章

iOS新的视频开发框架AVPlayerViewContoller与画中画技术

iOS新的视频开发框架AVPlayerViewContoller与画中画技术 一.引言         前面有一篇博客探讨了iOS中视频播放的开发相关类和方法,那篇博客中主要讲解的是MeidaPlayer框架中的MPMoviePlayerController类和MPMoviePlayerViewController类.在iOS8中,iOS开发框架中引入了一个新的视频框架AVKit,其中提供了视频开发类AVPlayerViewController用于在应用中嵌入播放视频的控件.在iOS8中,这两个

java web+jqgrid+打印-针对java web项目中报表,使用什么技术实现报表打印功能效果好?求赐教最佳实践

问题描述 针对java web项目中报表,使用什么技术实现报表打印功能效果好?求赐教最佳实践 javaweb项目,其中含有三级表头,使用的是html5怎样实现打印可以跨浏览器并保持报表的格式不变 解决方案 http://blog.csdn.net/zhouyingge1104/article/details/8508145 解决方案二: amchar,highchar,好多图行图标插件. 解决方案三: 用浏览器自带的打印功能直接打印 解决方案四: 我的项目的报表比较复杂,使用的jqgird,浏览

Pyjamas 0.8.1~+alpha1发布 Web应用程序开发框架

Pyjamas 是一个基于Python的Webhttp://www.aliyun.com/zixun/aggregation/13521.html">应用程序开发框架,包含了Python-Javascript编译器,一个AJAX框架和widget API工具集.其姊妹项目是pyjamas-desktop,用于谷歌Web工具包的端口到Python. Pyjamas 0.8.1~+alpha1该版本在标准模块进行了改进和补充.JSONParser更名为JSON和其界面改为符合标准的Python

Web前端开发工程师必须知道的技术列表

想要打造并拥有一流的Web产品开发团队,在团队成员基础能力上一定要下功夫.对于Web前端产品开发来说,仅仅掌握Web1.0时代简单的"网页套接"是完全不够的.我结合自己的团队配备,特此罗列了Web前端产品工程师所涉及的技能列表如下: 通过许多实际项目,个人认为一个完备的前端产品开发团队,必须拥有如下的人才配备,也希望大家补充: ◎ 团队全体成员达到所有技能中的a级标准 ◎ 团队全体成员必须掌握两项技能中的b级标准,并保证所有的b级标准在该团队中有50%以上成员能达到 ◎ 团队全体成员必

Web的26项基本概念和技术

Web 开发是比较费神的,需要掌握很多很多的东西,特别是从事前端开发的朋友,需要通十行才行.今天,本文向初学者介绍一些 Web 开发中的基本概念和用到的技术,从A到Z总共26项,每项对应一个概念或者技术. A - AJAX AJAX 全称为"Asynchronous JavaScript and XML"(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术.根据Ajax提出者Jesse James Garrett建议,AJAX: ●使用XHTML+CSS来表示信

现代Web开发需要学习的15大技术

将近4年前,我写了一篇名为<Future of Web and Mobile: HTML5, CSS3 and Javascript>的博客文章,其中我提到了Javascript的出现,以及JavaScript框架,例如jQuery.Knockout等的爆 发. 快进到现在,我发现现代web开发再一次将发生压倒性的改变.信息资讯的铺天盖地令人迷惑,尤其对于初学者而言.首要原因是新的框架,例如 Angular 2和ReactJs出现了,使用了尚未完全定型的ECMAScript 6特性.并且有更多

2014值得推荐的10个移动 Web 应用程序开发框架_Android

在最近几年里,移动互联网高速发展.市场潜力巨大.继计算机.互联网之后,移动互联网正掀起第三次信息技术革命的浪潮,新技术.新应用不断涌现.今天这篇文章向大家推荐10大优秀的移动 Web 开发框架,帮助开发者更加高效的开发移动Web应用. Sencha Touch Framework Sencha Touch 是世界上第一个基于 HTML5 的移动 Web 开发框架,支持最新的 HTML5 和 CSS3 标准,全面兼容 Android 和 Apple iOS 设备,提供了丰富的 WEB UI 组件,

10大优秀的移动Web应用程序开发框架推荐

在最近几年里,移动互联网高速发展.市场潜力巨大.继计算机.互联网之后,移动互联网正掀起第三次信息技术革命的浪潮,新技术.新应用不断涌现.今天这篇文章向大家推荐10大优秀的移动Web开发框架,帮助开发者更加高效的开发移动Web应用. Sencha Touch Framework Sencha Touch 是世界上第一个基于 HTML5 的移动 Web 开发框架,支持最新的 HTML5 和 CSS3 标准,全面兼容 Android 和 Apple iOS 设备,提供了丰富的 WEB UI 组件,可以

十大移动 Web 应用程序开发框架推荐

在最近几年里,移动互联网高速发展.市场潜力巨大.继计算机.互联网之后,移动互联网正掀起第三次信息技术革命的浪潮,新技术.新应用不断涌现.今天这篇文章向大家推荐10大优秀的移动Web开发框架,帮助开发者更加高效的开发移动Web应用. Sencha Touch Framework Sencha Touch 是世界上第一个基于HTML5的移动Web开发框架,支持最新的HTML5和CSS3标准,全面兼容 Android 和 Apple iOS 设备,提供了丰富的 WEB UI 组件,可以快速的开发出运行