您可能认为同步加载脚本会使脚本下载后执行下一行代码,对吗?但这并不是同步加载 javascript 文件的含义。当您比较加载特定文件的异步、同步和延迟策略时,就会出现混乱。
更多关于以异步、同步、延迟方式加载 javascript 文件的信息请参见文章末尾。
这里我们首先讨论代码执行。要在脚本成功下载后执行代码行,可以在 script 标签上使用 onload 属性。请参考下面的代码片段:
<html> <head> <title>Sync Script Tag</title> </head> <body> <h1>Load script sync.</h1> </body> <script> function afterLoad() { console.log('script loaded successfully.') // executes after script has loaded } function sync_load() { console.log('sync_load...') var s = document.createElement('script'); s.type = 'text/javascript'; s.async = false; // load synchronously s.onload = afterLoad; s.src = "https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"; var x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x); } console.log('JS entry') sync_load(); console.log('next tick') // this executes before after_load </script> </html>
输出:
现在,回到异步、同步、延迟策略,请通过stackoverflow参考下图:
在这种情况下,异步与同步之间的差异在解析 HTML 文件时发挥作用。记住这一点!
编码愉快✨
以上是使用脚本标签同步加载文件时要避免的常见错误的详细内容。更多信息请关注PHP中文网其他相关文章!