Window对象浏览器【DOM文档模型设计】应用与开发 (Web)

简介:

 

   在浏览器Window对象中 DOM与我们关注浏览器BOM的整体结构有所不同,BOM是浏览器的整体结构(属性和行为)。而DOM只是关注浏览器所载入的文档,也就是HTML标签对象;DOM并不是BOM的替代品,它只是把能够统一的东西尽量标准化。JavaScript的核心就是通过操作BOM的对象来控制页面和对象的属性与其方法都有一些针对浏览器的,BOM在不同的浏览器中,获取同样的数据可能会通过不同的属性名,并且相同的属性名在不同的浏览器中会有不同的解释;BOM对象都拥有很多的属性和方法,对我们来说,不可能做到记住每个对象的所有属性,重要是知道一个对象能做什么,至于怎么做,完全可以查阅相关帮助来解决。从逻辑上说 BOM和DOM的关系,就是不管用什么设备生产月饼,生产出来的月饼必须符合国家月饼标准,这样没有引发食品卫生案件。从某种意义上来讲就是有规范性的条例来进行作业。DOM的总名称是(Docunment Object Model),以下图DOM对象模型“HTML文档”的流程示意图(640*437像素)所示:

    

    image

    DOM把HTML文档定义为带有元素、属性和文本的树型结构,也就是说一个HTML文档就是一个HTML文件,像ECMAScript规范样,DOM规范是规定了一些名字(属性名和方法名)以及这些名字的含义,还有它们操作的对象;这样对浏览器的DOM来说,是被浏览器实现,幷添加在浏览器每个DOM对象上的属性和方法。这些属性和方法在每个浏览器中都有相同的名称和含义,用这些书城和方法来进行编码会有很大程度地廉容各个浏览器。在DOM的规范中,“文档是一个很抽象的概念,文档就是指HTML标签对象。      测试DOM的支持度,W3C的网站提供每个测试浏览器对DOM的测试支持情况:

            http://www.w3.org/2003/02/06-dom-support.html

 

   编写JavaScript代码之前,我们首先了解文档模型的构成顺序是很必要的;下面序列代码:               (1)<script>                 //获取id属性为“n” 的元素引用                  alert(document.getElementById(“n”));             </script>             <div id="n”>             </div>     以下可把代码修改为:         (2)<script>                  //运用id属性为“b5”的元素引用  (以“b5”为自拟定义的一个元素,比如把元素“h1”用来引用“b5”,已上图所示)                  alert(document.createElement(“b5”);             </script>             <div id="b5">             </div>                

  

alert()函数显示的结果将得到null,因为在JJavaScript的代码执行时,文档树中还没形成id为"n"的元素。而这就跟文档对象模型产生有关。    浏览器会按照有序的依据HTML代码,从上到下顺序产生相应DOM模型,而JavaScript代码却可以在任何地方被执行,这就是危险所在。但你想要设置document.body的背景时,首先需要获取body对象的引用,如果代码是出现head里,那么程序是不会被执行的。大部分浏览器都支持document对象的一个回调事件---文档构建完成通知。这个事件会在浏览器构建完成DOM后触发。      把JavaScript代码(1)或代码(2)放在<head>里如:

       <head> 

             <script>

                   document.onreadystatechange = function() {

                        if(document.readyState == “complete”) {

                           alert(“DOM模型构建完毕!")

                        }

                   }

             </script>

        </head>

        <body>

               <div id="before”>

                    立即显示

               </div>

               <script>

                    for(var i=0; i<10000; i ++) {

                          //可注释此句以观察不同的效果

                          document.getElementById(“before”).innerHTML="立即显示";

                    }

               &lt;/script>

               <div id="after">

                    延迟显示 (对图片过大时需时间加载)

               </div>

          </body>

      注意:DOM模型构建完毕并不代表图片可完整地显示在页面上,对于较大的图片还需要慢慢加载。也就是img需要有它自己回调完成它自己事件。

     

本文转自huangyouliang10 51CTO博客,原文链接:http://blog.51cto.com/1572091hyl10/400610

相关文章
|
3天前
|
XML JavaScript 数据格式
XML DOM 浏览器差异
不同浏览器对XML DOM解析处理存在差异,尤其是在处理空白和换行方面。当XML文档中包含换行和空格时,Internet Explorer不会将这些视为文本节点,而其他浏览器则会。例如,一个简单的XML文档在各子节点间有空格和换行,IE会识别为4个子节点,而其他浏览器则识别为9个。示例代码通过加载XML文件并输出子节点数量来展示这一差异。
|
9天前
|
XML 存储 Java
11:Servlet中初始化参数的获取与应用-Java Web
11:Servlet中初始化参数的获取与应用-Java Web
22 3
|
9天前
|
关系型数据库 MySQL
web简易开发(二){html5+php实现文件上传及通过关键字搜索已上传图片)}
web简易开发(二){html5+php实现文件上传及通过关键字搜索已上传图片)}
|
1天前
|
XML JavaScript 数据格式
Beautiful Soup 库的工作原理基于解析器和 DOM(文档对象模型)树的概念
Beautiful Soup 使用解析器(如 html.parser, lxml, html5lib)解析HTML/XML文档,构建DOM树。它提供方法查询和操作DOM,如find(), find_all()查找元素,get_text(), get()提取信息。还能修改DOM,添加、修改或删除元素,并通过prettify()输出格式化字符串。它是处理网页数据的利器,尤其在处理不规则结构时。
6 2
|
1天前
|
缓存 监控 前端开发
探索现代Web应用的性能优化实践
【5月更文挑战第10天】随着互联网技术的飞速发展,用户对Web应用的响应速度和流畅度要求越来越高。性能优化已成为前端开发中不可或缺的一环。本文将深入探讨Web应用性能优化的关键策略,包括代码分割、资源压缩、缓存利用、服务端渲染等技术手段,以及如何通过工具进行性能监测和分析。我们将从原理出发,结合实际案例,帮助开发者构建更快速、更高效的Web应用。
|
2天前
|
前端开发 JavaScript Java
Java与Web开发的结合:JSP与Servlet
Java与Web开发的结合:JSP与Servlet
7 0
|
2天前
|
存储 程序员 API
python web开发示例详解
python web开发示例详解
12 0
|
2天前
|
网络协议 关系型数据库 Linux
使用PHPStudy搭建本地web网站并实现任意浏览器公网访问
使用PHPStudy搭建本地web网站并实现任意浏览器公网访问
8 0
|
3天前
|
XML 前端开发 JavaScript
CSR(客户端渲染)和AJAX在Web开发中各自扮演不同的角色
【5月更文挑战第8天】CSR(客户端渲染)与AJAX在Web开发中各司其职。CSR提供初始HTML框架,通过JavaScript在浏览器端获取并渲染数据,提升交互性和响应速度。AJAX则实现页面局部更新,如实时搜索,不刷新页面即可获取数据。CSR可能因DOM操作多而引发性能问题,但可优化解决;AJAX适合频繁交互场景,提高响应性。两者在不同需求下各有优势,需按项目选择适用技术。
12 4
|
3天前
|
前端开发 搜索推荐 安全
AJAX和CSR(客户端渲染)是Web开发中常用的两种技术
【5月更文挑战第8天】AJAX提升用户体验,减轻服务器压力,但对搜索引擎不友好且增加开发复杂度,易引发安全问题。CSR提供快速响应和交互性,改善用户体验,但首屏加载慢,搜索引擎支持不足,同样面临安全挑战。两者各有适用场景,需按项目需求选择。
9 0