JavaScript是什么?

简单来说,JavaScript是一种以ECMAScript作为语言标准的编程语言,通常我们讲的ECMAScript更多被等同于JavaScript,但完整JavaScript实际上有三部分:ECMAScript+相关扩展

完整的JavaScript包含以下内容

  1. ECMAScript(核心)
  2. DOM(文档对象模型)
  3. BOM(浏览器对象模型)

HTML中JavaScript的使用方法

JavaScript有两种使用方法

  1. 直接将js代码嵌入网页的<script>标签之中
  2. 通过<script>标签引入外部JavaScript文件(推荐使用)

推荐使用外部文件原因:

  • 可维护性:js代码若分散到不同的html页面中,后期维护困难
  • 性能提升:浏览器会根据特定设置缓存js文件,若多个页面引用同一个js脚本,那么该只需下载一次,这意味着页面的加载速度会变得更快。

不管以哪种方法编写JavaScript,浏览器都会按照<script>标签在页面中出现的顺序依次解析它们

<script>标签的使用规则

标签位置

过去人们习惯将<script>标签放置在页面的<head>标签中

  • 目的:将外部的css和js文件集中放到一起

  • 缺点:页面将在所有js代码下载、解析和解释完成后才能开始渲染页面(页面在浏览器解析到body标签时开始渲染),在此期间浏览器窗口完全空白。

  • 解决方法:现代WEB应用程序通常将js文件及相关代码放在<body>元素的末尾位置

标签属性

1.推迟执行脚本:defer属性

//使用方法
<script defer src=""></script>

<script>标签添加defer属性

  • 目的:告诉浏览器立即开始下载js文件,但推迟执行该脚本。
  • 原因:添加defer属性表示该脚本的执行不会影响页面结构,完全可以在页面解析完成之后再执行脚本内容。

2.异步执行脚本:async属性

//使用方法
<script async src=""></script>

<script>标签添加async 属性

  • 目的1:告诉浏览器不必等脚本下载、执行完毕后再加载页面(与defer属性目的相同)
  • 目的2:同时也告诉浏览器不必等该异步脚本下载和执行后再加载其它脚本

defer和async的比较

  • 相同点:从脚本处理方式上看,两者作用类似,都是告诉浏览器页面解析不需等待脚本的下载执行,而且两者都只适用于外部引入的脚本。
  • 不同点:添加async属性的脚本不能保证执行顺序为<script>标签的放置顺序

注意:在实际情况中,推迟执行的脚本并不一定会按照顺序执行,因此最好的方法是只包含一个带有defer属性的脚本,而且考虑到不同浏览器对defer属性的支持程度不一致,最好还是把推迟执行的脚本放到页面底部。

js脚本的延迟执行和异步执行相关推荐

  1. [js] promise的构造函数是同步执行还是异步执行,它的then方法呢?

    [js] promise的构造函数是同步执行还是异步执行,它的then方法呢? promise构造函数是同步执行的,then方法是异步执行的. 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很 ...

  2. js文件引用方式及其同步执行与异步执行

    详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp74 任何以appendChild(scriptNode) 的方式引入的j ...

  3. js 循环 等待异步执行完再执行_JS异步执行机制——事件循环(Event Loop)

    JS异步执行机制--事件循环(Event Loop) 本文首发地址: 前端基础 | JS异步执行机制--事件循环(Event Loop)​www.brandhuang.com 先祭出一段代码,你清楚它 ...

  4. js 异步执行_JS异步执行机制——事件循环(Event Loop)

    JS异步执行机制--事件循环(Event Loop) 本文首发地址: 前端基础 | JS异步执行机制--事件循环(Event Loop)​www.brandhuang.com 先祭出一段代码,你清楚它 ...

  5. Java Script 多线程并发执行与异步执行浅析

    众所周知,JS是单线程运行机制,但是当我们在使用AJAX请求时会有async选项,来实现异步. 那么小编今天来简单的说一下关于JS的异步到底是怎么实现的. 我们先测试这样一段代码: self.setI ...

  6. 计算机中 什么是同步执行和异步执行?

    1 当您同步执行某项任务时,您将等待它完成,然后再转到另一项任务.当您异步执行某项任务时,您可以在它完成之前转移到另一个任务. 也就是说,在计算机的上下文中,这转化为在另一个"线程" ...

  7. Go语言同步和异步执行多个任务封装

    同步适合多个连续执行的,每一步的执行依赖于上一步操作,异步执行则和任务执行顺序无关(如从10个站点抓取数据) 同步执行类RunnerAsync 支持返回超时检测,系统中断检测 错误常量定义,task/ ...

  8. C#异步执行方法的几种方式

    C#异步编程资料 基于任务的异步模式 (TAP) 是基于 System.Threading.Tasks 命名空间中的 System.Threading.Tasks.Task 和 System.Thre ...

  9. 倒计时定时器(爆炸定时器)、间隔定时器、通过点击按钮停止定时器、异步执行问题

    多个定时器返回值 按照上到下排序1,2,3,4排序. 倒计时定时器(通过返回值来停止) 点击btn1按钮, <button id="btn1">清除定时器-延时< ...

最新文章

  1. 委托、Lambda表达式和事件
  2. android webview js 失效,Android WebView注入JQuery、JS脚本及执行无效的问题解决
  3. 7-8 最优服务次序问题 (10 分)
  4. VS启动项目时一个奇葩问题
  5. 济南大学转专业计算机面试难吗,我校2016-2017学年学生转专业工作结束
  6. 使用GreenSock插件轻松制作精美的Web动画
  7. 两条平滑曲线相乘_对三次贝塞尔曲线过点平滑中尖角和交叉现象的优化
  8. 【英语语法入门】 第21讲 将来时
  9. 手机详情 html代码生成器,dede源码最新版手机移动端静态生成模块插件
  10. Python转换表情符号 emoji
  11. 对偶理论,敏感性分析(方述诚 笔记4
  12. Redis安装(Ubuntu)
  13. Python文本变量与函数的解析执行,增强自动化测试数据驱动
  14. 程序员深夜逆行被拦后崩溃欲自杀:老板在催我!女朋友在催我!
  15. 网页段落文字右侧参差不齐对齐方式
  16. 不考研也能转计算机专业!第二学士学位开始报名!
  17. 腾讯信鸽推送平台集成中的问题
  18. 手把手教你上传女神照片到服务器
  19. MS Access 与 Excel区别与各自的优势
  20. 有关Win8快速启动机制探讨

热门文章

  1. 8月13日个股投资机会点评
  2. HTML5实现的矢量卡片式组织结构图
  3. 培养学生既要言传也要身教!
  4. 奶爸日记18 - 公园餐厅
  5. 【独家】华为OD机试 - 基站维修工程师(C 语言解题)
  6. 信号量 ——什么是信号量
  7. win10下genymotion启动慢
  8. 字体设计结构调整方法
  9. 从百度信誉评级看未来网络优化的方向
  10. 2023年美赛D题思路/2023年美国大学生数学建模D题思路