js的延迟脚本----defer与异步脚本----async

延迟脚本----defer:

一般而言,js的引入<script></script>被放在body的结束符之前,这主要是为了让页面的所有节点被加载完了之后在执行js代码,防止js获取dom节点失败的情况出现。

如果你一定要将<script></script>放在head中,又担心无法获取到dom节点的话,可以如以下代码形式定义延迟脚本defer:

<script type="text/javascript" defer="defer" src="js/hom.js" ></script>

defer的作用在于将脚本延迟到整个页面都解析完毕之后再运行。等同于告诉浏览器立即下载js脚本,但延迟执行。同时defer=“defer”定义的js脚本也会按照它们出现的先后顺序执行。

ps:defer只对外部脚本文件起作用

异步脚本----async:

<script type="text/javascript" async="async" src="js/hom.js" ></script>

异步脚本的作用与延迟脚本相对一致,同样将脚本延迟到整个页面都解析完毕之后再运行,也只对外部脚本文件起作用。唯一区别在于,标记为async的脚本并不保证按照它们的先后顺序执行(随机?)

时间: 2024-12-29 11:59:25

js的延迟脚本----defer与异步脚本----async的相关文章

原生 JS 中 延迟脚本和异步脚本

一.延迟脚本 defer HTML4.0中为<script> 标签添加了个defer属性.属性的用途是表民脚本在执行时不会影响页面的构造. 脚本会被延迟到页面加载完毕的时候,执行.也就是当浏览器解析到</html> 标签后才会执行代码.在HTML5规范中,defer属性中适用于外部脚本. 而家了defer  的脚本文件会比DOMContentLoaded事件触发前执行. 二.异步脚本 async HTML5为<script>添加了个async属性.这个属性与defer属

JavaScript值延迟脚本和异步脚本

Html 4.0为<script>标签定义了defer属性,这个属性的用途是表名脚本在执行时,不会影响页面的构造.也就是说,脚本会延迟到整个页面解析完毕之后在运行,因此,在<script>元素中设置defer属性,相当于告诉浏览器立即下载,但延迟执行.但是有一种特殊情况,看如下代码: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C

javascript实现js脚本的的异步加载

javascript实现js脚本的的异步加载,和图片的异步加载稍有不同,script的异步加载需要借助dom,因此有了局限性 <html> <head> <meta charset="utf-8" /> <title>Javascript</title> <meta http-equiv="X-UA-Compatible" content="IE=7"> </head&

整合异步脚本

异步脚本整合 常规方式加载脚本(<script src="url></script>),不仅会阻塞页面中其它内容的下载,还会阻塞脚本后面所有元素的渲染.异步加载脚本可以避免这种现象,提高加载速度.但是如果在使用外部脚本时,不关注外部脚本里定义的标识符行内脚本:不考虑行内代码的依赖:则可能会由于竞争状态,而出现未定义标识符错误. 当异步加载的外部脚本与行内脚本之间存在代码依赖时,我们必须通过一种保证执行顺序的方法来整合这两个脚本.很多页面包含一个外部脚本和一段行内脚本.因为

js时间线及defer async

1.创建Document对象,开始解析web页面,解析HTML元素和他们的文本内容后添加Element对象和Text节点到文档中.这个阶段Document.readyState = "loading".  2.遇到link外部css,创建线程加载,并继续解析文档.  3.遇到script外部js,并且没有设置async , defer ,浏览器加载,并阻塞,等待js加载完成并执行该脚本,然后继续解析文档  4.遇到script外部js,并且设置有async,defer 浏览器创建线程加

前端自动化 shell 脚本命令 与 shell-node 脚本命令 简单使用 之 es6 转译

(背景: 先用 babel 转译 es6 再 用 browserify 打包 模块化文件,来解决浏览器不支持模块化 )(Browserify是一个让node模块可以用在浏览器中的神奇工具) 今天折腾了一上午,对于前端好多自动化管理的命令用起来,步骤甚多,故想写一个脚本文件,将项目所需要执行到命令 都 写在一个脚本文件中,在命令行 只需写一个命令即 完成所有事情.配置的环境: node + git1.第一步:在项目根目录下 新建 package.json 配置文件 { "name": &

经典实用的自动创建Bash脚本文件头的脚本

今天给大家展示一下,我自己写的一个自动创建Bash脚本文件头的脚本(名为create),希望能对初学脚本者带来一定的思维提示.毕竟对于一个经常写脚本的运维人员来说,每次写脚本的时候都需要重复的去写一遍文件头,也是一件很累赘的事情,既然我们学了脚本,为什么不让它来为我们减轻一下负担了.所以一个自动创建Bash脚本文件头的想法在我脑海里面产生了. 本脚本所需要实现的功能: 1,能够自动创建一个标准的Bash脚本文件头,带有详细注释信息 2,能够给新建完成的Bash脚本文件自动添加执行权限 [[ema

如果动态的执行java脚本,这个在脚本公式配置的时候很方便

package com.bfrj.core.groovy; import java.util.HashMap; import java.util.Map; import org.jeecgframework.core.util.ApplicationContextUtil; import org.springframework.context.ApplicationContext; /** * 公式计算 * */ public class GroovyParse { /** * 公式解析计算 *

实用脚本 3 -- 进程查看脚本

分享一个进程查看脚本(rlook),方便进程查看: 1.添加脚本,内容如下: #!/bin/kshcd $HOME/binps -u $LOGNAME|egrep " \progress1| \            progress2| \progress3| \" > $HOME/log/tmp.csclearecho ""echo "press <return> to check $LOGNAME system status\c&q