应用缓存、WebRTC、触摸屏事件

应用缓存 AllicationCache

浏览器本身的缓存机制
  • 浏览器会对静态文件(html,css,js,图片等)进行自动缓存
  • 下次访问该网页,会读取缓存
  • 读取缓存之前进行判断,第一次判断缓存时间和服务器上传文件的最后一次修改时间。
  • 如果缓存时间大于最后一次修改时间,证明缓存之后,服务器上没有对文件进行修改,此时,浏览器会直接读取缓存文件
  • 如果缓存时间小于最后一次修改时间,证明缓存之后,服务器又对对文件进行修改,此时,浏览器会重新下载服务器上的静态文件,并重新进行缓存
应用缓存的优点
  • 进行离线浏览
  • 速度,已缓存资源加载得更快
  • 减少服务器负载,浏览器将只从服务器下载更新过或修改过的资源
Cache Manifest
  • manifest属性:如果启用应用程序缓存,在文档的<html>标签中包含manifest属性,每个指定了manifest的页面在用户对其访问时都会被缓存。如果未指定 manifest 属性,则页面不会被缓存(除非在 manifest 文件中直接指定了该页面)。
  • manifest 文件的建议的文件扩展名是:".appcache"。
  • 在html中使用属性manifest引入 manifest文件
  • 请注意,manifest 文件需要配置正确的 MIME-type,即 "text/cache-manifest"。必须在 web 服务器上进行配置。
  • Manifest文件
    • manifest 文件是简单的文本文件,它告知浏览器被缓存的内容(以及不缓存的内容)。
    • manifest 文件可分为三个部分:
      • CACHE - 在此标题下列出的文件将在首次下载后进行缓存
      • NETWORK - 在此标题下列出的文件需要与服务器的连接,且不会被缓存
      • FALLBACK - 在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面)

如:

    CACHE MANIFEST
    #version: 0.0.1

    缓存文件.html
    缓存文件.css

    NETWORK:
   不缓存的文件.html

     FALLBACK:
    404.html
  • 更新缓存

    • 一旦应用被缓存,它就会保持缓存直到发生下列情况:用户清空浏览器缓存;manifest 文件被修改;由程序来更新应用缓存
    • 一旦文件被缓存,则浏览器会继续展示已缓存的版本,即使您修改了服务器上的文件。为了确保浏览器更新缓存,您需要更新 manifest 文件。

applicationCache对象

  • 属性
    • status 返回缓存的状态
  • 方法
    • update() 发起应用缓存下载进程
    • abort() 取消正在进行的缓存下载
    • swapcache() 切换成本地最新的缓存环境
  • 事件
    • checking 用户代理检测更新或者在第一次尝试下载manifest文件的时候,本事件往往是第一个触发的
    • noupdate 检测出manifest文件没有更新
    • downloading 用户代理发现更新并且正在取资源,或者第一次下载manifest文件列表中列举的资源
    • progress 用户代理正在下载资源manifest文件中的需要缓存的资源
    • updateready manifest中列举的文件已经重新下载并更新成功,接下来js可以使用swapCache()方法更新到应用程序中
    • error
    • absolete manifest的请求出现404或者410错误,应用程序缓存被取消

WebRTC

  • WebRTC是“网络实时通信”(Web Real Time Communication)的缩写,它主要用来让浏览器实时获取和交换视频、音频和数据。

作用

  • 调用系统的摄像头和麦克风

使用

  • navigator.getUserMedia(options, success, error)

    • streams:表示包括哪些多媒体设备的对象
    • success:回调函数,获取多媒体设备成功时调用,接受一个MediaStream的实例作为参数
    • error:回调函数,获取多媒体设备失败时调用,接受一个error对象作为参数
  • options

      {
          video:true/false,
          audio:true/false
      }
    

MediaStream

成功后的回调函自动传入该对象作为参数

触摸屏的事件

事件类型

  • touchstart
  • touchend
  • touchmove

touchEvent

  • targetTouches 属性 获取touchlist对象,一个 TouchList 对象,是包含了如下触点的 Touch 对象:触摸起始于当前事件的目标 element 上,并且仍然没有离开触摸平面的触点. 只读属性.

touchList

  • 表示所有touch对象的集合
  • 一个touch对象表示一个触摸点

touch对象

*clientX 触点相对于可见视区(visual viewport)左边沿的的X坐标. 不包括任何滚动偏移. 只读属性.
*clientY 触点相对于可见视区(visual viewport)上边沿的的Y坐标. 不包括任何滚动偏移. 只读属性.
*pageX 触点相对于HTML文档左边沿的的X坐标. 当存在水平滚动的偏移时, 这个值包含了水平滚动的偏移. 只读属性.
*pageY 触点相对于HTML文档上边沿的的Y坐标. 当存在水平滚动的偏移时, 这个值包含了垂直滚动的偏移. 只读属性.
*screenX
*screenY
*....

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容