阅读更多

13顶
1踩

Web前端

原创新闻 HTML5 APIs 程序员指南

2012-01-31 10:18 by 正式记者 WebAppTrend 评论(4) 有9823人浏览

本文作者 Rich Clark 是一位 HTML5 专家,他非常了解 HTML5 规范中的 APIs 。在这篇文章中,他将介绍这些 APIs 的用途以及最新进展情况。


有关HTML5中的语法元素相信大家已经看到过不少介绍了,但是关于HTML5的APIs的介绍就不那么常见了,而HTML5规范主要就是由这些APIs构成的。


HTML5的标准有两个版本,一个是由W3C发布的,另一个则是由WHATWG发布的。WHATWG现有的HTML5标准中补充了一些W3C标准中没有的APIs(这些APIs其实W3C也有涉及,只是被单独列在一个补充标准中了)。


除了规范中介绍的APIs以外,还有一些相关的APIs也遵循了HTML5的标准,并也声称自己是HTML5的API。有些APIs已经被采用了一段时间了,但是仍然没有被明确列入规范之中,而有些HTML5则着手准备对其进行改进。


这篇文章并不准备从代码的角度去介绍这些APIs,而是会分析他们的用途以及进展情况。还会给出一些参考信息方便读者更加深入地了解自己感兴趣的内容。



HTML5标准中的APIs


首先看看W3C的HTML5规范中的APIs。


多媒体API


多媒体API是HTML5的多媒体元素中的一部分,其中包括 视频 和 音频 元素。这些元素本身实现起来并不复杂,但是这些APIs可以使用JavaScript方法,这是很多人不太了解的。其中包括play() 、pause()、load()  以及canPlayType() 这些方法。许多方法不仅可以使用多媒体类型属性,还可以使用许多其他的属性(例如poster 属性),这些方法在视频元素中尤其常见。通过在API中使用合适的事件和属性,开发者能够实现多媒体的自定义控制。


想要了解更多信息,可以看看下面的文章。


文本轨迹 API


文本轨迹 API(原文为text tracks API)常常和多媒体API一起配合使用。这个API可以与视频音频 元素的text tracks(例如副标题或是字幕)交互。你可以获取一个多媒体元素的文本轨迹长度或是数量,或者是它的文本轨迹(副标题、字幕、描述、章节以及元数据)、类型 (kind)、语言 (language)、状态 (readyState)、模式 (mode)和标签 (label)。


当浏览器使用本地字幕时,这个API就派上用场了,WebVTT就是一个很好的例子。你还可以快速浏览以下这些资源:


拖放功能


拖放API一直受到很多关注。它最初是随着Microsoft的IE5推出的,现在Firefox、Safari 和Chrome都已经支持这一功能了。那么这个API究竟是做什么的呢?


就像它的名字所说的,这个API在浏览器中实现本地的拖放功能。只需要将一个可拖放 属性设置为true ,用户就可以移动浏览器中任意一个元素了。你还可以在目标区域加入一些事件句柄,用来告诉浏览器哪些区域能够放置用户拖放的元素。


如果不局限在浏览器内部使用这一功能,这个API的作用将更加凸显。使用拖放API,用户可以将桌面上的一副图像直接拖入浏览器中,或是将浏览器中的一个新建图标拖到桌面上,并且能够自动加载相应的内容信息形成一个新的应用程序快捷方式。


下面的文章更加深入地介绍了这一拖放功能。


离线Web Apps/Apps缓存


随着native apps(包括移动和桌面版本)和web apps的界限变得越来越模糊,应用程序支持离线访问已经成为大势所趋。离线Web应用程序(Offline Web Applications)规范详细介绍了这一技术,即应用程序缓存功能。


应用程序缓存功能是通过一个简单的列表文件实现的,该文件列出了应用程序离线工作所需的文件。这样发布者就能够确保他们的网站可以支持离线访问了。这个列表文件能够引导浏览器保留一份文件的副本,这样用户下次就可以脱机访问这些内容了。当用户没有接入网络时,浏览器就将本地的副本显示给用户。理论上讲,即使是在地铁或是其他网络不佳的环境下,你也能完成邮件编写工作了,甚至还可以玩web版的“愤怒的小鸟”。


现在浏览器已经对这一功能有了很好的支持,尤其是在移动领域(Firefox、Safari、Chrome、Opera、iPhone和Android),你现在就可以使用这一功能了。下面是一些相关的资料:


UI


和离线功能一样,UI也是HTML5核心标准的一部分。其中有些功能有必要在这里提一提,比如contenteditable属性,在创建web apps就非常有用。IE浏览器从5.5版本推出以后就一直支持这一属性,还有其他五大主流浏览器都支持这一属性。将该属性设置为true表示相应的元素是可编辑的。发布者可以在本地存储中加入这一属性,从而跟踪文档的变化。


