美文网首页
如何实现异步加载脚本

如何实现异步加载脚本

作者: AuraAura | 来源:发表于2019-04-25 15:52 被阅读0次

一般<script></script>标签引入的内容放在<head>元素中,例如

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript" src="example1.js"></script>
    <script type="text/javascript" src="example2.js"></script>
</head>
<body>
     <!--···内容代码-->
</body>
</html>

这样就必须等所有的js文件全部下载、解析、执行完成才能呈现<body></body>标签中的页面内容。如果存在很多js代码的页面会导致页面呈现出现很大的延迟,在这个延迟期间内页面是一片空白,即白屏。为了避免这个问题,一般推荐把js文件放在页面内容之后引入:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <!--···内容代码-->
    <script type="text/javascript" src="example1.js"></script>
    <script type="text/javascript" src="example2.js"></script>
</body>
</html>

1. defer属性

在HTML 4.01中<script>定义了defer属性,用来控制在js脚本文件执行时不影响页面内容的呈现。使用defer属性后js文件被延迟到整个页面都解析完了再执行。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript" defer="defer" src="example1.js"></script>
    <script type="text/javascript" defer="defer" src="example2.js"></script>
</head>
<body>
     <!--···内容代码-->
</body>
</html>

还用的defer属性时,js文件按顺序执行

2. async属性

此外<script>元素还有一个async属性,页面不用等到js代码下载执行,异步加载页面内容,与defer属性不同,async属性的js文件不按照顺序执行

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript" async src="example1.js"></script>
    <script type="text/javascript" async src="example2.js"></script>
</head>
<body>
     <!--···内容代码-->
</body>
</html>

3. 其他方法

动态添加<script>标签
待学习

相关文章

  • 如何实现异步加载脚本

    一般 标签引入的内容放在 元素中,例如 这样就必须等所有的js文件全部下载、解析、执行完成才能呈现 标签中的页...

  • H5 资源异步加载策略

    1、async & defer 区别async异步加载脚本,加载完立马执行defer异步加载脚本,并在DOMCon...

  • 浏览器加载机制 & 白屏和FOUC演示

    如何异步加载脚本? 没有 defer 或 async,浏览器会立即加载并执行指定的脚本,“立即”指的是在渲染该 s...

  • 浏览器加载机制 & 白屏和FOUC演示

    如何异步加载脚本? 没有 defer 或 async,浏览器会立即加载并执行指定的脚本,“立即”指的是在渲染该 s...

  • ES5及之前是如何实现模块化的?

    通过RequireJS实现: RequireJS优点: 1.异步“加载”。我们知道,通常网站都会把script脚本...

  • 浏览器加载机制

    如何异步加载脚本 $(document).ready() 需要引入jquery 兼容所有浏览器$(document...

  • JavaScript补充

    01-延迟和异步加载JS 如何延迟加载JS:defer defer:js脚本可以延迟到文档完全被解析后执行 如何异...

  • 异步加载JS脚本

    异步处理外部脚本总结 Dynamic Script Element 通常我们加载JS脚本...

  • 浏览器入门学习

    浏览器加载机制 一、如何异步加载脚本 使用defer或async: defer:有顺序的,等文档读取和解析完成之后...

  • 异步加载脚本

    因为JavaScript具有两个特性: JavaScript会阻塞后面内容的呈现 JavaScript会阻塞其后组...

网友评论

      本文标题:如何实现异步加载脚本

      本文链接:https://www.haomeiwen.com/subject/rfhzgqtx.html