Dom加载解析

作者: 一只好奇的茂 | 来源:发表于2017-06-15 08:20 被阅读66次

加载顺序

  1. 解析HTML结构;
  2. 加载外部脚本和样式表文件;
  3. 解析并执行脚本代码;
  4. 构造HTML DOM模型;
  5. 加载图片等外部文件;
  6. 页面加载完毕;
实例演示
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Title</title>
    <style type="text/css">
        body
        {
            font-sie: 12px;
        }
    </style>
    <link href="style.css" rel="stylesheet" type="text/css" media="all" />
    <script src="js.js" type="text/javascript"></script>
</head>
<body>
    <div>
        <script type="text/javascript">
            function f1() { }
        </script>
        ![](1.gif)
    </div>
    <script type="text/javascript">
        function f2() { }
    </script>
</body>
</html>

html → head → title → #text(网页标题) → style → 加载样式 → 解析样式 → link → 加载外部样式表文件 → 解析外部样式表 → script → 加载外部脚本文件 → 解析外部脚本文件 → 执行外部脚本 → body → div → script → 加载脚本 → 解析脚本 → 执行脚本 → img → script → 加载脚本 → 解析脚本 → 执行脚本 → 加载外部图像文件 → 页面初始化完毕

两种方法实现在HTML页面加载完毕后运行某个js

两种方法

load方法:

<script type="text/javascript"> 
     window.onload=function(){ 
         var userName="xiaoming"; 
        alert(userName); 
    } 
</script> 

ready方法(需引入jquery):

<script type="text/javascript"> 
      $(document).ready(function(){ 
          var userName="xiaoming"; 
          alert(userName); 
     }); 
</script> 

或者其简写

$(function(){ 
     var userName="xiaoming"; 
     alert(userName); 
}); 
ready和load的区别
  • ready:
    表示文档结构已经加载完成(不包含图片等非文字媒体文件),即所有元素对脚本而言都是可以访问的,但是,并不意味着所有关联的文件都已经下载完毕。换句话说,当HMTL下载完成并解析为DOM树之后,代码就会执行。
  • load:
    表示页面包含图片等外部文件在内的所有元素都加载完成,页面上的全部元素对js而言都是可以操作的,也就是说页面上的所有元素加载完毕才会执行。这种情况对编写功能性代码非常有利,因为无需考虑加载的次序。
  • 举个例子:
    假设有一个表现图库的页面,这种页面中可能会包含许多大型图像,我们可以通过jQuery隐藏、显示或以其他方式操作这些图像。如果我们通过onload页面设置界面,那么用户在能够使用这个页面之前,必须要等到每一幅图像都下载完成。更糟糕的是,如果行为稍微添加给哪些具有默认行为的元素(比如链接),那么用户的交互可能会导致意想不到的结果。然而当我们试用$(document).ready(){ }进行设置时,这个界面就会更早地准备好可用的正确行为。
    使用$(document).ready(){ }一般来说都要优于试用onload事件处理程序,但必须要明确一点的是,因为支持文件可能还没有家在完成,所以类似图像的高度和宽度这样的属性此时不一定有效。

参考文章

认识DOM以及DOM加载过程

相关文章

  • css文件、js文件加载与浏览器渲染

    做个简单总结,如下: css文件加载不阻塞dom解析,但阻塞dom渲染,dom解析&css加载同时完成,浏览器才会...

  • js与css加载对页面的阻塞

    css加载不会阻塞dom树解析,浏览器并行解析 dom tree 和 cssom tree,解析完毕后生成 ren...

  • window.load 和$(document).ready()

    一、DOM文档加载的步骤为: 解析HTML结构。 加载外部脚本和样式表文件。 解析并执行脚本代码。 DOM树构建完...

  • CSS样式表的加载对于DOM解析,渲染,JS执行的阻塞问题

    CSS加载问题 css加载会不会阻塞DOM树的解析? css加载会不会阻塞DOM树的渲染? css加载会不会阻塞后...

  • Dom加载解析

    加载顺序 解析HTML结构; 加载外部脚本和样式表文件; 解析并执行脚本代码; 构造HTML DOM模型; 加载图...

  • DOMContentLoaded

    DOM文档通常加载的步骤:1.解析HTML结构。2.加载外部脚本和样式表文件。3.解析并执行脚本代码。4.DOM树...

  • 2020-03-10

    1. css会阻塞渲染 css加载不会阻塞DOM树的解析css加载会阻塞DOM树的渲染css加载会阻塞后面js语句...

  • jquery-2

    $(document).ready() 当dom完全加载(例如html被完全解析dom树构建完成时),jquery...

  • DOMContentLoaded

    DOM文档加载流程:(1) 解析HTML结构。(2) 加载外部脚本和样式表文件。(3) 解析并执行脚本代码。(4)...

  • load,DOMConetntLoaded

    DOMContentLoaded 1 .dom内容加载完毕,也就是html文档被加载和解析完成 2 . 3 .在解...

网友评论

    本文标题:Dom加载解析

    本文链接:https://www.haomeiwen.com/subject/dokyqxtx.html