JS-BOM 执行队列和常见对象

得意时要看淡,失意时要看开。不论得意失意,切莫大意;不论成功失败,切莫止步。志得意满时,需要的是淡然,给自己留一条退路;失意落魄时,需要的是泰然,给自己觅一条出路JS-BOM 执行队列和常见对象,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

目录

执行队列

JS单线程特性

 同步和异步

同步任务和异步任务

 JS任务执行机制(过程)

BOM-常用对象

location对象

location属性 

 location常用方法

location简单使用案例(点击倒计时跳转)

history对象


执行队列

JS单线程特性

JS的一大特点就是单线程同一时间只能做一件事情。单线程是因为JS诞生是为了处理页面中用户的交互,以及DOM的操作,例如添加和删除元素。

JS单线程存在的缺陷

单线程,也就意味着,所有任务需要排队等待处理,如果一个任务执行的时间过长,就会导致其他任务进行长时间的等待,如果这些任务代表了一些样式,则会导致页面渲染不连贯等问题。如何解决? 异步! 由此引出同步和异步。

 同步和异步

 同步 

前一个任务任务执行完毕,再去执行后一个任务,程序的执行顺序和任务队列是一致的,任务队列?例如起床洗漱10分钟,发呆10分钟,整理书包10分钟,同步需要30分钟。

异步 

我们在执行一个任务的时候,可以去执行其他任务,例如:例如起床洗漱10分钟,发呆10分钟,整理书包10分钟,同步需要30分钟。异步可以20分钟完成(在发呆的时候整理书包)。

同步任务和异步任务

同步任务  

同步任务都在主线程上执行,形成一个执行栈。

异步任务 

JS的异步任务通过回调函数实现的。将需要执行的异步任务添加到任务队列(消息队列)中。

 常见的异步任务 

常见的异步任务可以分为3种类型:

1.普通事件,如clock,resize等

2.资源加载,如load等

3.定时器,setInterval、setTimeout等

 JS任务执行机制(过程)

 1.先执行执行栈中的同步任务

2.将异步任务加载任务队列中,状态为等待被执行

3.当同步任务执行完毕后,系统就会向任务队列中依次读取队列中的异步任务,于是被读取的异步任务结束被等待执行状态,进入执行栈,开始执行。

依次读取任务队列中的任务进行执行,这种机制我们称为:事件循环(event loop)

BOM-常用对象

location对象

location用于获取和设置窗体的URL(统一资源定位符),还可以解析RUL。

location属性 

location对象属性 返回值
location.href 获取或设置URL
location.host 返回域名(如 www.baidu.com)
location.port 返回端口号
location.pathname 返回路径
location.serch 返回参数
location.hash 返回片段 

 location常用方法

location 说明
assign() 跟href一样,可以实现页面跳转(地址重定向)
replace() 替换当前页面,页面不可回滚
reload(args) 重新加载页面(相当于刷新页面)args为true:强制刷新

reload说明:参数为空或false,正常刷新。

参数为true,强制刷新:不使用浏览器缓存,从服务器重新获取数据。

location简单使用案例(点击倒计时跳转

通过属性:location.href 实现。

 效果  

 JS-BOM 执行队列和常见对象JS-BOM 执行队列和常见对象

核心代码 

    <button>点击</button>
    <div></div>

    <script>
        var btn = document.querySelector('button');
        var div = document.querySelector('div');
        var time = 3;
        var interval = null;

        btn.addEventListener('click',function(){
            div.innerHTML = '页面将在'+ time + '秒后跳转';
            time--;

            interval = setInterval(function(){
                if(time == 0 ){
                    location.href = 'http://www.baidu.com';
                    time = 3;
                    clearInterval(interval);
                }else{
                    div.innerHTML = '页面将在'+ time + '秒后跳转';
                    time--;
                }
            },1000)
        })

    </script>

 navigator对象包含浏览器相关的信息,例如访问使用的浏览器,设备等。

history对象

history对象与浏览器记录进行交互,包含用户访问过的URL。

 history对象常用方法 

history对象方法 作用
back() 可以实现网页后退功能
forward() 前进功能
go(args) 前进或后退,步长为agrs,可以非负表示后退

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/154566.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!