当<脚本>标签在html文件中遇到
What happened when a <script> tag is encountered within a html file?
我只是想知道当在HTML文件中遇到<script src="http://...example.js"/>
时,会发生什么?是否有一些事件处理程序,或者将发送类似于get请求的内容?
通常,浏览器会停止它正在做的一切——停止渲染、停止事件循环、停止侦听或对输入执行操作。这种状态被称为"阻塞"。然后它执行脚本块中的任何内容,或者通过GET请求检索src
属性中引用的脚本,然后在脚本到达时执行。在执行之后,浏览器摆脱了阻塞,继续解析DOM。
如果我没记错的话,脚本源不是异步加载的,这意味着在加载之前执行将停止。因此,不需要一个宣布何时完成的活动。如果我错了,希望有人能纠正我的错误。
这在HTML5CR中的script
元素部分中进行了描述。在本例中,由于既不使用defer
属性,也不使用async
属性,因此浏览器将在继续处理HTML文档之前获取(使用GET请求(并执行脚本。因此,默认处理是同步阻塞行为。
但是,如果您真正使用像<script src="http://...example.js"/>
这样没有结束标记</script>
的标记,则根本不会提取脚本,除非您为HTML文档提供XML内容类型的罕见情况。原因是<script src="http://...example.js"/>
仅被解析为开始标签,因此所有其他内容都被解析为script
元素的内容,而当没有解析结束标签时,script
元素就没有完成。所以不要试图使用"self-closed"语法;而是写入<script src="http://...example.js"></script>
。
相关文章:
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 导入jQuery脚本获胜'我不处理html文件
- 生成pdf或其他非html文件时的错误处理
- 如果使用javascript函数屏幕太小,我该如何更改HTML文件的背景色
- html文件中的script标记根本不起作用
- 从单独的html文件预览Javascript文本
- 从Chrome扩展名中的popup.html文件在background.js文件中运行一个函数
- Android在webview中加载带有javascript的html文件,得到Uncaught ReferenceEr
- 什么更好?使用iframe或jQuery之类的东西在外部网站中加载HTML文件
- 当我在浏览器中打开HTML文件时,javascript不起作用
- 如何在另一个html文件的框架中包含图像
- 压缩静态HTML文件中的JS和CSS
- 从HTML文件中的TypeScript(.ts)获取值
- 以HTML文件中的编码形式脱机存储图像
- ionic幻灯片框中的每张幻灯片都有不同的HTML文件
- 加载具有特定CSS的HTML文件
- 使用Gulp手柄部分编译为单个HTML文件
- 使用javascript检查服务器上是否存在html文件
- 在本地启动HTML文件
- javascript从选中的复选框中检索输入值,并在同一网页中显示多个html文件