想了解更多信息,可以查看最新的标准 ,但是其中有些部分已经被划分给HTML Editing APIs 了。


历史


浏览器的后退按钮是一个使用非常频繁的工具。HTML5的历史API(History API)可以帮助开发者管理用户的浏览器会话的历史状态。


以前的历史API只是帮用户回到之前的页面或是之后的页面,以及检查历史信息的长度。而HTML5则加入了增删用户历史信息的方法,可以保存部分数据用于重构一个页面状态,或是更新URL时无需刷新页面。这个API使用起来非常简单,并且可以用它来开发非常复杂的应用程序。


关于历史API的更多信息:


MIME类型和协议处理程序注册


这个API允许网站将自己注册成为一些方案的处理程序。下面是一个使用了registerProtocolHandler方法的例子:一个在线电话消息服务可以将自己注册成一个SMS方案的处理程序,这样当用户点击这个链接以后,就能访问它的Web网站(W3C HTML协议 )了。


SMSTEL 和IRC 这类方案被列入白名单。网站还可以使用registerContentHandler方法将自己注册为特定内容的处理程序。


想要了解MIME类型和协议处理程序注册方法,可以先看看HTML5规范


WHATWG规范中的APIs


现在,已经介绍过W3C和WHATWG两个版本HTML5协议中共有的一些标准了。接着将介绍一些附加的APIs,这些APIs被WHATWG收录在正式的协议文档中,而W3C则将他们细分为一些更加易于管理的协议。这两个版本中的APIs用途和主要内容都是相同的。

遵循HTML5规范的APIs


由于篇幅限制,这里不会将所有与HTML5相关的APIs都列举出来。其中一些常常被误以为是HTML5标准APIs的内容有地理位置 (Geolocation)、索引数据库(Indexed DB)、选择器(Selectors),以及文件系统API(Filesystem API)。


W3C成员Mike Smith 编著了一个全方位介绍web平台和浏览器技术 的综合列表,非常值得一读。


  

演示示例和浏览器的支持情况


文章之前提到了部分APIs目前得到浏览器支持的情况,但是浏览器对APIs的支持是在不断变化的,想要了解最新的进展,可以查看caniuse 。如果你发现有些APIs目前浏览器尚不支持,也不必灰心。这里还有一个补充功能用来帮助你模拟本地行为。可以查看HTML5 Cross Browser Polyfills 了解这一功能。


你还可以看看Remy Sharp 的 HTML5 Demos ,通过查看这些源码进一步了解文章介绍的APIs。


总结


这里只是粗略地介绍了一下这些非常有用而且功能强大的APIs。如果想要更加深入地了解这些APIs的细节,你需要通过代码去学习,这将给你带来不一样的体验。有些APIs目前还没有完全成熟,希望这篇文章能够让你对此更加有兴趣,并对这些将加入到浏览器中的功能更感兴趣。


文章来源:The developer's guide tothe HTML5 APIs

13
1
评论 共 4 条 请登录后发表评论
4 楼 yzongjie 2012-02-01 23:06
强大,支持,一直在留意这方面的发展发展

引用

兴,程序员苦
亡,程序员苦


呵呵, 心声 。。。
3 楼 kerry.honghao 2012-01-31 16:17
qkjava 写道
我想知道有何高效的办法 上Twitter跟随作者。
比如一种方法是: 我花30块钱每月买VPN .
我找到的免费方法 慢 不稳定。


自由通/逍遥游
2 楼 qkjava 2012-01-31 14:38
我想知道有何高效的办法 上Twitter跟随作者。
比如一种方法是: 我花30块钱每月买VPN .
我找到的免费方法 慢 不稳定。
1 楼 fight_bird 2012-01-31 12:56
兼容性泥潭又来了,多少无谓的脑细胞会被坑杀。

