原生js之script基本属性

news2025/2/26 8:04:31

在这里插入图片描述

async:异步执行脚本
defer:延迟脚本下载
src:要执行的代码外部文件地址
noscript:表示浏览器不支持或拒绝支持script脚本时出现的内容

async和defer

async和defer本质都是为了让脚本推迟到整个页面解析后再下载,不同的是async是异步无序的,而defer是同步有序的。

src是外部脚本文件地址

下面举例说明:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<!-- 脚本延迟,脚本会被延迟到整个页面都解析完毕后在运行 -->
	<script defer src="js/初始script.js"></script>
	<script src="js/初始script.js"></script>
	<link rel="preload" href="js/初始script01.js">
	<body>
		<script>
			// 如何打印<\/script>
			console.log("<\/script>")
			demo()
			// 动态加载脚本
			let script=document.createElement('script')
			script.src='js/初始script01.js'
			script.async='false'
			document.head.appendChild(script);
		</script>
		<!-- 如果浏览器不支持脚本,或者支持脚本的功能被关闭 -->
		<noscript>
			<p>该浏览器不支持script脚本</p>
		</noscript>
	</body>
</html>

在上述代码中,加上defer的外部脚本文件可以实现延迟加载的效果,为了让浏览器显示空白页面的时间变短了,增强对应的性能优化。如果不想加defer也可以把script外部脚本代码放在body下面执行也可以实现相同的效果,在下面的script中我们想打印一个</script>,可以通过转义字符\来实现这个效果,同时下面的demo()实际上是defer引入的外部文件中的方法,在下面又解释了动态生成script外部脚本的实现流程,首先我们定义一个块变量script,用dom中的createElement,创建一个script元素,同时定义这个script元素下的src属性为想要的文件路径,默认情况下,这种创建方法是异步的,也就是async的模式下,但有的浏览器不支持async,所以我们要调用这个属性并给它赋false值,最后在文档流下的head标签加一个孩子节点,但同时这种方式获取到的资源对浏览器预加载器来说是不可见的,会影响它们在资源获取队列中的优先级。如果在head头后加上link标签,并且把rel设置成preload,则可以让预加载器知道这些动态请求文件的存在,并把创造好的script变量赋到HTML当中,最后就是当浏览器不支持脚本或者支持脚本的功能被关闭时,我们可以使用noscript来实现不支持的显示效果。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1027413.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于微信小程序的在线小说阅读系统,附数据库、教程

1 功能简介 Java基于微信小程序的在线小说阅读系统 微信小程序的在线小说阅读系统&#xff0c;系统的整体功能需求分为两部分&#xff0c;第一部分主要是后台的功能&#xff0c;后台功能主要有小说信息管理、注册用户管理、系统系统等功能。微信小程序主要分为首页、分类和我的…

【开发】视频监控系统/视频汇聚平台EasyCVR对国标类型编码进行判断的实现方式

视频监控平台/视频存储/视频分析平台EasyCVR基于云边端一体化管理&#xff0c;支持多类型设备、多协议方式接入&#xff0c;具体包括&#xff1a;国标GB28181协议、RTMP、RTSP/Onvif、海康Ehome&#xff0c;以及海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石SDK等&#x…

利用免费的敏捷研发管理工具管理端到端敏捷研发流程

Leangoo领歌是Scrum中文网&#xff08;scrum.cn&#xff09;旗下的一款永久免费的敏捷研发管理工具。 Leangoo领歌覆盖了敏捷研发全流程&#xff0c;它提供端到端敏捷研发管理解决方案&#xff0c;包括小型团队敏捷开发&#xff0c;规模化敏捷SAFe&#xff0c;Scrum of Scrums…

进一步观察扩散模型中的参数有效调整

摘要&#xff1a; 像Stable diffusion[31]这样的大规模扩散模型非常强大&#xff0c;可以找到各种真实世界的应用程序&#xff0c;而通过微调来定制这样的模型会降低内存和时间的效率。受自然语言处理最新进展的推动&#xff0c;我们通过插入小型可学习模块adapters(称为适配器…

链表实现稀疏多项式相加(C++)

#include<iostream> using namespace std; typedef struct node {float coef;//系数int expn;//指数struct node* next; }list,*linklist; void Createlist(linklist& l) {l new list;l->next NULL;linklist p,q;q l;cout << "输入多项式项数&#…

ARM 汇编指令集——汇编中三种符号(汇编指令、伪指令、伪操作)、汇编基本格式、数据操作指令、跳转指令、特殊功能寄存器操作指令、内存操作指令、混合编程

目录 一、汇编中三种符号&#xff08;汇编指令、伪指令、伪操作&#xff09; 二、汇编基本格式 三、数据操作指令 3.1 数据搬移指令mov/mvn ① 示例 ② 立即数 3.2 移位操作指令lsl/lsr/asr/ror 示例 3.3 位运算操作指令and/orr/eor/bic ① 示例1 ② 示例2 3.4 算数…

第32节——useReducer——了解

一、概念 useReducer 是在 react V 16.8 推出的钩子函数&#xff0c;从用法层面来说是可以代替useState。众所周知&#xff0c;useState 常用在单个组件中进行状态管理&#xff0c;但是遇到状态全局管理的时候&#xff0c;useState 显然不能满足我们的需求&#xff0c;这个时候…

