Posted by:
努力记

努力记,通过记录,计划,让自己的努力可以触碰彩虹!

5,045

HTML5:新功能

  • 2013-05-10
  • 暂无评论

文件API:首先通过添加multiple可以在file空间内容一次放置多个文件

  1. 用户选择的文件都是一个file对象,有两个属性:name文件名,不包括路径lastModifiedDate文件的最后修改日期
  2. Document.getElementById("file").files获取FileList文件列表对象,是file对象的列表
  3. Blob对象:有两个属性,size对象的字节长度,type对象的MIME类型、如果是位置类型则为空,file继承与Blob对象,因此可以获取文件的大小及类型。
  4. FileReader接口:用来把文件读入内容,并且读取文件中的数据
  5. 有4个方法(3个用以读取文件,一个用来中断读取过程):
    • readAsBinaryString(file):将文件读取为二进制码,通常传送到后端,用来存储文件
    • readAsText(file,[encoding]):将文件读取为文本,第二个参数为编码方式,默认UTF-8
    • readAsDataURL(file):将文件读取为DataURL,通常指图像或者html等格式文件
    • abort():中断读取操作
  6. 支持的事件:
    • Onabort:数据读取中断时触发
    • Onerror:数据读取出错时触发
    • Onloadstart:数据开始读取时触发
    • Onprogress:数据读取中
    • Onload:数据读取成功完成时触发
    • Onloadend:数据读取完成时(无论成功失败)触发

拖放API:元素的属性draggable设置为true,img与a默认允许拖放

  1. Mousedown、mousemove、mouseup来实现拖放操作,但只支持在浏览器内部
  2. Html5实现在浏览器与其他应用程序之间的数据互相拖动
  3. 目前支持拖动处理的MIME类型有:text/plain(文本文字)、text/html(html文字)、text/xml(XML文字)、text/uri-list(UR列表,每个url一行)
  4. DataTransfer:拖放对象支持效果及数据的定制,能实现更复杂的交互操作

CanvasAPI:用于回执任何图形与图像

  1. 涉及到的概念有:基本图形(矩形)、路径(复杂图形:通过绘制角和线)、渐变、变形、组合、阴影等图片的处理
  2. 绘图保存:可用于操作后的恢复save();restore();
  3. 文件保存:toDataURL(type)
  4. 动画制作:使用setInterval设定动画的间隔时间,不断的擦除、重绘、擦除、重绘

Video和audio

  1. Source元素:src属性(播放媒体的url地址)type(媒体类型为播放文件的MIME类型,属性中的codes参数表示媒体的编码格式,因为浏览器对编码格式的支持不一,所以最好指定多个媒体类型)
  2. Video和audio属性:src(指定媒体数据的URL)autoplay(是否自动播放)preload(是否预加载:none不进行,metadata预加载元数据、auto预加载全部视频及音频)poster(如果视频不可用,展示替代的图片)loop(是否循环播放)controls(是否添加自带的播放控制条)width/height(控制视频的高度和宽度)error(读取数据过程中的错误对象)networkstate(读取当前网络状态)currentsrc(读取播放中的媒体数据的URL地址)buffered(返回一个TimeRanges的接口对象,确认是否已缓存数据)
  3. 对应的4种方法:play(播放)pause(暂停)load(重新加载)canPlayType(是否支持制定的媒体类型)

本地存储:html5可以在客户端本地保存数据

  1. sessionStorge:用户浏览网站过程中所要求保存的数据,临时存储
    • 保存数据:sessionStorage.setItem(key,value)
    • 读取数据:sessionStorage.getItem(key)
  2. localStorage:保存在客户端本地的硬件设备(硬盘),永久存储
    • 保存数据:localStorage.setItem(key,value)
    • 读取数据:localStorage.getItem(key)
  3. 保存数据时不允许保存重复的贱命,可以修改键值,不允许修改键名
  4. 本地数据库:使用的是SQLLite的稳健性SQL数据库,通过SQL进行数据访问
  5. Transaction和executeSql为主要操作方法

