`

延迟加载JS

    博客分类:
  • JS
 
阅读更多

JavaScript的延迟加载是那些在web上,能让你想抓狂地去寻找解决方案的问题之一。

很多人说“那就用defer”或“async”,甚至有些人说“那就将你的javascript代码放在页面代码底部”。

上述方法都不能解决在web页面完全加载后,再加载外部js的问题。上述方法也会偶尔让你收到Google页面速度测试工具的“延迟加载javascript”警告。所以这里的解决方案将是来自Google帮助页面的推荐方案。

如何延迟加载JavaScript

下面是Google推荐的代码。这些代码应被放置在</body>标签前(接近HTML文件底部)。另外,我将外部JS文件名突出显示。

 

<script type="text/javascript">
function downloadJSAtOnload() {
var element = document.createElement("script");
element.src = "defer.js";
document.body.appendChild(element);
}
if (window.addEventListener)
window.addEventListener("load", downloadJSAtOnload, false);
else if (window.attachEvent)
window.attachEvent("onload", downloadJSAtOnload);
else window.onload = downloadJSAtOnload;
</script>

 这里做了什么?

 

这段代码意思是等到整个文档加载完后,再加载外部文件“defer.js”。

具体说明

1.复制上面代码

2.粘贴代码到HTML的</body>标签前 (靠近HTML文件底部)

3.修改“defer.js”为你的外部JS文件名

4.确保你文件路径是正确的。例如:如果你仅输入“defer.js”,那么“defer.js”文件一定与HTML文件在同一文件夹下。

这段代码能用在哪里(和哪里不能用)

这段代码直到文档加载完才会加载指定的外部JS文件。因此,不应该把那些页面正常加载需要依赖的javascript代码放在这里。而应该将JavaScript代码分成两组。一组是因页面需要而立即加载的javascript代码,另外一组是在页面加载后进行操作的javascript代码(例如添加click事件或其他东西)。这些需等到页面加载后再执行的JavaScript代码,应放在一个外部文件,然后再引进来。

例如,在这页面我使用上述文件进行延迟加载 - Google analytics,Viglink (我怎么赚钱),和显示在底部的Google+徽章(我的社交媒体)。这对于我来说,没有理由在初始页面加载时加载这些文件,因为初始阶段都没必要加载上述无关紧要的内容。也许在你的页面中也有同样性质的文件。那你难道想让用户在看到网页内容之前,还要等待这些文件加载吗?

为什么不使用其它方法呢?

直接插入代码、将脚本放置在底部和使用“defer”或“async”,这几种方法都不能达到先加载页面后加载JS的目的,而且它们肯定不能在各个浏览器上表现一致。

它为什么重要?

它的重要性是由于Google将页面速度作为排名因素之一而且用户也希望能快速加载页面。另外对于移动搜索引擎优化也是非常重要的。Google根据页面最初加载时间来衡量页面速度。这意味着你必须尽可能快地得到页面的load事件。页面最初加载时间是Google用来评价你的web页面质量(而且别忘记用户在等待页面的加载)。Google积极推进和推荐将上述的无关紧要的内容按重要性排列,让所有资源(js,css,images等)脱离关键的渲染路径,而且这样做是值得去努力的。如果这样能取悦用户,且让Google开心,你很应该这样做。

用法示例

我已创建一个页面,在这个页面你可看到这段代码的使用。

让你测试的示例文件

好的,为了说明,我已制作几个示例页面让你进行测试。每个页面都做同一样的事情。这是一个普通的HTML页面,含有一个等待2秒然后输出“hello world”的javascript脚本。你可以测试这些文件,然后你会看到只有一种方法,它的加载时间是不包括2秒的等待时间。

关键点

压倒一切的首要任务应该是尽可能快地交付内容给用户。而我们一直没想着如何对待我们的javascript代码。但用户不应该为一些无关紧要的脚本,而被迫地为内容而作出等待。无论你的页脚多酷,都没理由让一个可能从不滚动到页脚的用户,去加载那些让页脚变酷的javascript文件。

 

参考:http://www.chinaz.com/web/2015/0629/417766.shtml

分享到:
评论

相关推荐

    延迟加载js代码下载(包括页面延迟加载以及图片延迟加载)

    本篇文章将详细讲解延迟加载在JavaScript(js)和jQuery中的应用,以及如何实现页面和图片的延迟加载。 一、延迟加载的概念 延迟加载,也称为懒加载(Lazy Loading),是指在需要时才加载资源的技术。这种技术主要...

    页面延迟加载JS包 lazyload.js scrollloading.js

    "lazyload.js" 是一个专门用于延迟加载图片、视频和其他HTML元素的JavaScript库。它通过监听用户的滚动事件,判断元素是否进入视口,如果进入则加载相应的资源。这个库通常会替换原始的`src`属性为占位符,然后在...

    html延迟加载JS和CSS

    在给定的文件`lazyLoadJC.js`中,可能实现了一个JavaScript库,用于延迟加载JS和CSS资源。这个库可能包含以下功能: 1. 检测浏览器兼容性,确保在IE6及更高版本上运行。 2. 针对JavaScript的延迟加载,可能使用了`...

    延迟加载JS/CSS

    延迟加载(Lazy Load)是一种...7. **总结**:延迟加载JS和CSS是现代Web开发中的重要优化手段,它通过按需加载策略,平衡了用户体验、性能和资源消耗。理解并掌握这种技术,对于创建高性能、响应迅速的网站至关重要。

    延时加载JS,解决JS阻塞问题

    总结来说,延时加载JS是一种有效改善页面性能的策略,通过延迟非关键脚本的加载,可以显著提高页面的首次加载速度,提供更好的用户体验。通过合理利用各种技术手段,我们可以实现这一目标,同时保持页面的正常功能和...

    js设置延迟加载

    ### js设置延迟加载 在现代Web开发中,为了提高用户体验并优化资源管理,开发者们常常会用到“延迟加载”(Lazy Loading)技术。本文将详细介绍如何使用JavaScript实现页面元素或功能的延迟加载,帮助读者更好地...

    延迟加载 JavaScript Echo.js

    Echo.js 也是一个用于图像延迟加载 JavaScript

    懒加载,滚动窗口加载,延迟加载js,jquery脚本demo

    在标题中提到的“延迟加载js,jquery脚本demo”,这表明提供的示例代码是使用jQuery库实现的JavaScript懒加载功能。jQuery是一个广泛使用的JavaScript库,简化了DOM操作、事件处理以及动画效果,对于实现懒加载这样...

    jquery图片延迟加载

    为了解决这个问题,开发人员引入了“图片延迟加载”技术,jQuery作为一款广泛使用的JavaScript库,提供了实现这一功能的强大工具。本文将深入探讨jQuery图片延迟加载的概念、优势以及实现方法。 **一、什么是图片...

    Echojs延迟加载图片JavaScript微型库

    **Echo.js:一款高效实用的JavaScript延迟加载图片库** 在网页设计中,图片是不可或缺的元素,它们可以增强用户体验,但同时也可能导致页面加载速度变慢。为了优化网站性能,延迟加载(Lazy Loading)技术应运而生...

    原生js延迟加载

    在JavaScript的世界里,延迟加载(Lazy Loading)是一种优化网页性能的技术,它允许我们仅在真正需要时才加载资源,如图片、脚本或视频。这种技术可以显著减少初始页面加载时间,提高用户体验,并减少服务器压力。...

    LazyLoad类库 js 延迟加载工具

    延迟加载是一种优化网页性能的策略,它允许我们只在需要时才加载资源,如图片、JavaScript或CSS。这种技术显著减少了初始页面加载时间,提高了用户体验,尤其是在移动设备上,因为它们通常具有有限的带宽。 **Lazy...

    几种延迟加载JS代码的方法加快网页的访问速度

    本文将介绍三种延迟加载JS代码的方法,以帮助加快网页的访问速度。 1. **延迟加载JS代码** 这种方法利用JavaScript自身来实现延迟加载。例如,我们可以创建一个空的`&lt;script&gt;`标签,然后通过`setTimeout`函数在...

    延迟加载 html优化

    例如,压缩包中的`LazyLoad.js`可能就是一个用于实现延迟加载功能的JavaScript库。这个库通常会监听用户的滚动事件,当检测到用户滚动到某个图像或元素时,就会触发对应的加载操作。同时,为了确保兼容性和性能,这...

    延迟加载JS 加速首页打开速度

    很多网站首页打开比较慢,图片多,可以用这个延迟加载,图片会随滚动条,加载图片

    js滚动延时加载

    JavaScript滚动延时加载,也称为懒加载(Lazy Loading),是一种优化网页性能的技术。...在实际项目中,你还可以结合使用现有的JavaScript库和框架,如Vue.js或React,它们都有成熟的滚动延时加载解决方案。

    JavaScript 封装的延迟加载技术示例 JavaScript 封装的延迟加载技术示例,可以用于加载容器、加载DIV以及加载图片等,可有效降低浏览器损耗,有兴趣可以尝试一番。

    JavaScript延迟加载技术是一种优化网页性能的重要策略,它允许我们按需加载资源,而不是一次性加载所有内容,从而减少了页面初始化时的负担,提升了用户体验。在这个示例中,我们将探讨如何使用JavaScript来封装延迟...

    js页面图片延迟加载特效.zip

    在网页设计中,提高用户体验和...总结来说,"js页面图片延迟加载特效"是一种高效优化网页加载速度的技术,通过JavaScript实现,能显著提升用户体验。通过理解和应用这些知识点,开发者可以创建更流畅、响应更快的网页。

    图片延时加载实例

    - `lazyload.js`或`lazyload.min.js`: `lazyload`框架的JavaScript文件,用于处理图片的延迟加载逻辑。 - `styles.css`或`styles.min.css`: 可能包含了框架的样式,例如加载动画的CSS。 - `images/`: 文件夹,包含...

    网页延迟加载修正js

    2. **图片/资源的标记**:为了使延迟加载生效,原始或修正过的 jQuery.LazyLoad.js 可能会要求我们在需要延迟加载的元素上设置特定的属性或数据,例如 `data-src` 或 `data-original`,这些属性将存储真实资源的URL...

Global site tag (gtag.js) - Google Analytics