bom和dom

快要考试了,也没学什么了 ,这一次就分析一下DOM和BOM的区别。
首先DOM:
Document Object Model 文档对象模型 一个Window对象有一个document属性引用了Document对象 Document对象表示窗口内容,他是一个巨大的API中的核心对象,他代表操作文档的内容

了解DOM我们需要了解:

1 在文档中查询元素

2 将文档作为节点树来遍历,找的节点的祖先、兄弟和后代

3 查询和设置文档的属性

4 查询、更改文档的内容

5 创建、插入、删除节点来修改文档

DOM对象模型是表示和操作HTML和XML文档内容的基本API.

首先,查询元素,如果我们需要获取一个东西在不使用id,不使用jquery的情况下还是非常难受的,我们大概需要遍历每一个元素,再根据某些条件来获取我们所要的东西。

其次,属性,HTML由一个标签和一组称为属性飞键值对组成,我们一般使用getAttribute与setAttribute来获取与设置属性,因为属性无法使用delete删除,所以还提供了has

Attribute与removeAttribute来判断标签是否含有某属性以及去掉标签的某个属性。

获取HTML内容:

innerHTML获取元素内部所有文本和标签
innerText获取元素内部文本
outerHTML获取标签元素

然后就是节点相关,元素等等...

BOM:

浏览器对象模型 Browser Object Model

说白点就是window这个东东:表示浏览器的一个实例,是访问浏览器窗口的一个接口,也是ECMAScript规定的Global对象。

意思是我们定义的所以所有的东西,都与window有关,他是客户端给javascript程序的全局对象。

有一个计时器的例子

javascript的计时器有setTimeout与setInterval两种,一个是在一定时间后执行,一个是重复执行。

这两个东西大家应该都很熟悉了,但是在实际应用中,setTimeout却带给了我们不一样的东西,比如优化!

setTimeout的优化点可以是以下地方:

① 鼠标移动标签上加载数据(发起http请求),但我们鼠标可能无意义的划过,所以延迟点加载若是无意义请求便取消

② 无论鼠标事件或者窗口改变事件,我们都可以使用这个家伙

(function () {
    var ajax = $('#ajax');
    var TIMER = null;
    var TIMER_STEP = 500;
    ajax.mousemove(loadMenu);
    ajax.mouseout(function () {
        if (TIMER) clearTimeout(TIMER);
    });
    function loadMenu() {
        if (TIMER) clearTimeout(TIMER);
        TIMER = setTimeout(function () {
            //do someting
        }, TIMER_STEP);
    }
})();

posted @ 2018-06-19 17:12  妄欢  阅读(130)  评论(0编辑  收藏  举报