0 Comments

移动Web开发简介(3)

发布于:2013-09-27  |   作者:广州网站建设  |   已聚集:人围观

1.2.4 其他移动标记语言

本节主要介绍在移动Web中广泛使用的标记语言,包括XHTML、HTML、XHTML-MP和WML。除此之外,还有其他一些未被广泛采用的标准化移动标记语言。其中一些标记语言要么超前标榜在移动设备上实现可靠的Internet访问,要么并入其后更流行的标准。对于这些标记语言,本书将简要说明其优势,而不做深入的探讨。

1. HDML

WML是移动Web的旧版语言,但它并不是第一种可在手机上查看的标记语言。这一殊荣属于HDML (Handheld Device Markup Language,手持设备标记语言),它是WML的前身,由Openwave (一家移动基础设备提供商和浏览器供应商,以前称为Unwired Planet,也就是“无线星球”)设计。HDML在1997年被提交到W3C,但始终未标准化,也未被广泛采用。不过,HDML对WML的语法形成和使用产生了很大的影响。

20世纪90年代中期,手机都是黑白的,而且大多数使用的是三行显示屏。某些早期的移动设备支持显示HDML文档。HDML浏览器对于语法的要求非常不严格。

作为一个喜欢尝试的人,我曾经使用HDML制作了一个基于表单的网站原型,并将其用于我的模拟手机。该网站可以运行,但我还是放弃了,因为浏览器强制执行少量达到HDML文档最大文件的大小。这种浏览器也最终没有向普通用户公布。在开发过程中,我经常用无效的HDML语法使浏览器崩溃,每次发生崩溃时,HDML手机都会输出存在错误的文件名和出错的C源代码的行号。这个过程非常有趣。
广州网站建设,网站建设,广州网页设计,广州网站设计

2. CHTML

日本的DoCoMo移动网络中的I-mode移动设备使用HTML的一个子集,即压缩式HTML(Compact HTML,CHTML),显示Web内容。CHTML由日本的移动浏览器公司Access所创建,并于1998年提交到W3C进行标准化。CHTML采用HTML的结构,用一组严格限定的标记将Web内容传递到非常小的信息应用程序,如低端手机。CHTML不支持以下HTML功能:

◆ JPEG格式的图像(支持GIF格式)

◆ 表格

◆ 图像地图

◆ 多种字体和样式(在I-mode设备中,仅支持一种字体)

◆ 背景色和背景图像

◆ 框架

◆ 样式表

CHTML仅在日本市场中销售的移动设备上使用,与此同时,通过CHTML开发的各种I-mode服务正在使用XHTML迅速地重新实现。

3. XHTML Basic

对于功能受限的移动设备,在从HTML降级到XHTML-MP的过渡阶段,建议使用XTML Basic移动标记语言。该建议由W3C在2000年提出,开放移动联盟对XTML Basic的标记支持进行了扩展,从而创建了XHTML-MP。

很多移动浏览器都支持XHTML Basic DTD,但移动Web开发人员更倾向于使用支持更为广泛的XHTML-MP。

1.3 移动脚本语言

移动浏览器中的客户端脚本编写曾经是智能手机的专属领域,但这种状况发生了日新月异的变化。到2010年,很多畅销移动设备都将支持ECMAScript-MP或移动JavaScript。移动JavaScript是一种非常奇妙的工具,用于创造交互式的移动Web体验。与任何客户端移动技术一样,在真实的移动设备上测试JavaScript对于有效地完成开发工作至关重要,这是因为在模拟器上测试以及在Firefox中进行测试可能无法发现某些语法问题和性能问题,而这些问题很可能会在目标移动设备上发生。

移动JavaScript和桌面JavaScript的语法在本质上是一样的。移动版本严格遵守脚本行必须以分号结束。移动JavaScript减少了支持的字符集,并排除了计算密集型语言元素。与对应的桌面语言相比,移动语言的不同之处在于移动浏览器中的DOM和事件支持。DOM和事件支持可能会因浏览器供应商和版本的不同而有所差异。若要成功完成移动JavaScript开发,则在设备上进行测试至关重要。

客户端脚本编写也可能会降低移动Web浏览性能。移动用户可以禁用JavaScript执行。因此,即使是专为移动设备设计的支持JavaScript的标记,也必须进行适度地调整,使之适应非脚本环境。灵活的移动Web设计首先实现标记,然后通过客户端脚本编写反复地对其进行增强。本书介绍设备识别和内容自适应技术,使得能够根据条件仅在支持JavaScript的移动浏览器上包含脚本。

广州网站建设,网站建设,广州网页设计,广州网站设计

注意:

WML提供了自己的脚本语言,即WMLScript。WMLScript需要从WML文档进行链接,并且支持表单验证、对话框、卡片导航和URI导航。本书中未对WMLScript进行讨论,我们关注的是在移动浏览器的客户端脚本编写中采用的脚本语言,也就是JavaScript和ECMAScript-MP。

1.4 移动样式表

