新兴的API(javascript)

requestAnimationFrame()

每次浏览器重绘之前会调用这个方法!!!

它接收一个参数,就是回调函数;

它可以保证在最佳的间隔时间调用传入的回调函数,以达到让屏幕产生最流畅的动画效果。每次调用这个api它只会调用一次回调函数,并且给回调函数传入间隔的时间(毫秒)。很适合用js做动画。

下面这个方法可以打印出不同浏览器两次重绘的间隔时间(毫秒):

      (function(){
            function draw(timestamp){
                  // 计算两次重绘的时间间隔
                  var drawStart=(timestamp||Date.now()),
                      diff=drawStart-startTime;
                  //使用diff确定下一步的重绘时间
                  // console.log(diff);//这就是当前浏览器当前重绘的时间间隔(毫秒)
                  // 把startTime重写为这一次的绘制时间
                  startTime=drawStart;
                  // 重绘UI
                  requestAnimationFrame(draw);
            }
            var requestAnimationFrame=window.requestAnimationFrame||
                                      window.mozRequestAnimationFrame||
                                      window.webkitRequestAnimationFrame||
                                      window.msRequestAnimationFrame,
                startTime=window.mozAnimationStartTime||Date.now();
                console.log(startTime);
            requestAnimationFrame(draw);
      })();

以上代码只兼容IE、chrome、firefox浏览器

Page Vilibility API

用于确认页面是否被隐藏。

document.hidden: 表示页面是否隐藏的布尔值。页面隐藏包含页面在后台标签中或者浏览器最小化。

document.visibilityState:它有以下几种可能的值

visible : 页面内容至少是部分可见。 在实际中,这意味着页面是非最小化窗口的前景选项卡。

hidden : 页面内容对用户不可见。 在实际中,这意味着文档可以是一个后台标签,或是最小化窗口的一部分,或是在操作系统锁屏激活的状态下。

prerender : 页面内容正在被预渲染且对用户是不可见的(被document.hidden当做隐藏). 文档可能初始状态为prerender,但绝不会从其它值转为该值。 注释:浏览器支持是可选的。

unloaded : 页面正在从内存中卸载。 注释:浏览器支持是可选的。

visibilitychange:这是一个document可以监听的事件,当文档从可见变为不可见或者从不可见变为可见时,触发该事件。

Geolocation API:(只有在服务器运行才能生效、协议必须是https)

这个api的实现是navigator.geolocation,这个对象包含3个方法:

getCurrentPosition(成功回调函数,可选的失败回调函数,可选的选项对象):

成功回调函数会接收到一个Position对象参数,给对象有两个属性:coords和timestamp:

coords对象中将包含下列与位置相关的信息:

latitude:以十进制表示的纬度。

longitude:以十进制表示的经度。

accuracy:经、纬度坐标的经度,以米为单位。

有些浏览器还可能会在coords对象中提供如下属性:

altitude:以米为单位的海拔高度,如果没有相关数据则值为null。

altitudeAccuracy:海拔高度的精度,以米为单位,数值越大越不精确。

heading:指南针的方向,0表示正北,值为NAN表示没有检测到数据。

speed:速度,即每秒移动多少米,如果没有相关数据则值为null。

在失败回调函数在被调用的时候也会接收到一个参数,这个参数是一个数组,数组中包含了对象,对象包含两个属性:message和code。其中,message属性中保存着给人看的文本信息,解释为什么会出错。而code保存着一个数值。

第三个参数时一个选项对象:可以设置的选项有三个:

enableHighAccuracy:是一个布尔值,表示必须尽可能使用最精准的位置信息。

timeout:以毫秒数表示的等待位置信息的最长时间。

maximumAge:表示上一次取得的坐标信息的有效时间,以毫秒表示,如果时间到则重新取得新坐标信息。

例子:

      function geolocationSupport(){
            if(!navigator.geolocation){
                  alert("你的浏览器不支持HTML5 Geolocation");
            }else{
                  getCurrentPosition();
            }
      }
      function getCurrentPosition(){
            var options={
                  enableHighAccuracy:true,
                  timeout:60000,
                  maximumAge:60000
            }
            navigator.geolocation.getCurrentPosition(success,error,options)
      }
      function success(position)
      {
            var x=position.coords.longitude;
            var y=position.coords.latitude;
            alert("经度为:"+x+"纬度为:"+y);
      }
      function error(err)
      {
            var errorTypes={
                  1:"用户拒绝定位服务",
                  2:"获取不到定位信息",
                  3:"获取定位信息超时"
            }
            alert(errorTypes[err.code]);
      }
      window.onload=geolocationSupport();

