`
suflow
  • 浏览: 169977 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

HTML5 APIs程序员指南

阅读更多

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)可以帮助开发者管理用户的浏览器会话的历史状态。

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

关于历史API的更多信息:

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

这个API允许网站将自己注册成为一些方案的处理程序。下面是一个使用了registerProtocolHandler  方法的例子:

一个在线电话消息服务可以将自己注册成一个sms方案的处理程序,这样当用户点击这个链接以后,就能访问它的Web网站(W3C HTML协议 )了。

sms 、tel 和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

 

译文来源:http://www.webapptrend.com/
 WebAppTrend是一个独立的技术博客,关注Web App前瞻和实践,以及智能浏览器发展 


分享到:
评论

相关推荐

    javascript apis ruby api

    标题中的"javascript apis ruby api"表明本主题涵盖了JavaScript API和Ruby API两个主要方面。JavaScript API是用于在浏览器环境中操作和扩展网页功能的接口,而Ruby API则是Ruby编程语言的接口,允许开发者调用内置...

    值得看的J2EE指南中文版

    这份“值得看的J2EE指南中文版”无疑为初涉J2EE领域的Java程序员提供了一份宝贵的参考资料。J2EE平台包含了各种服务、APIs和协议,以支持开发和部署多层架构的应用程序,尤其是在服务器端。 1. **J2EE组件模型**:...

    apis-source-code

    《API和异步JS口袋指南源代码解析》 在当今的Web开发中,API(Application Programming Interface)和异步JavaScript是不可或缺的技术元素。本篇将深入探讨“apis-source-code”项目,这是一个关于API和异步JS的源...

    WebsiteExpress:兼容HTML5的网站模板-开源

    此外,HTML5还引入了新的APIs,如离线存储、拖放功能、媒体元素等,增强了网页的交互性和用户体验。WebsiteExpress充分利用这些特性,确保网站在各种设备和浏览器上都能表现出色。 在压缩包中,我们发现了以下几个...

    BO4.1 SDK API文档

    这些APIs允许程序员通过编写代码来与Business Objects平台进行交互,实现定制化报告、数据提取、分析功能以及与其他系统的集成。 ### 1. API接口介绍 在BO4.1 SDK中,主要的API接口包括: - **水晶报表(Crystal ...

    UCMAILforJAVA.rar

    标签“java编程”进一步确认了这个项目与Java语言编程有关,可能包括类库、APIs或者其他开发者工具,这些都对Java程序员有用,尤其是那些从事移动应用开发的程序员。 在压缩包内的文件中: 1. "ReadMe.html":这是...

    索菲·卢克

    HTML5是目前广泛使用的版本,它包括了新的元素、APIs以及对多媒体的支持,如音频、视频、图像等。HTML由一系列标签组成,这些标签告诉浏览器如何显示网页内容。例如,`<html>`是文档的根元素,`<head>`包含了元数据...

    java精品

    ### Java精品:初学者的全面指南 #### Java语言概述与历史背景 Java,作为一种跨平台的编程语言,自诞生以来便以其简洁、面向对象、健壮性和安全性著称,成为了IT行业的主流技术之一。它的历史可以追溯到1990年代...

    GiulianoMarcoMontis.github.io

    这可能是一个程序员或者Web开发者Giuliano Marco Montis的个人主页,展示他的作品、技能和简历。 【描述】描述部分为空,意味着没有提供额外的详细信息。通常在GitHub上,个人主页的描述会包含开发者的职业简介、...

    java开发中常用API

    Java开发中的常用API是程序员日常工作中不可或缺的一部分,它包含了各种工具类、接口和类,用于实现各种功能。这里我们主要关注几个重要的API组件,包括W3CSchool的基础教程,MySQL5中文参考手册,jQuery 1.8.3的...

    语音监听源码示例

    这个示例代码集提供了实现语音监听功能的详细步骤,帮助程序员理解和构建类似的系统。然而,值得注意的是,此类技术的应用需遵循法律和道德规范,滥用可能会带来法律责任。 首先,我们要理解“语音监听”这一概念。...

    PPCDJ-1-3-0-源码.rar

    2. readme.html:这通常是一个包含项目相关信息的文档,如安装指南、使用说明、版权信息或开发者联系方式等。它是开源项目中常见的文件,帮助用户了解如何开始使用或贡献代码。 3. images:这个文件夹可能包含了与...

    精选_基于javaEE实现的在线音乐系统_源码打包

    它包含了各种服务、APIs和协议,旨在帮助开发者构建可扩展、高可用性的分布式应用程序。 【描述】"基于javaEE实现的在线音乐系统" 暗示这个项目主要功能可能包括音乐播放、搜索、推荐、用户账户管理、评论互动等。...

    Firefox_Hackathon:2015年7月4日Firefox OS App Hackathon

    开发者可以利用HTML5、CSS3和JavaScript来创建原生级别的应用,这使得Firefox OS对开发者来说具有很高的吸引力,尤其是对于那些熟悉Web开发的程序员。 在Firefox_Hackathon-master文件中,我们可以期待找到一系列与...

    codersbay

    它们是开发者社区的重要组成部分,帮助程序员互相学习、交流经验和解决问题。 JavaScript作为主要标签,我们来详细了解一下这个语言。JavaScript是由Brendan Eich在1995年为 Netscape Navigator 浏览器开发的,最初...

    student-registration-form:该项目的源代码-Form source code

    在IT行业中,源代码是程序员用编程语言编写的原始指令集,它是构建任何软件或应用程序的基础。开源项目鼓励社区参与和协作,促进技术创新,并降低了开发成本。对于“学生登记表”这样的系统,源代码可能包括处理用户...

Global site tag (gtag.js) - Google Analytics