HTML5 API


 Web Storage
  它提供了一种存储方式,可以让web页面实现在客户端浏览器中意键值对形式在本地保存数据
  Cookie存储机制优点
   简单易用
   浏览器负责传送数据
   浏览器自动管理不同站点的Cookie
  Cookie缺点
   因为他是简单的文本存储数据,所以Cookie安全性很差,保存在客户端浏览器,很容易被窃取
   存储内容有限,上线只有4KB
   存储Cookie数量有限,多数浏览器上限为30-50个
   如果浏览器安全配置为最高级别,nameCookie会失效
   Cookie不适合大量数据存储,因为Cookie由每个对服务器的请求来传递,从而造成Cookie速度缓慢效率低下
  localStorage
   它是一种没有时间限制的存储方式,可以将数据保存在客户端硬盘获其他存储器中
   浏览器关闭不会让数据小时,再次打开浏览器,我们依旧可以访问到这些数据,除非我们删除,否则永不过期
  sessionStorage
   将数据保存在session对象中,web中session指用户浏览某个网站时,从进入到关闭浏览器所经过的时间
   session对象在浏览器关闭后,这些数据会被删除
  Web Storage优点
   提供了易于使用的API接口,只需要设置键值对应即可使用,简单方便
   在存储容量方面可以根据用户分配的磁盘配额进行存储,能够在每个用户域存储5MB-10MB内容,用户不仅可以存储session,还可以存储许多信息,如设置偏好,本地化的数据和离线数据等
   它提供了JS编程的接口,开发者可以使用JS客户端脚本实现许多以前只能在服务器端才能完成的工作
  使用
   例
  storage事件
   key:告诉我们被修改的条目的键
   newValue:告诉我们被修改后的新值
   oldValue:告诉我们修改前的值
   storageArea:告诉我们是本地存储还是会话存储
   url:改变键的文档地址
 Geolocation
  他是html5新增的地理位置应用程序接口,它提供了一个可以准确感知浏览器用户当前位置的方法
   子主题 1
 Web Worker
  它是一项后台处理技术,有了它,用户可以很容易的创建在后台运行的线程,这个线程被称为Worker
  ie不支持,Firefox3.5以上支持,Opera10.6以上支持,Chrome3.0以上支持,Safari4.0以上支持
 多媒体
  为了做到浏览器兼容,我们可以将多媒体文件的路径卸载 source 标签中
  如果取药插入视频,我们将audio(音频)标签换成video(视频)标签
  相关属性和方法
   在JS中,相关的属性和方法:
   muted:是否静音,true开启
   autobuffer:true后实现自动缓冲
   autoplay:设置自动播放
   loop:设置后将会重复播放
   poster:设置封面,只有video可以,封面只是一张图,没有播放的时候显示的图片
   width和height:设置视频的宽高
   volune:设置音量
   currentTime:获取多媒体当前所播放的具体时间
   playbackRate:设置快进或者快退速度的数字值,值为1正常播放
   duration:多媒体播放时长
   paly:开始播放
   pause:暂停播放
   volumechange:调整多媒体音量
   loadedmetadata:在多媒体所有原数据被加载时会触发该事件
 Canvas画图
  他是网页上一个矩形单元,可以用JS在上面绘画
  添加canvas元素
  直线
  矩形
  圆形
  三角
  清除
 SVG
  同上,也是画图工具,在Canvas出来之前,很长一段时间都是用它
  SVG意为可缩放矢量图形,它是使用XML格式来定义图像通过SVG画出来的图形是矢量图,在放大或者改变尺寸,他的质量不会损失
  优势
   它可以被非常多的工具读取和修改(比如记事本)
   他和JPEG和GIF图像比较起来,尺寸更小,且可压缩性更强
   可伸缩
   可在任何分辨率下被高质量的打印
   可以在图像质量不下降的情况下被放大
   他的文本可选,也可以被搜索(很适合做地图)
   可以喝Java技术一起运行
   是开放标准
   他的文件是纯粹的XML
   它的主要竞争者是Flash
  绘图
   矩形
   圆形
   椭圆
   线
   折线
   多边形
   路径
 HTML5 拖放
  拖放,就是抓取对象然后拖到另一个位置
  源对象和目标对象
   源对象:指的是我们鼠标点击的一个事物,可以是一张图片,一个div,或一段文本等等
   目标对象:指的是我们拖动源对象后移动到一块区域,源对象可以进入到这个区域,然后在这个区域上方悬停(未松手),可以是松手释放讲源对象放置此处(已松手),也可以悬停后离开该区域
  拖放相关API
   源对象
    dragstart:源对象开放拖放
    drag:源对象拖放过程中(鼠标可能在移动也可能未移动)
    dragend:源对象拖放过程结束
   过程对象
    dragenter:源对象开始进入过程对象范围内
    dragover:源对象在过程对象范围内移动
    dragleave:源对象离开过程对象的范围
   目标对象
    drop:源对象被拖放到目标对象内
  DataTransfer对象
   serData():dataTransfer对象中存入数据,接收两个参数,第一个表示存入数据种类的字符串,第二个为要存入的数据
   getData():他可以从dataTransfer对象中读取数据,参数在为setData中指定的数据种类
   clearData():清除dataTransfer对象存放的数据,参数可选,为数据种类,如果参数是空的,就清楚所有种类的数据
   setDragImage():通过img元素来设置拖放图标,第一个为图表元素,第二个为图表元素离鼠标指针的X轴位移量,第三个为图标元素离鼠标指针Y轴位移量
   effectAllowed和dropEffect属性:结合起来设置拖放的视觉效果
   注:IE不支持data Transfer对象
  拖放,例:
 Notification
  传统桌面通知可以写一个div放到页面右下角自动弹出来,并通过轮询等方法获取并推送给用户
   弊端是:我们在一个网站购物时,不知道另一个网站有消息推送过来,我们必须等用户切换到另一个网站才能知道有消息推送过来,这种方法是基于页面存活的
   所以需要用Notification,无论用户当前在看那一个页面,只要有消息,都能推送给用户
   例
  使用
   创建
   延时的系统通知
   事件处理
    Notification.onclick:处理click事件的处理,每当用户点击通知时被触发
    Notification.onshow:处理show事件的处理,每当通知显示时被触发
    Notification.onerror:处理error事件的处理,每当通知遇到错误时被触发
    Notification.onclose:处理close事件的处理,每当用户关闭通知时被触发

posted @ 2019-08-05 00:04  渡己~w  阅读(103)  评论(0编辑  收藏  举报