Javascript 异步=“异步”;异步;a<;脚本>;html中的标记,它是什么意思?
HTML中Javascript 异步=“异步”;异步;a<;脚本>;html中的标记,它是什么意思?,javascript,html,Javascript,Html,HTML中标记的async=“async”属性,它是什么意思 <script async="async" src="...."></script> 例如,如果在外部脚本(带有src=)上设置了async属性,则支持该属性的浏览器将在后台下载该脚本,而不会阻止页面上的其余内容。只要完成下载,脚本就会执行 正如我在评论中提到的,设置async=true、async=false或async=anything都意味着相同的事情。它们支持异步行为。使脚本非异步的唯一方法是完
标记的async=“async”
属性,它是什么意思
<script async="async" src="...."></script>
例如,如果在外部脚本(带有src=)上设置了async属性,则支持该属性的浏览器将在后台下载该脚本,而不会阻止页面上的其余内容。只要完成下载,脚本就会执行 正如我在评论中提到的,设置async=true、async=false或async=anything都意味着相同的事情。它们支持异步行为。使脚本非异步的唯一方法是完全忽略该属性
似乎也不需要是
async=async
,只需要async
来自谷歌:
第二种方法是使用属性,其中
适当,这可以防止解析阻塞初始页面
通过延迟加载,直到浏览器的UI线程不忙
还有别的
在XHTML中,因此需要将属性作为属性及其值进行注释,而HTML则不这样做。我喜欢该原则的一致性,因此我总是以以下形式使用该原则:
async="async"
通过这种方式,我可以将文档作为application/xhtml+xml提供
如果您对此不感兴趣,因为您认为将文档作为文本/html提供已经足够了,那么您可以始终使用:
async
只要异步就足够了
您可以同时尝试这两种方法,然后测量页面速度的差异。Like使用单一的物质来做这件事。它只是简单的意思
一个很好的例子 注意:此属性仅适用于外部脚本(具有src属性的脚本),而不适用于内联脚本。包含: 例如,如果属性存在,则 经典脚本将与解析并行获取,并作为 一旦可用(可能在解析完成之前)。如果
async
属性不存在,但defer
属性存在,
然后将并行获取经典脚本,并在
页面已完成解析。如果两个属性都不存在,则
立即获取并计算脚本,阻止解析
直到这些都完成
例如,如果存在async
属性,则模块
脚本及其所有依赖项将与
解析,模块脚本将在完成后立即进行评估
可用(可能在解析完成之前)。否则
模块脚本及其依赖项将与
解析并在页面完成解析后进行计算。(该延迟
属性对模块脚本没有影响。)
以下示意图总结了所有这些内容:
由于大多数历史原因,这些属性的确切处理细节有些琐碎,涉及HTML的许多方面。因此,实施需求必然分散在整个规范中。[在HTML规范中描述的]算法描述了此处理的核心,但这些算法引用了HTML、外来内容和XML中脚本开始和结束标记的解析规则、document.write()方法的规则、脚本处理等
即使指定了async
属性,也可以指定defer
属性,以使仅支持defer
(而不支持async
)的传统Web浏览器退回到defer
行为,而不是默认的阻塞行为
因此,如果我记得将其设置为async
,我就不需要将javascript放在页面底部,对吗?第一个链接的锚不再起作用,文档中也没有提到async
。您的答案是信息性的(关于doc/mime类型)但它没有解决我的实际问题:属性async
的作用是什么?很抱歉,我没有谈到这个主题。async是script元素的一个新的HTML5属性。它使浏览器在找到脚本标记时继续解析页面的其余部分,而不是先解析脚本,然后继续解析页面。我发现了一个有趣的教程:不,并非所有情况下都是这样。对于XHTML,作为application/xml+XHTML使用,这是一个致命错误,当您注意到这样的属性时,会导致页面冻结。