目录
执行队列
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 实现。
效果
核心代码
<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