BOM(二)间歇调用和超时调用、BOM其他主要对象

一、定时器(间歇调用和超时调用)
间歇调用:setInterval()
超时调用:setTimeout()
两者都可接受两个参数:第一个参数是要执行的代码片段,可以是字符串也可以是函数,因为此处具有解析功能,直接加字符串容易出错,故推荐使用函数。它们均可返回一个数值ID,分别使用claerInterval(intervalID)和clearTimeout(timeoutID)在调用时间之前可取消调用。

 //间歇调用
  intervalid=setInterval(function(){
       alert("张三");
   },1000);
   claerInterval(intervalid);
   //超时调用
   timeoutid=setTimeout("alert(1)",1000);   //前面有解析功能,直接加字符串容易出错
   setTimeout(function(){          //推荐
       alert("你是");
   },1000);      
   clearTimeout(timeoutid);

两者的功能类似,只不过间歇调用hi按照指定时间间隔重复调用代码,以下事例是两者实现同一个案例:
(1)间歇调用:( 无法解决同步执行的问题还需要clear,一般开发中很少用)

   var num=0;
   var max=5;
   var intervalid=null;
   function box(){
       num++; //这里可以做定时功能
       document.getElementById("a").innerHTML+=num;
       if(num==max){
         //无效  clearInterval(this);  
         clearInterval(intervalid);
          alert("5秒到了~");
       }
    }
    intervalid=setInterval(box,1000); 

(2)超时调用:(相当于递归)

    var num=0;
    var max=5;
    function box(){
       num++;
       document.getElementById("a").innerHTML+=num;
       if(num<max){
         setTimeout(box,1000);
       }else{
         alert("5秒到了~");
       }
    }
    setTimeout(box,1000);

二、BOM其他主要对象
1、location对象
(1)提供了与当前窗口加载的文档有关的信息,还提供了一些导航信息。
(2)既是window对象属性又是document对象属性
location对象所有属性
location对象所有属性
以下代码是获取?id=5&search=ok这种类型的URL键值对:

function getArgs(){
        var args=[];
        var qs=(location.search.length>0 ? location.search.substring(1) : "");
        var items=qs.split('&');
        var item=null,name=null,value=null;
        for(var i=0;i<items.length;i++){
            item=items[i].split("=");
            name=item[0];
            value=item[1];
            args[name]=value;   
        }
        return args;
     }
     var args=getArgs();
     alert(args["id"]);
     alert(args["search"]);

(3)补充

 location.assign("http://www.baidu.com");  //跳转到指定页面并在浏览器历史记录上生成一条记录
 location.reload(true); //可获取服务器信息,会一直跳转   
    function a(){
        location.href="http://www.baidu.com";    //在页面加载其他浏览器,会调用assign()方法
        location.replace("http://www.baidu.com");//不产生任何历史痕迹的URL 
    } 

2、history对象
保存着用户上网的历史记录
三个方法:

go()
back()
forward()
后两种方法可代替go()
其具体用法如下:

history.go(-1);//后退一页
history.go(1);//前进一页,可设置前进多页
history.back();//后退一页
history.forward();//前进一页
alert(history.length);//历史记录的总量

3、navigator对象
所有浏览器都支持该对象
navigator对象集合:
这里写图片描述
navigator对象属性:(常用于检测显示网页的浏览器类型)
这里写图片描述
navigator对象方法:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值