离线应用:通过本地缓存实现为与internet链接时候运行web应用程序

  1. 本地缓存是为整个web应用程序服务的,浏览器网页缓存只服务于单个页面
  2. 本地缓存是开发人员控制下进行缓存和更新,利用缓存对象的各种属性、状态和时间来开发离线应用
  3. Manifest:本地缓存通过每个页面的manifest文件来管理的。可以单独页面制定一个manifest也可以对整个web应用程序指定一个总的manifest,保存了需要被缓存的和不需要被缓存的资源文件的文件名清单
    • 需要对服务器进行配置,让服务器支持text/cache-manifest这个MIME类型文件
    • 如:apache,找到mime.types,添加text/cache-manifest manifest
    • 格式:
      CACHE MANIFEST:第一行,必须,把作用告知浏览器
      #用以注释或说明
      Version 201012121212:最好加上版本号,更新的时候也会对版本号进行更新
      指定资源文件,可以是相对路径,也可以是绝对路径,每个资源文件为一行
    • 资源文件分为三类:cache(指定需要被缓存在本地的资源文件,不要把页面指定为cache类别,因为浏览器会自动对该页面进行本地缓存),network(显示指定不进行本地缓存的资源文件,这些文件只有当客户端与服务器端建立链接的时候才能访问,通配符“*”表示没有在mainifest中的资源文件都不进行本地缓存),fallback(每行中指定两个字源文件,一个为在线访问时使用的资源文件,第二个为不能在线访问时使用的备用资源文件)
    • (如果没有指定类别而直接书写资源文件,浏览器把这些资源文件视为cache类型,知道看到文件中第一个被书写出来的类别为止)

    • 应在html标签的manifest属性中指定manifest文件的URL地址
    • 只需修改manifest文件就可以对本地缓存内容进行修改
  4. applicationCache对象:代表本地缓存,可以用来通知用户本地缓存已经被更新(updateready),或者允许用户手动更新缓存(swapCahe:只有在updateReady时间被触发时才能调用,updateready只有在manifest文件被更新并且把所要求的资源文件下载到本地后才能触发,此时下次访问会直接更新,该操作是允许用户自行选择当前是否更新)

通信API

  1. 跨文档消息传输:监听message事件来接受消息,postMessage来发送消息
  2. 可以网页与网页、端口与端口、域与域之间传递消息
  3. Web Sockets通信:非HTTP的通信机制,实现了用HTTP不容易实现的服务器端的数据推送等智能通信技术
  4. 在服务器与客户端之间建立一个双向链接,是实时的,永久的(被显式的关闭),当服务器想向客户端发送数据时,可以立即将数据推送到客户端浏览器,无需重新建立链接,只要客户端有一个被打开的socket并且与服务器建立了链接,服务器就可以把数据推送到这个socket上,而不再需要轮询客户端的请求,从被动转为主动。
  5. 通过webSocket对象进行操作

线程处理:可以创建一个不会影响前台处理的后台线程,并且在这个后台线程中创建多个子线程。

  1. 通过worker对象操作,通过给线程附于执行的js文件做程序代码的分割
  2. 通过postMessage发送线程消息,onmessage事件获取线程消息
  3. 线程之间的交互通过事件模型可以很容易的处理

地理位置获取:通过window.navigator.geolocation实现的Geolocation API处理

  1. GetCurrentPosition获取用户当前的地理位置信息
  2. watchPosition持续获取用户的当前地理位置信息
  3. clearWatch停止对当前用户的地理位置信息的监视
  4. 第一第二个方法都会通过回调函数返回position对象:

    Latitude(纬度)longitude(经度)altitude(海拔高度)accuracy(获取到的纬度和经度的精度)altitudeAccurancy(获取到海拔高度的精度)heading(设备前进的方向)speed(设备前进的速度)timestamp(获取地理位置信息的时间)

对于html5新的特新(CanvasAPI,本地存储,离线应用,通信API,线程处理)都努力向应用开发进行靠拢,最后的地理位置获取更是面对的是移动设备的应用开发
在移动应用开发中通过html5能实现基本的应用开发功能



back up ↑

无觅相关文章插件,快速提升流量