Drag&Drop API (拖放)
使用dataTransfer 接口来支持拖放数据存储, 它的使用方式一般为 event.dataTransfer。
设置 :
dataTransfer.effectAllowed[=value]。该属性返回拖曳对象允许的拖曳时的反馈效果 【放在可移动元素start事件上】
dataTransfer.dropEffect[=value]。该属性返回已设置的拖放时反馈效果。 【放在目标容器over事件上】
dataTransfer.items。返回一个关于拖曳数据的DataTransferItemList对象。
dataTransfer.setDragImage(element, x, y)。 指定拖曳元素时随鼠标移动的图片,x、y分别是图片相对于鼠标的横坐标和纵坐标。
dataTransfer.addElement(element)。将元素添加到被拖曳的列表里。如果你想让某个元素跟随被拖曳元素一同被拖曳,可以使用这个方法。
dataTransfer.types。返回在dragstart事件触发时为元素存储数据的格式。如果是系统文件的拖曳,则返回files。
dataTransfer.setData(format, data)。 为元素添加数据,在dragstart事件触发时可以用它为被拖曳元素存储数据。数据格式一般有两种:
text/plain(设置format为字符串text即可,主要用于文本数据)和text/uri-list(设置format为字符串url即可,主要用于url)。
data=dataTransfer.getData(format)。 返回存储的数据。如果数据不存在,则返回空字符串。
dataTransfer.clearData([format])。删除指定格式的数据。如果不指定格式,则删除所有数据。
dataTransfer.files。 如果是拖曳系统文件,返回正在被拖曳的文件列表对象。可以通过它获得所拖曳的文件数据。 【拖拽上传】
History API(历史记录)
提供了两个新方法pushState()和replaceState(),它们允许我们添加和改变当前浏览器的地址。
设置:
history.pushState({username: "html5"}, "user account", "user.html"); 用于向history对象添加当前页面的记录,并且改变浏览器地址栏的URL
history.replaceState({username: "html5" }, "user account", "user.html"); 类似于pushState(),只是将当前页面状态替换为新的状态
值: state对象 标题 可选参数目标URL
Notification API (桌面通知)
可以使用webkitNotifications.checkPermission这个方法来判断当前Notification的许可状态。Notification的状态一共有3种:
0表示PERMISSION_ALLOWED(允许)。
1表示PERMISSION_NOT_ALLOWED(未作许可授权)。
2表示PERMISSION_DENIED(拒绝)。
一个 小例子 ,请使用Chrome浏览器查看。
Communication API (跨域通信)
以往的浏览器,跨域存在安全问题(CSRF攻击,Cross-Site Request Forgery跨站请求伪造),现在使用Communication API可以很好的避免这个问题。
发展:
起初,使用iframe或Frameset直接调用某个页面;
演化,①以Web Service③和各种SDK④下的API为代表的主动服务模式。它们的代表有新浪微博SDK的API接口、腾讯系列SDK的API接口等各种专业服务提供商。
②以iframe和<script>为代表的被动服务模式。它们的代表有CNZZ站长统计、天气预报和其他各类被iframe索引的资源。
③后来被大家广为接受的一种方案,即Ajax方式。出于安全考虑,不允许使用跨域。
WebSocket API
提供了全双工通信方式,代表了一个巨大的进步,我们从此可以在Web应用中实现实时的数据传输和获取。
支持双向、双工通信。可以实现实现微博新消息通知、邮件推送、实时游戏和聊天等功能。
Web Worker
简单 来说,就是通过JavaScript创建一个后台进程(或者叫工作者进程),执行一些特殊的任务(比如耗时比较长的数据处理),并且提供主进程和新进程之间数据交换的
接口:postMessage和onmessage。它起到互不阻塞执行的效果,避免了传统的JavaScript执行长时间操作时界面无响应的弊端,提高了性能及用户体验。
Storage API
主要涉及localStorage API、sessionStorage API、applicationCacheAPI(离线存储)和服务器端 Manifest 文件等概念。
Canvas和WebGL
Device API
可能是所有的HTML相关API中最大胆、最有应用前景、最有技术突破的一个草案:,使HTML5 标签可以直接调用类似摄像头、电源、系统、文件、网络等各种重要的
但是以前从未实现的功能。
子API:
Geolocation API( 地理位置 API)
File API来帮助我们在Web页面中访问本地文件,它可以在Web应用中展现文件,或者选择并读取文件。
Media Capture API增强了HTML表单,提供了对音频、图像和视频进行采集的功能。PC上还未实现,欧朋手机浏览器实现HTML5标签打开摄像头。
Contact API主要应用在移动设备上,提供对用户通用通讯录的访问,包含如下关键接口。
Contacts接口:提供了访问用户通用通讯录的方法。
Contact接口:提供了读操作来获取单个联系人的信息
Calendar API
与Contact API非常类似,提供了对用户通用日历的存取方式,主要应用在移动设备上。
API定义了一个高级的接口来访问日历信息,例如事件、提醒、警告或其他日历信息。
System Information API用于为Web应用提供访问系统各种运行时属性的方式,主要也应用在移动设备上。(都还未有浏览器实现)
电源( 电量 )
CPU(类型、规格和当前系统负载信息)
温度
网络(WIFI?3G/4G?信号强度?)
传感器(侦测外部环境)
多媒体编解码(设备是否支持XX格式)
存储设备(硬盘?闪存卡?性能?)
输出设备(屏幕、声音播放器... ...)
输入设备(鼠标、键盘、摄像头... ...)
Messaging API
定义了一个简单的API来发送和接收电子邮件、短信和彩信,主要应用在移动设备上。许多现代的浏览器已经支持mailto(非常常见)、tel(常见)
和sms(不常见)协议。MessagingAPI补充了sms:(短信)、mms:(彩信)和mailto:(电子邮件)等URI类型,以提供以下功能:
为消息添加附件的能力。
发送一条消息成功或者失败后的回调方法。
-----------------------------------------------
5种实用API :
页面全屏
焦点位置
拍摄照片
电量变化
资源预加载
使用dataTransfer 接口来支持拖放数据存储, 它的使用方式一般为 event.dataTransfer。
设置 :
dataTransfer.effectAllowed[=value]。该属性返回拖曳对象允许的拖曳时的反馈效果 【放在可移动元素start事件上】
dataTransfer.dropEffect[=value]。该属性返回已设置的拖放时反馈效果。 【放在目标容器over事件上】
dataTransfer.items。返回一个关于拖曳数据的DataTransferItemList对象。
dataTransfer.setDragImage(element, x, y)。 指定拖曳元素时随鼠标移动的图片,x、y分别是图片相对于鼠标的横坐标和纵坐标。
dataTransfer.addElement(element)。将元素添加到被拖曳的列表里。如果你想让某个元素跟随被拖曳元素一同被拖曳,可以使用这个方法。
dataTransfer.types。返回在dragstart事件触发时为元素存储数据的格式。如果是系统文件的拖曳,则返回files。
dataTransfer.setData(format, data)。 为元素添加数据,在dragstart事件触发时可以用它为被拖曳元素存储数据。数据格式一般有两种:
text/plain(设置format为字符串text即可,主要用于文本数据)和text/uri-list(设置format为字符串url即可,主要用于url)。
data=dataTransfer.getData(format)。 返回存储的数据。如果数据不存在,则返回空字符串。
dataTransfer.clearData([format])。删除指定格式的数据。如果不指定格式,则删除所有数据。
dataTransfer.files。 如果是拖曳系统文件,返回正在被拖曳的文件列表对象。可以通过它获得所拖曳的文件数据。 【拖拽上传】
History API(历史记录)
提供了两个新方法pushState()和replaceState(),它们允许我们添加和改变当前浏览器的地址。
设置:
history.pushState({username: "html5"}, "user account", "user.html"); 用于向history对象添加当前页面的记录,并且改变浏览器地址栏的URL
history.replaceState({username: "html5" }, "user account", "user.html"); 类似于pushState(),只是将当前页面状态替换为新的状态
值: state对象 标题 可选参数目标URL
Notification API (桌面通知)
可以使用webkitNotifications.checkPermission这个方法来判断当前Notification的许可状态。Notification的状态一共有3种:
0表示PERMISSION_ALLOWED(允许)。
1表示PERMISSION_NOT_ALLOWED(未作许可授权)。
2表示PERMISSION_DENIED(拒绝)。
一个 小例子 ,请使用Chrome浏览器查看。
Communication API (跨域通信)
以往的浏览器,跨域存在安全问题(CSRF攻击,Cross-Site Request Forgery跨站请求伪造),现在使用Communication API可以很好的避免这个问题。
发展:
起初,使用iframe或Frameset直接调用某个页面;
演化,①以Web Service③和各种SDK④下的API为代表的主动服务模式。它们的代表有新浪微博SDK的API接口、腾讯系列SDK的API接口等各种专业服务提供商。
②以iframe和<script>为代表的被动服务模式。它们的代表有CNZZ站长统计、天气预报和其他各类被iframe索引的资源。
③后来被大家广为接受的一种方案,即Ajax方式。出于安全考虑,不允许使用跨域。
WebSocket API
提供了全双工通信方式,代表了一个巨大的进步,我们从此可以在Web应用中实现实时的数据传输和获取。
支持双向、双工通信。可以实现实现微博新消息通知、邮件推送、实时游戏和聊天等功能。
Web Worker
简单 来说,就是通过JavaScript创建一个后台进程(或者叫工作者进程),执行一些特殊的任务(比如耗时比较长的数据处理),并且提供主进程和新进程之间数据交换的
接口:postMessage和onmessage。它起到互不阻塞执行的效果,避免了传统的JavaScript执行长时间操作时界面无响应的弊端,提高了性能及用户体验。
Storage API
主要涉及localStorage API、sessionStorage API、applicationCacheAPI(离线存储)和服务器端 Manifest 文件等概念。
Canvas和WebGL
Device API
可能是所有的HTML相关API中最大胆、最有应用前景、最有技术突破的一个草案:,使HTML5 标签可以直接调用类似摄像头、电源、系统、文件、网络等各种重要的
但是以前从未实现的功能。
子API:
Geolocation API( 地理位置 API)
File API来帮助我们在Web页面中访问本地文件,它可以在Web应用中展现文件,或者选择并读取文件。
Media Capture API增强了HTML表单,提供了对音频、图像和视频进行采集的功能。PC上还未实现,欧朋手机浏览器实现HTML5标签打开摄像头。
Contact API主要应用在移动设备上,提供对用户通用通讯录的访问,包含如下关键接口。
Contacts接口:提供了访问用户通用通讯录的方法。
Contact接口:提供了读操作来获取单个联系人的信息
Calendar API
与Contact API非常类似,提供了对用户通用日历的存取方式,主要应用在移动设备上。
API定义了一个高级的接口来访问日历信息,例如事件、提醒、警告或其他日历信息。
System Information API用于为Web应用提供访问系统各种运行时属性的方式,主要也应用在移动设备上。(都还未有浏览器实现)
电源( 电量 )
CPU(类型、规格和当前系统负载信息)
温度
网络(WIFI?3G/4G?信号强度?)
传感器(侦测外部环境)
多媒体编解码(设备是否支持XX格式)
存储设备(硬盘?闪存卡?性能?)
输出设备(屏幕、声音播放器... ...)
输入设备(鼠标、键盘、摄像头... ...)
Messaging API
定义了一个简单的API来发送和接收电子邮件、短信和彩信,主要应用在移动设备上。许多现代的浏览器已经支持mailto(非常常见)、tel(常见)
和sms(不常见)协议。MessagingAPI补充了sms:(短信)、mms:(彩信)和mailto:(电子邮件)等URI类型,以提供以下功能:
为消息添加附件的能力。
发送一条消息成功或者失败后的回调方法。
-----------------------------------------------
5种实用API :
页面全屏
焦点位置
拍摄照片
电量变化
资源预加载