原文地址:https://www.cnblogs.com/fqh123/p/10660261.html

时间: 2024-10-24 04:18:02

新兴的API(javascript)的相关文章

javascript 新兴的API

javascript 新兴的API 分类: javascript2012-12-31 16:02 215人阅读 评论(0) 收藏 举报 很多的API都有着特定的前缀,例如微软的ms,谷歌和safari的webkit.这些新兴的API去掉前面的前缀后,剩下的部分是一样的. requestAnimationFrame() 用于动画重绘的API,它可以告诉浏览器,动画开始,浏览器就可以确定重绘的最佳方式. 早期的动画的典型方式是使用setInterval()方法来控制所有的动画.下面是早期动画的基本方

25. javacript高级程序设计-新兴的API

1. 新兴的API requestAnimationFrame():是一个着眼于优化js动画的api,能够在动画运行期间发出信号.通过这种机制,浏览器就能够自动优化屏幕重绘操作 Page Visibility API:让开发人员知道用户什么时候正在看着页面,而什么时候页面是隐藏. Geolocation API:在得到用户许可的情况下,可以确定用户的位置 File API:可以读取文件内容,用户显示.处理和上传 Web Timing:给出了页面加载和渲染过程的很多信息,对性能优化非常有价值 We

PHP+百度地图API+JAVASCRIPT实现GPS坐标与百度坐标转换的实例

原文:PHP+百度地图API+JAVASCRIPT实现GPS坐标与百度坐标转换的实例 <!--小幅的坐标转换点位程序--> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <?php $jingwei="new BMap.Point($lon

Geolocation API JavaScript访问用户的当前位置信息

Geolocation API在浏览器中的实现是navigator.geolocation对象,常用的有以下方法. 1.第一个方法是getCurrentPosition() 调用这个方法就会触发请求用户共享地理定位信息的对话框.比如在火狐中的对话框: 这个方法接收3个参数:成功回调函数.可选的失败回调函数和可选的选项对象. ①成功回调函数会接收一个Position对象参数,有两个属性:coords和timestamp. coords对象中包含下列与位置相关的信息. latitude,十进制纬度

百度地图API JavaScript显示人员分布信息

效果图贴下: js代码贴下: <body> <div id="div-map"></div></body></html><script type="text/javascript">$(function(){ // 百度地图API功能 var map = new BMap.Map("div-map"); map.centerAndZoom(new BMap.Point(106

ArcGIS API for JavaScript开发初探——HelloWord

1.前言 ArcGIS API for JavaScript 3.10版本使用Dojo1.9.1.dgrid升级到0.3.14版本.put-selector version版本升级到0.3.5和xstyle版本升级到0.1.3. 2.建立第一个应用程序HelloWord 2.1 .创建一个简单的HTML文档 首先我们先创建一个简单的Html文档,具体事例如下图: <!DOCTYPE html> <html> <head> <meta charset="u

《JavaScript高级程序设计》第21-25章

第二十一章 Ajax 与 Comet 1.XMLHttpRequest对象 1)创建XMLHttpRequest对象 function createXHR(){ if (typeof XMLHttpRequest != "undefined"){ return new XMLHttpRequest(); } else if (typeof ActiveXObject != "undefined"){ if (typeof arguments.callee.activ

再看《JavaScript高级程序设计》第13、14、17、20-25章

第十三章 事件 1.事件流:描述的是从页面中接收事件的顺序 1)事件冒泡:事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点 2)事件捕获:事件开始时由不太具体的节点接收,然后逐级向下传播到最具体的元素 3)DOM事件流:经历三个阶段——事件捕获阶段.处于目标阶段和事件冒泡阶段 2.事件处理程序:事件是用户或浏览器自身执行的某种动作,响应某个事件的函数就是事件处理程序 1)HTML事件处理程序:将事件处理程序设置为 null 就可以删除该事件处理程序. 2)DOM0级事件处理程序:

《JavaScript高级程序设计》 阅读计划

第一周       第1章 JavaScript简介   1 第2章 在Html中使用JavaScript 1 第3章 基本概念   3         第二周       第4章 变量.作用域和内存问题 1.5 第5章 引用类型   2 第6章 面向对象的程序设计 1 第7章 函数表达式   1         第三周       第八章 BOM   1 第九章 客户端检测   1 第十章 DOM   2 第十一章 DOM扩展   1         第四周       第十二章 DOM2和D