兴,程序员苦
亡,程序员苦

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 切面编程-记录操作日志(aop + 正则表达式)

    aop+正则表达式的方式记录操作日志

  • Spring AOP和AspectJ

    文章目录面向切面编程AOP术语通知(Advice)连接点(Join point)切点(Pointcut)切面(Aspect)引入(Introduction)织入(Weaving)Spring对AOP的支持通过切点选择连接点编写切点在切点中选择bean使用注解创建切面处理通知中...

  • 正则表达式获取Maven依赖中的groupId

    org.aspectj : aspectjweaver : jar : 1.9 .4 : compile [INFO] + - org.springframework.boot : spring - boot - starter - cache : jar : 2.1 .7 .RELEASE : compile [INFO] | \ - org.springframework : ...

  • spring AOP配置中的正则表达式(转)

     aop:pointcut id="method" expression="execution(* *..service.save(..))"/>   aop:config>  expression完整类型,如下: execution(modifiers-pattern? ret-type-pattern declaring-ty

  • Spring-AOP配置及切入点表达式使用教程详解(一)

    AOP(Aspect Oriented Programming):面向切面编程。 用途 日志记录,性能统计,安全控制,权限管理,事务处理,异常处理,资源池管理。 AOP组成 Joinpoint(连接点):就是方法 Pointcut(切入点):就是挖掉共性...

  • AOP表达式详细介绍

    标准的Aspectj Aop的pointcut的表达式类型是很丰富的,但是Spring Aop只支持其中的9种,外加Spring Aop自己扩充的一种一共是10种类型的表达式,分别如下。 execution:一般用于指定方法的执行,用的最多。 within...

  • Spring @AspectJ 实现AOP

    AOP的作用这里就不再作说明了,下面开始讲解一个很简单的入门级例子。 引用一个猴子偷桃,守护者守护果园抓住猴子的小情节。 猴子偷桃类(普通类):package com.samter.common; /** * 猴子 * @author ...

  • JAVAWEB开发之Spring详解之——AOP底层剖析(基于JDK和cglib)、Spring中的AOP以及基于AspectJ的AOP实现、Spring的JDBCTemplate详解

    AOP概述  什么是AOP? AOP—Aspect Oriented Programming 面向切面编程。AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码(性能监视、事务管理、安全检查、...AspectJ是一个基于Java语言的AOP框架,Spring2.

  • 【小家Spring】Spring AOP的多种使用方式以及神一样的AspectJ-AOP使用介绍

    什么时候AOP AOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。 AOP技它利用一种称为“横切”的技术,剖解开封装的对象内部,并将那些影响...

  • Spring学习笔记——AOP篇

    除了spring的几个基础包外还需要导入aspectjweaver,下面是maven导入的配置信息 常用名词 名词 解释 连接点 可以被增强的方法 切入点 实际被增强的方法。切入点就是被增强的连接点 通知 增强的逻辑实现 ...

  • Spring AOP全面详解(超级详细)

    面向切面编程,实现在不修改源代码的情况下给程序动态统一添加额外功能的一种技术,如下图所示:AOP可以拦截指定的方法并且对方法增强,而且无需侵入到业务代码中,使业务与非业务处理逻辑分离,比如Spring的事务,...

  • Spring AOP原理及AspectJ的两种不同实现实例

    Spring AOP实现机制是采用的动态代理和字节码生成技术实现的;AspectJ采用的是用编译器将横切逻辑织入到目标对象,动态代理和字节码生成技术是在运行期间为目标对象生成一个代理对象而将横切逻辑织入到这个代理对象...

  • [源码系列:手写spring] AOP第一节:切点表达式

    在本专栏之前的文章中已经带大家熟悉了Spirng中核心概念IOC的原理以及手写了核心代码,接下来将继续介绍Spring中另一核心概念AOP。 AOP即切面编程是Spring框架中的一个关键概念,它允许开发者在应用程序中优雅地处理...

  • Spring:Spring的基于AspectJ的AOP开发

    Spring的基于AspectJ的AOP开发   一、AspectJ简介 AspectJ是一个基于Java语言的AOP框架 Spring2.0以后新增了对AspectJ切点表达式支持 @AspectJ是AspectJ1.5新增功能,通过JDK5注解技术,允许直接在Bean类中定义切...

  • Spring的IOC和AOP

    Spring的核心是控制反转(IoC)和面向切面(AOPSpring 是为了解决企业级应用开发的复杂性而创建的。在 Spring 之前,有一个重量级的工具叫做 EJB,使用 Spring 可以让 Java Bean 之间进行有效的解耦,而这个操作之前...

  • 使用AspectJ开发AOP更加便捷,你不知道嘛

    上一篇文章中,已经讲解了Spring传统的AOP开发,但在实际开发中,我们都是使用AspectJ的AOP开发。

  • Spring学习笔记-AOP(XML配置)

    Spring学习笔记-AOP。AOP(Aspect Oriented Programing)面向切面编程,一种编程范式,隶属于软工范畴,指导开发者如何组织程序结构 AOP弥补了OOP的不足,基于OOP基础之上进行横向开发 OOP规定程序开发以类为主体模型...

  • Spring AOP execution 切入点表达式

    ==================================================== Spring AOP 用户可能会经常使用 execution pointcut designator。执行表达式的格式如下: execution(modifiers-

  • spring-aop切面

    在OOP中模块化的关键单元是类,而在AOP中模块化的单元是方面。方面支持对跨多种类型和对象的关注点(如事务管理)进行模块化。(在AOP文献中,这种关注通常被称为“横切”关注。) Spring的一个关键组件是AOP框架。虽然...

  • 【老王读Spring AOP-1】Pointcut 与 join point 如何匹配

    这里写目录标题前言版本约定正文Spring 对 AOP 的抽象Pointcut 的类图Pointcut 如何匹配 join pointAspectJ expression 匹配测试Spring AOP 支持的 AspectJ 原语类型小结 前言 通过前面的介绍,我们知道,实现 ...

Global site tag (gtag.js) - Google Analytics