前言
Web 作为一个充满互动的平台,各式各样的交互元素、复杂的页面结构以及海量的媒体资源无一不增加了网页的加载时间,直接影响着用户的体验。性能优化是前端工程化中必不可少的环节,本文主要介绍使用 JavaScript 异步加载和延迟加载资源的常见技巧,以帮助开发者提升页面性能和用户体验。
什么是异步加载和延迟加载资源?
异步加载和延迟加载资源是两种常见的性能优化方式。异步加载资源是在页面创建过程中,通过 JavaScript 动态地添加需要异步加载的资源,可以分为并行加载和串行加载两种方式。延迟加载资源是当页面加载完成后,通过 JavaScript 延迟需要加载的资源,以达到优化页面性能的目的。
异步加载资源
异步加载资源是让网页在浏览器的下载程度允许的情况下,尽早地展示,增加页面的响应速度和用户体验。
并行加载资源
并行加载资源是指将需要加载的资源按照并列的方式同时加载,从而减少加载时间。以下代码展示了一种通过动态创建 script 标签实现并行加载外部 JavaScript 的方式:
var addScript = function(url) { var script = document.createElement('script'); script.type = 'text/javascript'; script.async = true; script.src = url; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(script, s); };
串行加载资源
串行加载资源是指将需要加载的资源逐一加载,保证加载时的稳定性和资源的可用性。以下代码展示了一种通过动态创建 script 标签以依次加载外部 JavaScript 的方式:
-- -------------------- ---- ------- --- --------- - -------------- - --------------- -- --------- ---- - ------- ------ --- - - ------------------------------------------- --- ---- - ---------- - ----------------- - --- --- - ------------- --- ------ - --------------------------------- ----------- - ------------------ ------------- - ------------------------- - ---------- - ------- -- ---------- - ---- --------------------------------- --- - -- ------- --
延迟加载资源
延迟加载资源是根据网页内容,在页面下载完成后才去下载自己所需的一些组件和内容,达到节省带宽和提高加载速度的目的。
延迟图片加载
延迟加载图片是优化页面性能和用户体验的常见手段之一,以下代码展示了一种基于 lazyload.js 程序模块实现的延迟加载图片的方式:
-- -------------------- ---- ------- ----------------- --------- ---------- - --- -- - ----------- ---- - -- --------------------------- - --- - ----------------------------- - ---- - --- - - --------- - - ---------------- -- --------------------- ------------ ------- ------- - - ------ - - -- - - --- - - --------- - - -- ---- - ------------------- -- ------------- - ---------------- --- - -- - ------ ---- -- ---------------- - ------------- --- - ----------------------- - -------------------------- --- ------ - -------------------- - --------------------- - ---- --- - --------- - ---- - --- -- ---- - ------------- ---- - ------ ----------------------------------------- ----- -- -------- ------------- --- - --- --- - --- -------- --- - ---------------------------- ---------- - ---------- - -- --- ---------- - --------------------------- --- - ---- - ------ - ---- - -- - ---- - ----- - ------- - ---- - -------- --------------------- - --- ---- - -------------------------- ------ - -------- -- - -- --------- -- - -- -------- -- ------------------- -- -------------------------------------- - - --- ------ - --- -------- ----- - --------------- ------------- - ---------- - --- ---- - - -- - - -------------- ---- - -- ------------------------------ - -------------------- -------- -- - ---------------- --- --- - -- -- --- ---- - - -- - - ------------- ---- - ---------------------- - ---------------- ----------------------------------------- ---------- ----------
延迟加载视频和音频
延迟加载视频和音频可以通过一些 jQuery 插件实现,比较常用的是 lazyYT,以下为使用 lazyYT 插件加在视频的示例代码:
jQuery(function() { jQuery("div.lazyYt").lazyYT(); });
小结
通过以上介绍可以看到,使用 JavaScript 异步加载和延迟加载资源是前端性能优化的重要手段之一。在实际项目中,我们可以根据具体情况选择使用并行加载、串行加载、延迟加载图片、延迟加载视频、音频等优化方式,提升页面性能和用户体验,更好的展示网页内容。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67cdc950e46428fe9e782371