前端一些小知识

html5

  • 在html上作出新的特性,加入canvas,媒介回放的video和audio元素,对离线储存更好地支持,新的特殊内容元素,和新的表单控件(calendar、date、time、email、url、search)

video

  • video tag 之间插入的内容是不支持video元素浏览器的内容
  • 可以提供多个source元素,浏览器将使用第一个识别的格式
  • 在video tag里 src=’文件名字‘, control=’control’(提供播放,暂停和音量控件),width=’想要的宽度’,height=’想要的高度’,autoplay=’autoplay’(自动播放),loop=’loop’(自动循环播放)
  • 使用DOM可以控制video
    • function: play(), pause(), load(), canPlayType
    • property: currentSrc, currentTime, videoWidth, videoHeight, duration, ended, error, paused, muted, seeking, volume, height, width

audio

  • 大多数音频通过插件flash来播放,html5规定一种通过audio元素
  • 其属性与video相同

drag and drop

  • 设置想要拖放的东西
    • draggable=’true’
    • ondragstart=drag(event) 规定被拖动的数据
  • 设置被拖到的地方
    • ondragover 规定放置被拖动的数据
      • 默认是不可以讲数据放置到其他元素里
      • 设置允许放置,必须阻止对元素默认处理方式 -> ondragover=’allowDrop()’ 调用allowDrop函数 去做 event.preventDefault()
  • 进行放置
    • ondrop
      • 取到被拖数据 加到放置元素中
  • dataTransfer object is used to hold the data that is being dragged during a drag and drop operation
    • .setData(被拖数据的数据类型, 值) 设置被拖数据的数据类型和值
    • .getData() 获得被拖得数据




canvas

  • canvas元素使用js在网页上画图像
  • canvas 不是没有绘图能力,绘制工作必须在js里进行
    • 使用id寻找canvas元素 (document.getElementById())
    • 创建context对象=内建html5对象,可以绘制路径,矩形,圆形,字符以及添加图像
      • getContext(‘2d’)
      • fillStyle, fillRect(), moveTo(),lineTo(),beginPath(),drawImage()

把鼠标停在矩形上可以看到坐标



定位

  • navigator.geolocation.getCurrentPosition(showPosition, error) 如果运行成功向参数showPosition中规定的函数返回一个coordinates对象
    • coordinates对象
      • latitude 十进制纬度
      • longitude 十进制经度
      • accuracy 位置精度
      • altitude 海拔 海平面以上以米计
      • altitudeAccuracy 位置的海拔精度
      • heading 方向 一正北开始以度计
      • speed 速度 以m/s
      • timestamp
    • error type -> 1. permission denied 2. position unavailable 3. timeout
  • navigator.geolocation.watchPosition() 返回用户当前位置, 并继续返回用户移动时更新位置(GPS)

点击按钮,获得坐标

web储存

  • localStorage 没有时间限制的数据储存, 数据会一直存着 不管网页是否关闭
  • sessionStorage 针对一个session的数据储存, 当网页关闭后 数据将不会存下来
  • html是用cookie完成存储数据 但是cookie由对服务器请求来传递 使得速度慢不高效
  • 数据存储于不同区域 并且一个网站只能访问其自身的数据
  • localStorage/sessionStorage方法
    • 创建和访问 localStorage.任意field = ’value’; document.write(localStorage.任意field)

应用程序缓存Application Cache

  • 可以离线浏览,加速加载,减少服务器负载
  • 使用manifest属性进行缓存, 其文件扩展名因为’.appcache’,MIME-type=’text/cache-manifest’
    • manifest 文件可分为三部分:CACHE MANIFEST, NETWORK, FALLBACK
      • CACHE MANIFEST: 标题下列出的文件在首次下载后进行缓存
      • NETWORK: 标题下列出的文件需要与服务器的链接,不会被缓存
      • FALLBACK: 标题下列出的文件规定当页面无法访问时的回退页面
    • 例子
      CACHE MANIFEST
      #2012-02-21 v1.0.0
      /theme.css
      /logo.gif
      /main.js
      NETWORK:
      login.asp
      FALLBACK:
      /html5/ /404.html
  • 当文件被缓存后,浏览器会继续展示已缓存的版本,如果更新了之前存的文件,需要更新manifest文件,才能确保浏览器更新缓存,所以’#‘是很好的indicator

webworker

  • HTML5标准一部分,提供API允许一段JS运行主线程之外的另一个线程,不会影响页面的性能,和其他页面通讯通过 1. onmessage 监听事件 2. postmessage 传送事件
  • 较耗费CPU资源任务
  • 不会影响到DOM, window 对象

server-sent event服务器发生事件

  • 网页自动获取来自服务器的更新
  • EventSource 对象用于接受服务器发送事件通知
    • onopen 当通往服务器的连接被打开
    • onmessage 当接收到信息
    • onerror 当错误发生
      var source = new EventSource(‘demo.php’) //发送更新的页面URL
      source.onmessage = function(event) { //每接到更新 发生onmessage事件
      document.getElementById(‘result’).innerHTML+=event.data;
      } //把接收到的数据推入id为result的元素中
  • 服务器写法能够发送数据更新,把Content-Type报头设置为’text/event-stream’, header(‘Content-Type:text/event-stream’) or Response.Content-Type=’text/event-stream’

表格

  • input类型

    • type=’email’ 自动验证email域的值,如‘@’,‘.’,’com’
    • type=’url’ 自动验证URL域的值,如’http‘,’.com’
      • datalist元素规定输入域的选项列表, input里list的属性引用datalist的id
      • 列表通过datalist里的option元素创建
        list=’url_list’
        datalist id=’url_list’
        option label=’W3School’ value=’http://www.google.com'
        option label=’W3School’ value=’http://www.googledsds.com'
        option label=’W3School’ value=’http://www.baidu.com'
    • type=’number’ max=’’ min=’’ step=’’间隔值 value=‘’默认值,显示上下的小箭头更改值
    • type=’range’ max=’’ min=’’ step=’’间隔值 value=‘’默认值, 显示滑动条
    • 日期和时间
      • date 选取日月年
      • month 选月年
      • week 选周年
      • time 选时间,单位为hr+min
      • datetime 选时间日月年(UTC)
      • datetime-local 选时间日月年(当地时间)
  • autocomplete 属性 规定form 或input拥有自动完成功能,

    • input-> text, search, url, telephone, email, password, datepickers, range 以及 color
  • multiple 规定输入域可选择多个值,适用于email和file

    select images:

# html5

Commentaires

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×