4G工业路由器高效数据传输助力光伏发电站管理

光伏发电站是能源产业中一种利用太阳能技术将光转化为电能的常见设施。随着物联网技术与环保能源的不断进步和应用的普及&#xff0c;光伏发电站的管理也变得更加便捷高效。 光伏发电站结合4G工业路由器实现远程监控管理&#xff0c;并用于采集发电站中的传感器数据和监控信息…

vue watch 侦听器 监视器

vue watch 侦听器 监视器 变量 变化的时候&#xff0c;自动调用处理函数 vue watch 侦听器 监视器

/node_modules/XXX/index.js:XXX XXX ??= X;SyntaxError: Unexpected token ‘??=‘

这问题 老实说有点奇葩 不影响运行 反倒运行提交了 不解决这个问题提交不了代码 这个错误是由于语法不兼容导致的。?? 是一个相对较新的 JavaScript 语法&#xff0c;也就是空值合并赋值操作符&#xff0c;它在 Node.js 版本低于 15 或者某些浏览器中不被支持。 那么 了解…

日常生活中的常用命令及操作

目录 一、Windows11 中查看网卡名称 及ip地址 二、查看硬件的详细信息 三、查看显卡声卡详细信息及厂商 四、C盘清理 第一步 输入wini 开启Windows设置主界面 第二步 存储中还有一个叫存储感知的功能 第三步 更改新内容的保存位置 第四步 怕误C盘内的东西可以 查看详细的…

【Java 基础篇】Java 线程通信详解

多线程编程在实际应用中非常常见&#xff0c;但随之而来的问题是线程之间的通信。线程通信是多线程编程中一个至关重要的概念&#xff0c;它涉及到线程之间的信息传递、同步和协作。本篇博客将详细解释Java中的线程通信&#xff0c;包括什么是线程通信、为什么需要线程通信、如…

UG\NX二次开发 求空间点坐标按照某方向移动某距离后的新坐标

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C++-CSDN博客 简介: 群友问“ufun中空间点的坐标(x,y,z),沿着空间任意工作坐标系z轴移动10mm后的新坐标如何计算?” 这个是有多种方法的,比如数学计算比如ufun的仿射变换…

css,环形

思路&#xff1a; 1.先利用conic-gradient属性画一个圆&#xff0c;然后再叠加 效果图 <template><div class"ring"><div class"content"><slot></slot></div></div> </template> <script> import …

JavaScript系列从入门到精通系列第三篇:JavaScript基本语法(一)

文章目录 一&#xff1a;JavaScript基本语法 1&#xff1a;JS注释 (一)&#xff1a;JS多行注释 (二)&#xff1a;JS单行注释 (三)&#xff1a;JS中大小写 (四)&#xff1a;分号问题 (五)&#xff1a;空格和换行 2&#xff1a;字面量和变量 (一)&#xff1a;字面量 (二…

demo1-csa(从初阶到大牛)

1.1文件管理命令练习 (1) 在/opt目录下创建一个临时目录tmp; # 创建临时目录tmp sudo mkdir /opt/tmp (2) 在临时目录下创建一个文件&#xff0c;文件名为a.txt; # 在临时目录下创建文件a.txt&#xff08;可以使用touch命令创建空文件&#xff09; sudo touch /opt/tmp/a.t…

MQ - 11 Kafka的架构设计与实现

文章目录 导图概述Kafka 系统架构协议和网络模块数据存储元数据存储消息数据生产者和消费者生产者消费者HTTP 协议支持和管控操作Kafka 从生产到消费的全过程总结导图 概述 在学习的过程中,我们会发现 Kafka 和 RocketMQ 的架构是非常像的,那为什么还要单独来分析 Kafka 呢?…

脑电相关临床试验及数据分析

临床试验设计 作为一个医疗器械公司的开发–>算法–>项目–>产品&#xff0c;还是想在这里记录一下工作。 直接开始吧 临床试验的设计&#xff0c;主要分为20个部分&#xff0c;分别是 封面 一、申办者信息 二、所有临床试验机构和研究者列表 三、临床试验的目的和…

计算机视觉与深度学习-全连接神经网络-详解梯度下降从BGD到ADAM - [北邮鲁鹏]

文章目录 参考文章及视频导言梯度下降的原理、过程一、什么是梯度下降&#xff1f;二、梯度下降的运行过程 批量梯度下降法(BGD)随机梯度下降法(SGD)小批量梯度下降法(MBGD)梯度算法的改进梯度下降算法存在的问题动量法(Momentum)目标改进思想为什么有效动量法还有什么效果&…

硬件学习 PAD9.5 day02 原理图绘制中的操作,PCB 封装的制作

1. 原理图中的连线操作 1.1 点击连线按钮 1.2 点击需要连线的地方连接即可 1.3 双击即可停止连线 2. 原理图的总线绘制 2.1 按下总线绘制按钮 2.2 画一条总线 总线名称 总线名字 [ 起始数字 &#xff1a; 结束数字 ] 2.3 分线连接总线 注意&#xff1a;原理图的连线…