首页 >web前端 >js教程 >使用 defer 属性优化外部库:提高页面速度

使用 defer 属性优化外部库:提高页面速度

Patricia Arquette
Patricia Arquette原创
2024-11-24 08:36:09713浏览

Optimizing External Libraries with the defer Attribute: Boosting Page Speed

构建网站时,开发人员经常依赖外部库来增强功能。虽然这些库很重要,但它们可能会影响性能,因为每个外部脚本都需要额外的 HTTP 请求,并且其解析、评估和执行可能会阻止页面上主要内容的呈现。为了防止这些脚本阻塞渲染过程,开发者可以在链接外部脚本时使用 async 或 defer 属性。

defer 的作用
defer 属性确保在 HTML 解析完成之前不会执行脚本。这有助于加快页面的初始渲染速度。但是,在使用延迟外部库时,您可能会遇到某些功能(例如初始化滑块、轮播或动画)无法按预期运行的情况。发生这种情况是因为延迟脚本中的代码仅在 HTML 完全解析后才执行,但有时必要的外部库可能无法及时可用。

了解 DOMContentLoaded 和加载事件
为了确保依赖外部库的自定义代码正确执行,您需要仔细管理代码运行的时间。在处理延迟脚本时,两个 JavaScript 事件特别有用

DOMContentLoaded: 当初始 HTML 文档完全加载和解析时触发此事件,无需等待样式表、图像或其他外部资源加载。当您的代码仅依赖于准备好的 DOM 结构时,它非常有用。

document.addEventListener('DOMContentLoaded', function() { 
// Initialize your script once the DOM is fully parsed 

console.log("DOM is ready, but external resources might still be loading."); 
});

load: 当整个页面(包括所有依赖资源,如样式表、图像和外部脚本)完全加载时,将触发 load 事件。此事件确保在执行代码之前所有必要的外部资源都可用。

window.addEventListener('load', function() { 
// Execute code when the entire page and resources are loaded 

console.log("All resources including external scripts are fully loaded."); 
});
<script defer src="https://example.com"></script>
<script defer src="https://example2.com"></script>
<script>
    // Wait for the entire page, including scripts, to load
    window.addEventListener('load', function() {
        // Initialize example2 library with predefined configuration after all resources are fully loaded
        example2(somePredefinedConfig).functionCall();
    });
</script>

以上是使用 defer 属性优化外部库:提高页面速度的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn