地理位置(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操作