地理位置(navigation.geolocation)与本地存储(seessionStorage、localStorage)

一、地理位置( geolocation ):
    navigator.geolocation对象:
        1、单次请求:
            //navigator.geolocation.getCurrentPosition(
              function(res){
                //请求成功函数:
                    (调用方式:res.coords.longitude)
                    经度:coords.longitude
                    维度:coords.latitude
                    精准度:coords.accuracy
                    海拔:coords.altitude
                    海拔精准度:coords.altitudeAcuracy
                    行进方向:coords.heading
                    地面速度:coords.speed
                    时间戳:  new Date(position.timestamp);
                  },
              function(err){
                //请求失败:
                    console.log(err.code);  
                    //0: 不包括其他编号中的错误
                      1:用户拒绝共享位置
                      2:尝试获取用户信息,失败了
                      3:设置了timeout值,获取位置超时了
              },{
                //数据收集方式:
                    enableHighAcuracy  :  更精确的查找,默认false
                    timeout  :  获取位置允许最长时间,默认infinity
                    maximumAge :  位置可以缓存的最大时间,默认0
              });

        2、多次定位请求:
            //watchPosition();  --> 多次定位请求
                ---  移动设备有用,位置改变时触发
                ---  配置参数:frequency 更新的频率

            //clearWatch();    -->   关闭跟新请求
            --navigator.geolocation.clearWatch();

二、本地存储( storage ):
    1.cookie:
        一个域名400k大小
        每次使用都要请求服务器
        数据共享
    2.storege: ( 存储限制5M )
        a、sessionStorage:(临时存储,页面关闭消失,数据不共享)    
        b、localStorage:(永久存储,可手动删除,数据共享)
        c、API:
            (1)、setItem();  设置存储
            (2)、getItem();  获取存储
            (3)、removeItem(); 删除存储
            (4)、clear();     清楚所有存储
            (5)、storage  //事件:当有数据修改或删除就会触发(修改的窗口不会触发storage事件)
                -->storage事件中的ev对象中存储如下数据:
                    *ev.key: 修改或删除的可key值  如果调用clear()则为null
                    *ev.newValue: 新设置的值 如果调用removeStorage(),key为null
                    *ev.olValue: 改变前的值
                    *ev.storageArea: 当前的storage对象(中存储的所有的值)
                    *ev.url: 出发该脚本变化的文档
                    注:session同窗口才可以,例如:iframe操作
原文地址:https://www.cnblogs.com/wenwenwei/p/10017870.html