• 技术文章 >web前端 >前端问答

    script标签一般写在html的什么位置

    青灯夜游青灯夜游2022-09-16 16:20:23原创1110

    script标签的位置:1、放在head标签内部,浏览器解析HTML,解析到script标签时,会先下载完所有script,再往下解析其他的HTML;因此会使网页内容呈现滞后,用户体验差。2、放在body标签内部,浏览器会先解析完整个HTML页面,再下载并解析js。3、放在body闭标签之后,浏览器会忽略之前的“”,所以实际效果和写在body闭合标签之前没有区别。

    大前端成长进阶课程:进入学习

    本教程操作环境:windows7系统、HTML5版、Dell G3电脑。

    一般script标签会被放在头部或尾部,头部就是head标签里,尾部就是body里,也有放在body闭合标签之后。

    1、script标签放在head标签内部

    <head>
        <title>获取DOM元素</title>
        <script>
            var myElement = document.getElementById("atag");
            console.log(myElement);
        </script>
    </head>
    <body>
        <div id="atag">
            <p>一个标签</p>
        </div>
    </body>

    打印结果:

    在这里插入图片描述
    当script标签放在head标签里时,浏览器解析HTML,解析到script标签时,会先下载完所有script,再往下解析其他的HTML。在浏览器下载js时,是不能多个js一起下载的,且浏览器下载js时,会阻塞解析其他的HTML。因此,将script标签放在头部,会使网页内容呈现滞后,用户体验差。

    2、script标签放在body标签内部

    <body>
        <div id="atag">
            <p>一个标签</p>
        </div>
    <script>
        var myElement = document.getElementById("atag");
        console.log(myElement);
    </script>
    </body>

    在这里插入图片描述

    将script标签放在body尾部,浏览器会先解析完整个HTML页面,再下载js,这样的话,如果js执行出错了,最起码页面中的元素还可以加载出来,因为DOM文档是从上往下的顺序执行的。 但是对于一些高度依赖于js的网页,这样就会显得很慢。

    3、script标签放在body闭标签之后

    <body>
        <div id="atag">
            <p>一个标签</p>
        </div>
    </body>
    <script>
        var myElement = document.getElementById("atag");
        console.log(myElement);
    </script>

    在这里插入图片描述

    虽然放在body闭合标签之前和之后的打印结果是一样的,但是从HTML 2.0起放在body闭标签之后就是不合标准的。之所以浏览器不会报错,是因为如果在body标签之后再出现script或任何元素的开始标签,都是prase error(语法错误),浏览器会忽略之前的</body>,即视作仍旧在body内部,所以实际效果和写在body闭合标签之前是没有区别的。

    怎样实现边解析页面边下载js呢?

    asyncdefer

    async

    async的设置,会使得script脚本异步的加载并在允许的情况下执行,但是并不会按照在script在页面中的顺序来执行,而是谁先加载完谁执行。

    <script async src="/script01.js"></script>
    <script async src="/script02.js"></script>

    如果script01.js较大,下载慢,则会导致script02.js可能先于script01.js执行。

    defer

    defer的设置,会是浏览器异步的下载该文件并且不会影响到DOM的渲染,如果有多个设置了defer的script标签存在,则会按照顺序执行所有的script,即先下载script01.js,再下载script02.js

    【推荐学习:javascript视频教程

    以上就是script标签一般写在html的什么位置的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:script html
    上一篇:在html页面中调用外部样式的方法是什么 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• html5代码中pattern的含义是什么• html5中br是行内元素还是块级元素• html5中使用什么标签嵌入音频• html中哪个是头部标签• html中的from标签有什么用
    1/1

    PHP中文网