2.对于script标签的放置位置
使用<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标签的放置位置的更多相关文章
- 【JavaScript性能优化】------理解Script标签的加载和执行
1.script标签是如何加载的?当浏览器遇到一个 < script>标签时,浏览器会停下来,运行JavaScript代码,然后再继续解析.翻译页面.同样的事情发生在使用 src 属性加载 ...
- javascript标签放置位置
首先:放置位置哪里都能放 但是js代码很有可能不起作用:例如:往id为span的标签中定时插入数字 var time=document.getElementById("span") ...
- script标签的位置
1.在我们编写代码的时候,会在页面内使用<script>标签来写JS,虽然理论上script标签的位置放在哪里可以,但是还是有一点区别的. 2.为什么很多人把script标签放在底部: 初 ...
- JavaScript <script>标签的位置、延迟脚本(defer属性)与 异步脚本(async属性)
一.<script>标签的位置 传统的做法是将<script>元素放在<head>元素中,例如: <!DOCTYPE html><html > ...
- script标签引入脚本的引入位置与效果
用script标签引入脚本的引入位置大致有两种情况: 1,在head中引入: 2,在body末尾引入: 浏览器由上到下解析代码,正常情况下,先解析head中的代码,在解析body中的代码:放在head ...
- 关于css,js放置位置的问题
一天,小明正在网上查找资料,项目中遇到的问题需要通过查阅资料来解决,他看到一个标题很有意思,觉得这应该是他要找的答案,于是他就点了进去,结果进入网站后几秒钟的时间,网页还是一片空白,过了好久才加载完成 ...
- JS函数动作分层结构详解及Document.getElementById 释义 js及cs数据类型区别 事件 函数 变量 script标签 var function
html +css 静态页面 js 动态 交互 原理: js就是修改样式, 比如弹出一个对话框. 弹出的过程就是这个框由disable 变成display:enable. 又或者当鼠标指向 ...
- <script>标签应该放到</body>标签之前
著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者:贺师俊 链接:http://www.zhihu.com/question/20027966/answer/13727164 ...
- JS之script标签
1.script标签的位置 script标签可以在head标签中,也可以在body标签中 2.async属性 async的目的是不让页面等待js文件的下载和执行,从而异步加载页面中的其他内容.只支持外 ...
- js中的script标签
在页面中用script标签引入javascript文件(<script type="text/javascript" src="js文件地址">&l ...
随机推荐
- 用xmind转换成excel表格
我的版本是: XMind 8 Update 9 (R3.7.9.201912052356) 1.先下载一个xmind软件,并注册账号,建议最好用qq邮箱去注册 2.然后下载一个 XMindCrack. ...
- 导出PDF 空白赋值备份
后台代码 //出货清单 @RequestMapping(params="getBusinessOutDetail") public void getBusinessOutDetai ...
- Qt实现抽奖程序
一.简介 该程序命名为Lucky,实现的功能如下: 1. 加载抽奖人员名单,并保存加载路径: 2. 单击左键或者点击ctrl+s开始抽奖,并滚动显示人员名单,显示的人员名单格式为 部门-姓名. 3. ...
- Keil5 STM32 C++开发 ARM V6编译器的使用教程
Keil5更新之后,开始支持ARM V6编译器,新版本的编译器对C++有了更多的支持,在编译方面也做了很多的改善,具体的没有详细了解,本文只是对STM32 开发下,使用V6版本的编译器进行STM32的 ...
- Python的入门学习Day 22~24——form”夜曲编程“
Day 22 time:2021.8.19. 顺着歌曲的旋律,内心一下子就安静了呢.终于,我可以好好写日记了,徜徉在一片金色的花海里.今天主要学习了匿名函数.这是一种很有趣的函数呢,像孙悟空会72 ...
- NodeJS增删改查的获取方法
get獲取方法 ctx.query post獲取方法 ctx.request.body delete ctx.request.body put ctx.query ctx.request.body
- gRPC 入门(一)
前言 在学习 gRPC 之前,先学习 protobufu 协议,简单的来理解,我们可以使用他来定义 消息 和 服务.然后你只需要实现服务即可,剩下的东西,gRPC 会帮你自动完成. protobufu ...
- linux 挂载移动硬盘
fdisk -l mkdir -p /mnt/usbhd1 mount -t ntfs /dev/sdc1 /mnt/usbhd1 # 挂载 umount /mnt/usbhd1 # 解挂载 http ...
- scrapy中发送post请求
1.可以使用`yield scrapy.FormRequest(url,formdata,callback)`方法发送POST请求. 其中构造参数formdata可以是字典,也可以是可迭代的(key, ...
- 在windows 7下构建 FTP 服务器
首先我们在C盘建立两个文件夹,用于发ftp的上传和下载 其次我们找到控制面板>程序>打开或关闭windows功能 进入后找到Internet 信息服务>FTP服务器>确定! 选 ...