JavaScript:async在这句代码中起到的作用

在防范XSS的时候,会有一些特例
比如正常情况下,以下代码是没法执行的,因为没有闭合script标签

<script src="test.js">

但是,在IE下,以下代码可以成功执行:

<script async src="test.js">

请问,这里的async起到什么作用,能让浏览器不会因为没有闭合script标签而报错。
另外,在chrome或火狐下如何能实现不闭合script标签也能成功执行js?

阅读 4k
2 个回答

1.首先不推荐不闭合的script标签,在javascript高级程序一书中说道:

这种语法不符合HTML规范,而且也得不到某些浏览器(尤其是IE)的正确解析。

2.关于async是个可选的参数,默认true,表示应当立即下载脚本,不会影响其他脚本和HTML的加载。
如果是async='false',则表示等到该脚本下载完毕后再执行其他操作,理解为同步。

async设置为true的时候,代表在加载js文件的同时,html文件是同时在被解析的,当js文件被加载完之后,就开始执行加载好的js文件,这个时候html文件的解析被挂起,只有当这个js文件被执行完之后才继续进行html文件的渲染。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题