用于移动标记文档的样式表遵循三种CSS行业术语之一。最佳的移动浏览器支持CSS2,也就是在桌面Web中与XHTML和HTML结合使用的样式标准。支持XHTML-MP的移动浏览器使用无线CSS和/或CSS移动配置文件,二者都是CSS2的子集,彼此独立而又存在一定的联系,可以在有限的浏览器上支持通用的样式属性。移动CSS子集删除了计算密集型CSS功能,如属性继承和3D元素对齐方式。

1.5 移动行业组织和标准机构

对于灵活的跨平台开发而言,遵守移动Web行业标准和最佳实践非常重要。一些Internet和移动行业机构掌管着移动Web标准和推荐的最佳实践,这些机构包括:

◆  W3C:该机构负责针对移动Web开发和测试标准化移动标记语言以及发布最佳实践文档。

◆  开放移动联盟(以前称为WAP论坛):该机构负责标准化移动标记和样式语言,以及其他设计用于实现跨设备、地域和移动网络进行互操作的移动技术。

◆  dotMobi(http://mtld.mobi):该机构控制.mobi顶级域,以及必须与设备适应并与移动设备兼容的内容。该机构还负责发布移动Web开发的最佳实践,并且通过在线社区对移动开发人员、市场营销人员和运营商进行相应的培训。

◆  移动营销协会(Mobile Marketing Association):该机构集中管理针对移动设备营销和广告的各种技术建议和最佳实践。

◆  开放移动终端平台(Open Mobile Terminal Platform,OMTP) (www.omtp.org/):这是一个由运营商创立的移动行业组织,主要负责标准化从Web应用程序访问移动设备的操作。

移动Web开发是一门新兴的学科,各种各样的标准和最佳实践如雨后春笋般涌现出来。聪明的移动Web开发人员应深谙这些行业文档,通过批判性的思维确定,在开发面向特定地域和移动设备型号的移动Web内容时应适用哪些最佳实践。

1.6 移动生态系统

移动生态系统是一个丰富多彩、杂乱无序而又令人兴奋的世界。作为移动Web开发人员,您可以期待接触这个生态系统中的一些部分。OEM (原始设备制造商)和移动软件供应商控制着在移动设备上运行的移动浏览器软件。移动运营商销售手机和网络服务。运营商控制着移动设备的Web访问。独立的移动开发人员社区通常围绕某一移动平台或服务组件组织。在开发人员社区中,从事移动Web和应用程序项目的人员会友好地进行一些技术上的交流。

练习1:浏览移动Web

通过在各种不同的手机上浏览Web来熟悉移动Web。搜集或向朋友借一些不同制造商生产的移动设备,要求这些移动设备具有不同的屏幕尺寸和样式(尤其是触摸屏)。最低限度是,至少要有一部功能手机和一部智能手机。接下来,使用这些移动设备执行以下操作:

◆ 导航到Web浏览器并启动。

◆  浏览针对移动设备进行了优化的网页。如果找不到针对移动设备进行了优化的网站,可以使用移动搜索引擎进行搜索,可供选用的移动搜索引擎包括Google (http://google.com)、Yahoo!(http://yahoo.com)或Bing(http://bing.com)等。接下来,在移动Web搜索结果类别中查找移动Web页面的链接。

◆  浏览桌面网页。

◆ 使用某种移动搜索引擎搜索附近的餐馆,查询餐馆的电话号码,然后查询从您当前所在位置到餐馆的行车路线。

记录下您在移动设备上浏览Web并使用各种功能时的体验,然后思考下面的问题:

1. 在手机上找到Web浏览器的难易程度如何?完成启动浏览器的操作总共经过多少次按键?

2. 是否可以在手机上查看移动网页?这些网页是否可用?原因是什么?

3. 是否可以在手机上查看桌面网页?这些网页是否可用?原因是什么?

4. 桌面网页是以适应视图显示,还是以代码转换视图显示?这种网页视图对浏览体验产生什么影响?

5. 您选用的是哪种移动搜索引擎?原因是什么?是否可以轻松地区分针对Web优化和针对移动设备优化的Web搜索结果?

6. 在手机上搜索附近的餐馆的难易程度如何?是否可以通过点击电话号码开始呼叫?查询到的行车路线是否可行、准确?

最后,确保本练习中所使用的每个移动设备都有数据计划,以允许浏览公共Internet网络。

1.7 代码示例

本节中涉及的代码和标记是使用PHP 5通过Eclipse PDT在Windows台式计算机上编写的。代码在Linux、Apache、MySQL和PHP(LAMP)环境中托管。本书中示例代码的主题是一个虚构的新鲜农产品市场,称为Sunset Farmers’ Market。

可以从http://learnthemobileweb.com/books/或者http://www.tupwk.com.cn/downpage上找到本书中的代码示例、勘误表和其他信息。也可以在移动设备上浏览http://learnto.mobi/books/以在移动浏览器中查看代码示例。

1.8 小结

本章介绍了桌面Web和移动Web之间的基本区别。移动设备一般都外形小巧,而移动用户往往具有目标导向性,从而有必要开发面向移动设备和移动用户的专用移动标记语言。此外,介绍了一些用于移动Web的标记语言和脚本语言,在此过程中,还提到了一些非主流的语言,但仅仅是为了说明其历史意义,并无其他用意。作者对移动生态系统进行了调查研究,并介绍了一些移动行业组织和标准机构。

飞机