web APIs:BOM

BOM ( Browser Object Model )即浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是window。


1、窗口加载事件:window.onload = funciton(){ };  / window.addEventListener('load', function(){ });  当页面加载完再执行处理函数,onload方法只能执行一个,以最后一个为准;用addEventListener则无限制

DOMContentLoaded事件,当dom加载完即处理,不包含css,img,flash加载,如果页面图片很多,可以使用该方法,当网络质量差时,增加用户体验

 

2、调整窗口大小事件:window.onresize调整窗口大小加载事件,触发时就调用,使用该方法完成响应式布局; window.innerWidth当前屏幕宽度

 

3、定时器:

setTimeout(回调函数callback,[延迟的毫秒数]); 一个页面多个定时器需要加不同标识符; 停止定时器window.clearTimeout(timeoutID)

setInterval(回调函数callback,[延迟的毫秒数]); 重复调用,间隔毫秒;clearInterval(timeoutID);

 调用定时器名的时候需要注意,先给定时器起一个全局变量,否则局部变量两个按钮无法调用

var timer = null; // 全局变量  null是一个空对象
        begin.addEventListener('click', function() {
            timer = setInterval(function() {
                console.log('ni hao ma');

            }, 1000);
        })
        stop.addEventListener('click', function() {
            clearInterval(timer);
        })

 

4、this指向:一般来说this指向最终调用他的对象

全局作用域和普通函数下,还有定时器指向的是全局对象window

方法中谁调用this指向谁

构造函数中this指向构造函数实例

 

5、js执行机制:单线程

JavaScript是为处理页面中用户的交互,以及操作DOM而诞生的。比如我们对某个DOM元素进行添加和删除操作,不能同时进行。应该先进行添加,之后再删除。

Web Worker标准,脚本创建多线程,实行同步和异步操作

同步任务都放到了主线程上执行,形成执行栈

异步任务通过回调函数实现:1、普通事件,click、resize等;2、资源加载,load、error等;3、定时器,setInterval、setTimeout等。这一类异步任务相关的回调函数添加到任务队列中。

 

机制:1、先执行同步任务;2、异步任务放到任务队列中;3、同步任务执行完毕后,系统依次读取任务队列中的异步任务

 

6、location对象:用于获取或设置窗体的url,可解析url,属性返回的是对象,所以称为location对象

 跳转 location.herf('地址');a.herf需要处理程序,如按钮等,而location.herf可直接执行,也可处理

 

7、navigator

navigator对象包含有关浏览器的信息,它有很多属性,我们最常用的是userAgent,该属性可以返回由客户机发送服务器的user-agent头部的值。判断用户使用何种终端打开

if ( (navigator.userAgent.match(/(phonelpad|pod|iPhone|iPod|iosliPad|Android lMobile|BlackBerry|IEMobile |MQQBrowser| JuC|rennec|wOSBrowser|BrowserNG| Webosl symbian |windows Phone)/i) )) {
    window.location.href = "";//手机
}else {
    window . location.href = "";//电脑

 

8、history:与浏览器历史记录交互

 

posted @ 2021-08-21 10:25  Jacky02  阅读(42)  评论(0)    收藏  举报