使用<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. 在Excel中创建随机数据集

    1.随机小数0-1之间 =RAND() 2.随机整数1-100之间 =RANDBETWEEN(1,100) 3.生成一定比例的随机数0或1 =IF(RAND()>=0.8,1,0) 4.生成一定 ...

  2. lombok安装不了的问题

  3. Linux-samba共享

    CentOS8 中 Samba环境搭建(满足Linux和Windows系统之间文件共享传输) Samba服务器通信协议(Server Messages Block)就是是为了解决局域网内的文件或打印机 ...

  4. Python 使用mysql.connector、pymysql和 MYSQLdb(MysqlClient)操作MySQL数据库

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一.本文主要介绍安装mysql.connector,. ...

  5. CamstarVP提交前验证

    方法一: public override FormsFramework.ValidationStatus ValidateInputData(Service serviceData) { Valida ...

  6. iis发布后设置文件夹用户安全权限

    发布iis后异常截图: 401 - Unauthorized: Access is denied due to invalid credentials.You do not have permissi ...

  7. jekins 入门

    环境安装 gitlab 安装 使用 docker 安装 gitlab docker run -d --name gitlab --restart always --hostname gitlab.zd ...

  8. postgresql源码解读

    大量模块源码解读 https://blog.csdn.net/cuichao1900?type=blog 存储管理(内存管理.外存管理)源码解读,每行都有注释 https://blog.csdn.ne ...

  9. Py_excel

    py_excel xlrd 读excel workbook = xlrd.open_workbook(file_path) sheet = workbook.sheet_by_name(sheet_n ...

  10. a[i]之和小于N的含义

    例题 小白月赛 困难卷积 题目 要求一个暴力算是 \(O(n^2)\) 的东西 同时题目保证 \(\sum a[i] \leq 10^7\) 题解 \(\sum a[i] \leq 10^7\) 的含 ...