HTML5特性

HTML5:
1.geolocation——定位
2.video、audio
3.localStorage
  cookie:       小(4K)、瀏覽器和服務器共享
  localStorage: 大(5M)、瀏覽器獨享
4.*WebWorker
  多進程
5.WebSQL、IndexedDB——安全隱患
  *W3C刪掉了
6.文件操做、文件拖拽         √
7.canvas——畫圖
  SVG/VML
8.manifest文件              前臺控制緩存
  *本地應用
9.
CSS3:

--------------------------------------------------------------------------------

geolocation——定位
1.原理
  PC端:IP地址    精度很是差
  移動:GPS       精度很高
2.PC端
  IP庫
    Chrome -> google.com    -> ?
    IE     -> microsoft.com

--------------------------------------------------------------------------------

getCurrentPosition      獲取位置(1次)

watchPosition           不斷獲取位置
clearWatch

--------------------------------------------------------------------------------

localStorage:5M/域名
1.域名、跨域
2.極其方便
3.用途:
  記錄用戶名
  保存草稿

localStorage    永久存儲
sessionStorage  會話期間存儲——瀏覽器一關就沒

--------------------------------------------------------------------------------

WebWorker——Web多進程(沒用過)
主進程——UI進程
子進程——工做進程

WebWorker:
1.不能控制UI的東西;數據交互OK
2.子進程不能再建立子進程
3.跨域

多進程——更充分發揮計算機資源(內存×、IO×、網絡×、CPU√)
基本沒用

--------------------------------------------------------------------------------

WebSQL    ×
IndexedDB ×

--------------------------------------------------------------------------------

畫圖:
canvas      位圖——放大失真      HTML5標準
SVG         矢量圖——無限縮放    不是HTML5的東西,是一個獨立標準
VML         矢量圖             IE的矢量圖

--------------------------------------------------------------------------------

canvas
1.路徑操做:
  至關於選區——沒有效果,還需後續操做
  閉合——必定要用closePath
2.邊線:stroke()
3.填充:fill()

線寬:lineWidth
線色:strokeStyle
填充顏色:fillStyle

--------------------------------------------------------------------------------

Uncaught DOMException: Failed to execute 'postMessage' on 'Worker': HTMLDocument object could not be cloned.

多線程:共享存儲空間——多個進程之間傳引用
多進程:各自獨享存儲空間——複製一份給子線程

--------------------------------------------------------------------------------

canvas
1.圖表——echarts.js
2.遊戲
3.濾鏡

--------------------------------------------------------------------------------

1.CSS3新樣式——動畫、3D、transform
2.canvas路徑問題、像素操做、SVG、VML、圖表庫、d3
3.移動端佈局、移動端touch
4.相關庫——iscroll、hammer
5.canvas高級應用
  遊戲
  WebGL

--------------------------------------------------------------------------------

定位javascript

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <style media="screen">
    .bmap {width:600px; height:400px; border:1px solid black}
    </style>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script>
    <script>
    window.onload=function (){
      var oBtn=document.getElementById('btn1');

      oBtn.onclick=function (){
        //getCurrentPosition(成功, 失敗, 參數)
        navigator.geolocation.getCurrentPosition(function (res){

          console.log(res.coords);
          alert('成功');

          //建立和初始化地圖函數:
          function initMap(){
            createMap();//建立地圖
            setMapEvent();//設置地圖事件
            addMapControl();//向地圖添加控件
            addMapOverlay();//向地圖添加覆蓋物
          }
          function createMap(){
            map = new BMap.Map("bmap");
            map.centerAndZoom(new BMap.Point(res.coords.longitude,res.coords.latitude),15);
          }
          function setMapEvent(){
            map.enableScrollWheelZoom();
            map.enableKeyboard();
            map.enableDragging();
            map.enableDoubleClickZoom()
          }
          function addClickHandler(target,window){
            target.addEventListener("click",function(){
              target.openInfoWindow(window);
            });
          }
          function addMapOverlay(){
            var markers = [
              {content:"來找我啊",title:"個人位置",imageOffset: {width:0,height:3},position:{lat:res.coords.latitude,lng:res.coords.longitude}}
            ];
            for(var index = 0; index < markers.length; index++ ){
              var point = new BMap.Point(markers[index].position.lng,markers[index].position.lat);
              var marker = new BMap.Marker(point,{icon:new BMap.Icon("http://api.map.baidu.com/lbsapi/createmap/images/icon.png",new BMap.Size(20,25),{
                imageOffset: new BMap.Size(markers[index].imageOffset.width,markers[index].imageOffset.height)
              })});
              var label = new BMap.Label(markers[index].title,{offset: new BMap.Size(25,5)});
              var opts = {
                width: 200,
                title: markers[index].title,
                enableMessage: false
              };
              var infoWindow = new BMap.InfoWindow(markers[index].content,opts);
              marker.setLabel(label);
              addClickHandler(marker,infoWindow);
              map.addOverlay(marker);
            };
          }
          //向地圖添加控件
          function addMapControl(){
            var scaleControl = new BMap.ScaleControl({anchor:BMAP_ANCHOR_BOTTOM_LEFT});
            scaleControl.setUnit(BMAP_UNIT_IMPERIAL);
            map.addControl(scaleControl);
            var navControl = new BMap.NavigationControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_LARGE});
            map.addControl(navControl);
            var overviewControl = new BMap.OverviewMapControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,isOpen:true});
            map.addControl(overviewControl);
          }
          var map;
            initMap();
        }, function (err){
          alert('失敗');
        });
      };
    };
    </script>
  </head>
  <body>
    <input type="button" value="定位" id="btn1">
    <div class="bmap" id="bmap">

    </div>
  </body>
</html>

多進程 webworkerhtml

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <script>
    let oW=new Worker('1.js');

    oW.onmessage=function (ev){
      alert(ev.data);
    };

    oW.postMessage({n1: 25, n2: 99});
    </script>
  </head>
  <body>

  </body>
</html>

1.js

this.onmessage=function (ev){
let {n1, n2}=ev.data;java

let result=n1+n2;git

this.postMessage(result);
};web

相關文章
相關標籤/搜索