使用<script>元素有两种方式 一种是在页面嵌入JavaScript代码 ,一种就是包含外部JavaScript文件

包含在<script>标签内部的JavaScript代码将被从上至下依次解释

<script type="text/javascript">

var h = "hello";

function sayh(params) {

alert(h);

}

sayh();

</script>

按这个例子来说,解释器会解释一个函数的定义,然后将定义保存在自己环境里,在解释器对<script>标签内部的

所有代码求值前,页面其余内容不会被浏览器显示

所以 虽然<script>标签可以head ,body ,body 后面。但是没有必要需求的话,

因为html是顺序执行,所以放在head里面 如果JavaScript脚本很大,会影响网站打开速度

如果放在body里面 效果是先把网站内容展现后,再加载JavaScript脚本,所以用户会感觉网站加载很快

而放在body后面是把页面内容全部加载后再运行JavaScript脚本,这样如果JavaScript需要改变DOM的话,就会出现一瞬间的闪烁,

所以一般都把全部JavaScript引用放在<body>元素中页面内容的后面。但是我更推荐使用async属性

异步下载JavaScript脚本

使用方法是

<script type="text/javascript" src="脚本路径" async></script>

这样使用意味着不会阻塞页面的正常渲染

JavaScript脚本很小的情况下,放哪里都无所谓的.

所以 async>body>head

还有在使用<script>标签时需要正确的使用闭合标签,这样是防止xss 跨站脚本

2.对于script标签的放置位置的更多相关文章

  1. 【JavaScript性能优化】------理解Script标签的加载和执行

    1.script标签是如何加载的?当浏览器遇到一个 < script>标签时,浏览器会停下来,运行JavaScript代码,然后再继续解析.翻译页面.同样的事情发生在使用 src 属性加载 ...

  2. javascript标签放置位置

    首先:放置位置哪里都能放 但是js代码很有可能不起作用:例如:往id为span的标签中定时插入数字 var time=document.getElementById("span") ...

  3. script标签的位置

    1.在我们编写代码的时候,会在页面内使用<script>标签来写JS,虽然理论上script标签的位置放在哪里可以,但是还是有一点区别的. 2.为什么很多人把script标签放在底部: 初 ...

  4. JavaScript <script>标签的位置、延迟脚本(defer属性)与 异步脚本(async属性)

    一.<script>标签的位置 传统的做法是将<script>元素放在<head>元素中,例如: <!DOCTYPE html><html > ...

  5. script标签引入脚本的引入位置与效果

    用script标签引入脚本的引入位置大致有两种情况: 1,在head中引入: 2,在body末尾引入: 浏览器由上到下解析代码,正常情况下,先解析head中的代码,在解析body中的代码:放在head ...

  6. 关于css,js放置位置的问题

    一天,小明正在网上查找资料,项目中遇到的问题需要通过查阅资料来解决,他看到一个标题很有意思,觉得这应该是他要找的答案,于是他就点了进去,结果进入网站后几秒钟的时间,网页还是一片空白,过了好久才加载完成 ...

  7. JS函数动作分层结构详解及Document.getElementById 释义 js及cs数据类型区别 事件 函数 变量 script标签 var function

    html +css 静态页面 js     动态 交互   原理: js就是修改样式, 比如弹出一个对话框. 弹出的过程就是这个框由disable 变成display:enable. 又或者当鼠标指向 ...

  8. <script>标签应该放到</body>标签之前

    著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者:贺师俊 链接:http://www.zhihu.com/question/20027966/answer/13727164 ...

  9. JS之script标签

    1.script标签的位置 script标签可以在head标签中,也可以在body标签中 2.async属性 async的目的是不让页面等待js文件的下载和执行,从而异步加载页面中的其他内容.只支持外 ...

  10. js中的script标签

    在页面中用script标签引入javascript文件(<script type="text/javascript" src="js文件地址">&l ...

随机推荐

  1. web.py 中的分页设计

    1.定义分页类 class Pagination(object): ''' 分页类 参数: per_page:每页数量 total_data:总数目 cur_page:当前页. 用法:(flask,h ...

  2. 一个好的程序应该像AK47

    一个好的程序应该像AK47: 容易上手(配置.设置.功能描述清晰),结构简单(低耦合,模块化,单元化),拆装方便(安装部署.卸载.迁移很少有障碍),从不卡壳(已知业务冲突解决),故障率低(未知或可能出 ...

  3. NLog日志 富文本编辑器

    NLog日志 NLog是什么 NLog是一个基于.NET平台编写的类库,我们可以使用NLog在应用程序中添加极为完善的跟踪调试代码.NLog是一个简单灵活的.NET日志记录类库.通过使用NLog,我们 ...

  4. com.mysql.cj.jdbc.exceptions.CommunicationsException

    mysql数据库链接空闲一段时间后就会关闭连接,但是我们的java程序依然持有该连接的引用,对已经关闭的数据库连接进行操作就会引发上述异常. 解决办法: 1.增大mysql数据库的wait_timeo ...

  5. 7.29-bug计算器

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8 ...

  6. Linux系统目录及说明

    Linux系统目录结构以及简单说明: (1)/:根目录 (2)/boot:很多Linux系统把内核映像和其他一些和启动有关的文件都放在这里. (3)/tmp:一般只是启动时产生的临时文件才会放在这个地 ...

  7. 如何在eclipse里的动态Web项目建立后缀为xml的文件

    1.右击Dynamic Web Project类型项目的WEB-INF->new->Other->XML,选择XML File2 点击next改名字为web(后缀不要动哦)3. 点击 ...

  8. 27_wbpack_自定义Plugin

    Tapable 要想学会自定义Plugin就要先了解Tapable这个库 在我们的wbpack中有两个非常重要的两个类Compiler和Compilation 他们是通过注入插件的方式,来监听webp ...

  9. vue3 自定义组件中使用 v-model

    1.直接绑定 v-model,但是 Props 要固定为 modelValue 组件D: 注意这里的 Props 和 Emits,必须使用 Vue 提供的 defineProps() 和 define ...

  10. (0514)芯王国-志锐-Sd卡高速控制-AXI验证

    (1)commit (2)core  (3)generate (4)struct  结构体 (5)