`

html中js代码的加载顺序

 
阅读更多
搜索:非阻塞JavaScript

对于一个html页面,head中有三个js代码段,并引入了四个js外部文件,head与body间有一个js代码段;body中有两个js代码段,body外有一个代码段;html外有一个js代码段;
在ABCD四个外部js中的第一行都有一行代码:alert(X +" start!"+ "---" + document.getElementById("testJS"));//X代表A、B、C、D
在B外部js中,有代码window.onload = function(){ alert("window.onload!"+ "---" + document.getElementById("testJS")); }
见附件!html如下:
<html>
    <head>
        <title>html中js代码的加载顺序</title>
        <script type="text/javascript">
            var a = 0;
            alert(a+"--head start!" + "---" + document.getElementById("testJS"))
            a++;
            function test(){
                a++;
                alert(a+"--"+document.getElementById("testJS").id);
            }
        </script>
        <script type="text/javascript" src="A.js"></script>
        <script type="text/javascript" src="B.js"></script>
        <script type="text/javascript">
            alert(a+"--head middle!" + "---" + document.getElementById("testJS"));
            a++;
        </script>
        <script type="text/javascript" src="C.js"></script>
        <script type="text/javascript" src="D.js"></script>
        <script type="text/javascript">
            alert(a+"--head end!" + "---" + document.getElementById("testJS"));
            a++;
        </script>
    </head>
  <script type="text/javascript">
      alert(a+"--head-body!" + "---" + document.getElementById("testJS"));
      a++;

  </script>

  <body>
      <script type="text/javascript">
          alert(a+"--body start!" + "---" + document.getElementById("testJS"));
          a++;
      </script>
      <input type="button" id="testJS" value="此处上面的js代码都获取不到该元素,下面的可以读取到" onclick="test()"/>
      <script type="text/javascript">
          alert(a+"--body end!" + "---" + document.getElementById("testJS"));
          a++;
      </script>
  </body>
  <script type="text/javascript">
      alert(a+"--BODY-HTML!" + "---" + document.getElementById("testJS"));
      a++;
  </script>
</html>
<script type="text/javascript">
    alert(a+"--HTML外!" + "---" + document.getElementById("testJS"));
    a++;
</script>

打开这个html页面,运行结果如下,依次alert打印:
0--head start!---null
1--A start!---null
2--B start!---null
3--B end!---null
4--head middle!---null
5--C start!---null
6--D start!---null
7--head end!---null
8--head-body!---null
9--body start!---null
10--body end!---[object]
11--BODY-HTML!---[object]
12--HTML外!---[object]
13--window.onload!---[object]
然后点击按钮,会alert打印出input的id为:14--testJS
以后每点击一次按钮,会加1;

总结:
html页面中html代码以及js加载的顺序是:
按照文档里的先后顺序,从上往下依次加载:先加载head标签中的js代码段以及引入的js,然后加载body标签中的html代码以及js代码,再加载body标签下面的js代码,直到将页面加载完全,最后才执行window.onload方法。
在html中写js代码要注意,一定要在某个页面元素加载后再去执行document.getElementById访问它,否则没有加载到它时会是null,报错!

remark:可以用chrome调试javascript,可以像调试java代码一样简单,就不需要用alert了。
chrome调试javascript用法链接:http://blog.csdn.net/wqc02/article/details/8838276
分享到:
评论

相关推荐

    详解关于html,css,js三者的加载顺序问题

    这是因为JavaScript代码在执行过程中可能会修改DOM结构,如果在解析HTML的同时执行JavaScript代码,可能会导致不一致的页面状态。因此,浏览器在遇到标签时,会优先下载并执行JavaScript文件,等待其完全执行完毕后...

    html加载顺序.zip

    1. **执行JS**:如果`&lt;script&gt;`标签包含JavaScript代码,浏览器会暂停HTML解析并执行脚本。 2. **DOM操作**:JavaScript可以修改DOM,这会导致浏览器重新构建受影响的部分,可能导致重排和重绘。 3. **异步加载**:...

    jsp页面中的代码执行加载顺序介绍.docx

    ### JSP页面中的代码执行加载顺序详解 #### 一、引言 JSP(Java Server Pages)是一种基于Java技术的动态网页技术标准,它通过将动态生成的内容嵌入到静态HTML页面中,使得Web应用程序能够生成动态变化的内容。在...

    大图片分块加载JS代码

    接下来,我们编写JavaScript代码。这里假设有一个名为`js/main.js`的文件,用于处理图片的分块加载。首先,获取图片元素,并读取其`data-src`属性: ```javascript var imgElement = document.getElementById('...

    ASP.NET中不同部分的js代码的执行顺序

    在ASP.NET开发中,JavaScript代码的执行顺序对于确保页面逻辑正确运行至关重要。本文将详细介绍ASP.NET环境中不同位置JavaScript代码的执行顺序,帮助开发者更好地理解和掌握这一机制。 #### 1. `&lt;head&gt;`标签中的JS...

    页面加载中js 页面加载中js 页面加载中js

    在页面加载时,浏览器会按照HTML文档的顺序解析元素并执行遇到的JavaScript代码。如果JavaScript位于文档的头部,可能会阻塞页面的渲染,直到脚本执行完毕。因此,将脚本放在`&lt;body&gt;`标签底部或使用`async`或`defer`...

    js异步加载代码

    在"asyLoad.js"这个文件中,我们可以预期它包含了一段用于实现JavaScript异步加载的代码。下面将详细介绍异步加载的原理和常见实现方法。 1. **异步加载的原理**: - 使用`&lt;script&gt;`标签的`async`属性:当`async`...

    jsp页面中的代码执行加载顺序介绍

    了解JSP页面中的代码执行加载顺序对于Web开发人员来说至关重要,因为它影响页面的表现和功能的实现。 JSP页面中的代码主要分为三部分:Java代码、JSP标签和脚本以及客户端的JavaScript和HTML代码。这些部分的执行...

    html中嵌入js执行顺序_html中嵌入js执行顺序_

    在HTML文档中嵌入JavaScript代码是网页开发中的常见实践,这允许我们动态地改变内容、响应用户交互或执行复杂的逻辑。了解JavaScript的执行顺序对于优化网页性能和避免潜在的错误至关重要。以下是对这一主题的详细...

    网页按顺序加载 最后加载js广告

    通过优化网页的加载顺序,特别是将非关键的JavaScript广告放在最后加载,我们可以显著提高网页的首屏加载速度,从而提升用户体验。同时,对于网页性能的优化,还可以考虑使用CDN加速资源获取,压缩代码减少传输量,...

    js在html中的加载执行顺序.docx

    1. **加载顺序**:JavaScript代码在HTML文档中的加载与执行顺序遵循其在文档中的出现顺序。无论是内联在`&lt;script&gt;`标签内的代码还是通过`src`属性引用的外部文件,都会按照它们在HTML文档中的位置顺序进行加载和执行...

    页面加载顺序,loading巧妙解决

    页面加载顺序对于用户体验至关重要,因为它直接影响到用户首次看到网页内容的速度和形式。在网页开发中,浏览器遵循一定的规则来解析HTML、CSS和JavaScript文件,从而构建出完整的页面。本篇文章将详细探讨页面加载...

    动态加载外部JS文件

    动态加载则改变了这一模式,它使用JavaScript代码来异步请求并插入外部脚本,使得页面可以先呈现基本内容,而JavaScript文件则在后台加载,提高了用户体验。 二、动态加载的方法 1. 使用`&lt;script&gt;`标签的`async`和...

    引入JavaScript脚本代码到HTML文档中

    3. 外部脚本方式:这是推荐的做法,可以将JavaScript代码保存为单独的.js文件,然后在HTML中引用。这样可以实现代码复用,提高可维护性。例如: ```html &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;script src="hello.js"&gt; 点击...

    javascript代码加载优化方法

    JavaScript代码加载优化是提高网页性能的关键技术之一,尤其是在处理大量脚本或第三方追踪代码时。在给定的例子中,我们看到一种将统计代码分离并异步加载的方法,以避免阻塞页面渲染,同时确保统计数据的准确收集。...

    h5动态注入js代码

    而“h5动态注入js代码”是指在H5页面运行时,通过JavaScript程序动态地向页面中添加或修改JavaScript代码,以实现更灵活的功能扩展和页面交互。这种方式常见于响应式设计、数据可视化、用户行为追踪等多种场景。 一...

    LABjs-master--js有序加载.rar

    2. 示例代码或HTML文件:演示如何在实际项目中使用LAB.js来控制脚本加载顺序。 3. 使用文档或README文件:解释如何配置和使用LAB.js,包括API参考、最佳实践等。 4. 测试用例:可能包含测试脚本,用于验证LAB.js的...

    探析浏览器执行JavaScript脚本加载与代码执行顺序

    对于直接在事件处理程序或URL主体中嵌入的JavaScript代码,它们的执行顺序与其他方式不同,不参与常规的脚本执行流程。 以一个示例来解释脚本执行顺序,我们可以考虑两个JavaScript文件(1.js和2.js)的加载。当这...

    Javascript代码在页面加载时的执行顺序介绍

    在探讨JavaScript代码在网页加载过程中的执行顺序时,我们首先需要了解JavaScript在HTML文档中的几种嵌入方式,以及它们在页面加载过程中的执行行为。 一、HTML中嵌入JavaScript的方法 1. 直接将JavaScript代码...

Global site tag (gtag.js) - Google Analytics