HTML5新的API

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。 如果是拖曳系统文件,返回正在被拖曳的文件列表对象。可以通过它获得所拖曳的文件数据。    【拖拽上传】
                       

   
   
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<! DOCTYPE   html >
< html >
  < head >
       < meta   http-equiv = "content-type"   charset = "utf-8"    />
       < meta   name = "generator"   content = "editplus"   />
       < meta   name = "author"   content = ""   />
       < meta   name = "keywords"   content = ""   />
       < meta   name = "description"   content = ""   />
       < title >  fileAPI( </ title >
       < style   type = "text/css" >
              #box {                                   /*  */
                   border2 px  gray  dotted;
                   width171 px;
                   height158 px;
                   line-height158 px;
                   text-aligncenter;
                  mask-image:  url( mask.png );          /*  */
                  -webkit-mask-image:  url( mask.png )/* MaskWebKitWebKitMask */
                  mask-clip:  content;                 /* */
                  -webkit-mask-clip:  content;         /* MaskWebKitWebKitMask */
              }
              #box .hover {                             /*  */
                   border2 px  olive  solid;
              }
              #box .drop {                              /* */
                   border2 px  blue  solid
              }
      </ style >
  </ head >
  < body >
       < div   id = "box" > </ div >
      < script   type = "text/javascript" >


           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
                       

   
   
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<! DOCTYPE   html >
< html >
  < head >
       < meta   http-equiv = "content-type"   content = "text/html;charset=utf-8"    />
       < meta   name = "generator"   content = "editplus"   />
       < meta   name = "author"   content = ""   />
       < meta   name = "keywords"   content = ""   />
       < meta   name = "description"   content = ""   />
       < title >  History API  </ title >
       < style   type = "text/css" >
            * { margin: 0; padding: 0; }
              div { width: 100 px; height: 50 px; text-align: center; line-height: 50 px; color: #fff; }
              #click-item { background: #ffcc00; }
              #result-item { background: #ff9900; }
      </ style >
  </ head >
  < body >
       < div   id = "click-item" > </ div >
      < div   id = "result-item" > </ div >
      < script   type = "text/javascript" >
              var  clickItem  =  document . getElementById ( 'click-item' ) ;
              var  resultItem  =  document . getElementById ( 'result-item' ) ;
              clickItem . onclick  =  function ( ) {
                   resultItem . innerHTML  =  'clicked!' ;
                   history . pushState ({ note :  'set result' } ,  '' ,  'result.html' ) ;
              }
      </ script >
  </ body >
</ html >


           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 :
                              页面全屏
                              焦点位置
                              拍摄照片
                              电量变化
                              资源预加载
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值