Magento加速利器——lazyload

 

Magento的速度是令人头疼的问题,我现在介绍一种前端的加速方法。说到lazyload,相信很多人都不陌生,现在很多网站都已经用到这个技术,他可以延迟加载长页面的图片。对于Magento这样的商城网站的加速就很明显了。我今天说的这个lazyload是经过POPO改造的(强逼我给他加外连……)。下面我放一些测试的数据,我正在做的一个网站的列表页。

很明显的就能看出差距。接下来写下用法:

首先加上jQuery,lazyload两段js。

lazyload:

(function($) {

$.fn.lazyload = function(options) {
var settings = {
threshold : 0,
failurelimit : 0,
event : "scroll",
effect : "show",
container : window
};

if(options) {
$.extend(settings, options);
}

/* Fire one scroll event per scroll. Not one scroll event per image. */
var elements = this;
if ("scroll" == settings.event) {
$(settings.container).bind("scroll", function(event) {

var counter = 0;
elements.each(function() {
if ($.abovethetop(this, settings) ||
$.leftofbegin(this, settings)) {
/* Nothing. */
} else if (!$.belowthefold(this, settings) &&
!$.rightoffold(this, settings)) {
$(this).trigger("appear");
} else {
if (counter++ > settings.failurelimit) {
return false;
}
}
});
/* Remove image from array so it is not looped next time. */
var temp = $.grep(elements, function(element) {
return !element.loaded;
});
elements = $(temp);
});
}

this.each(function() {
var self = this;

/* When appear is triggered load original image. */
$(self).one("appear", function() {
if (!this.loaded) {
$("<img alt="" />")
.bind("load", function() {
$(self)
.hide()
.attr("src", $(self).attr("original"))
[settings.effect](settings.effectspeed);
self.loaded = true;
})
.attr("src", $(self).attr("original"));
};
});

/* When wanted event is triggered load original image */
/* by triggering appear. */
if ("scroll" != settings.event) {
$(self).bind(settings.event, function(event) {
if (!self.loaded) {
$(self).trigger("appear");
}
});
}
});

/* Force initial check if images should appear. */
$(settings.container).trigger(settings.event);

return this;

};

/* Convenience methods in jQuery namespace. */
/* Use as $.belowthefold(element, {threshold : 100, container : window}) */

$.belowthefold = function(element, settings) {
if (settings.container === undefined || settings.container === window) {
var fold = $(window).height() + $(window).scrollTop();
} else {
var fold = $(settings.container).offset().top + $(settings.container).height();
}
return fold <= $(element).offset().top - settings.threshold;
};

$.rightoffold = function(element, settings) {
if (settings.container === undefined || settings.container === window) {
var fold = $(window).width() + $(window).scrollLeft();
} else {
var fold = $(settings.container).offset().left + $(settings.container).width();
}
return fold <= $(element).offset().left - settings.threshold; }; $.abovethetop = function(element, settings) { if (settings.container === undefined || settings.container === window) { var fold = $(window).scrollTop(); } else { var fold = $(settings.container).offset().top; } return fold >= $(element).offset().top + settings.threshold + $(element).height();
};

$.leftofbegin = function(element, settings) {
if (settings.container === undefined || settings.container === window) {
var fold = $(window).scrollLeft();
} else {
var fold = $(settings.container).offset().left;
}
return fold >= $(element).offset().left + settings.threshold + $(element).width();
};
/* Custom selectors for your convenience. */
/* Use as $("img:below-the-fold").something() */

$.extend($.expr[':'], {
"below-the-fold" : "$.belowthefold(a, {threshold : 0, container: window})",
"above-the-fold" : "!$.belowthefold(a, {threshold : 0, container: window})",
"right-of-fold" : "$.rightoffold(a, {threshold : 0, container: window})",
"left-of-fold" : "!$.rightoffold(a, {threshold : 0, container: window})"
});
$(function(){
$("img[original]").lazyload({
threshold : 200,effect: "fadeIn"
});

});
})(jQuery); 

 

然后修改图片的路径

例如:<img alt=”" src=”<?php echo $this->getSkinUrl(‘images/co.jpg’) ?>”/>

修改为<img  alt=”"  original=”<?php echo $this->getSkinUrl(‘images/co.jpg’) ?>” src=”……”/>。

后面这个src里的图片是一个1像素的透明gif图片。

这样就可以了,有兴趣的可以尝试下。

原文链接地址:http://www.magentofront-end.com/magentomuban/232

 

时间: 2024-08-04 12:19:38

Magento加速利器——lazyload的相关文章

阿里云HPC--人工智能加速利器

一. 什么是阿里云HPC 阿里云HPC是阿里云高性能计算的简称,有两重含义,一重含义是阿里云高性能计算产品,另一重含义是指阿里云高性能计算团队. 作为产品来讲,是中国第一个在公共云上推出的高性能计算的产品,也是中国首个推出公共云上的Nvidia Maxwell GPU + Intel Broadwell CPU 架构的强强组合的产品,单节点单精度计算能力超过16Tflops,初期提供物理机 + Tesla GPU加速卡形式. 推出阿里云HPC主要基于HPC用户的特点:(1)对高性能计算有永无止境

迅雷会员:让自己&quot;迅&quot;福一整天的4种方法

  下片,找迅雷;下片慢,找谁?当然是迅雷会员!传说中的4M/S的离线下载与高速通道.有种子就能在线看电影的迅雷云播--迅雷会员专治各种不服!下面我们就来看看,迅雷会员让你"迅"福一整天的四种方法! "快"的秘诀:离线下载与高速通道 早上到公司,打开迅雷下电影!身为迅雷会员,我点击"离线下载"与"高速通道".在这两大加速利器之下,上班下片两不耽误! 迅雷会员的下载速度之所以快,主要通过"高速通道"和&quo

英特尔杯PAC全国并行应用挑战赛走进高校暨CMP代码现代化讲座

Parallel Application Challenge(简称PAC)2016,是由教育部计算机类专业教学指导委员会.中国计算机学会高性能计算专业委员会(CCF TCHPC)联合英特尔(中国)有限公司共同主办,北京并行科技股份有限公司承办,国家超级计算广州中心协办的成为全国范围内(含大陆.香港.澳门.台湾)展开的最大规模并行应用挑战赛. 自2013年起,PAC经过三届赛事的成功举办,"高性能计算产业.学校.社会企业三方合作的生态系统"渐趋成型.以"问鼎巅峰.同心致远&qu

盘点:国内外企业级服务领域的“准独角兽”

自2014年以来,中国企业级服务市场规模呈现井喷式增长,年均增长率超过60%.2014年国内企业级服务领域融资项目数较上年增长超过两倍,2015年前三季度获得融资的B2B企业就超过200家,完全超过2014年全年融资项目数.目前美国上市的63家SAAS公司中,31家市值超过10亿美元,总市值超过2000亿美元.企业级服务的春天确实到来了!我们这篇文章试图从没有上市的企业级服务中盘点出各领域"准独角兽"公司. 国外B2B服务"准独角兽" 1.云通信公司Twilio 估

英特尔+Ceph加速企业存储现代化的有效利器

 2017年6月10日,北京--在英特尔公司的大力支持下,2017 Ceph Day再次来到北京,旨在为中国企业软件开发人员搭建一个了解.学习和交流开源存储技术的平台,并进一步推进全球最火热的开源分布式存储项目Ceph在中国市场的技术创新与应用发展.活动上,包括英特尔公司软件与服务事业部副总裁兼系统技术和优化部门总经理Michael Greene在内的技术专家.合作伙伴.最终用户莅临现场,并针对Ceph技术的创新.社区与生态系统的建设,以及在中国市场的落地应用等内容进行了分享与探讨. 2017

Achronix :嵌入式FPGA IP成SoC加速新利器

<企业网D1Net>10月11日(北京)Achronix Semiconductor公司今日宣布:推出可集成至客户系统级芯片(SoC)中的Speedcore 嵌入式FPGA(embedded FPGA ,eFPGA)知识产权(IP)产品,并即刻开始向客户供货.Speedcore是专为计算和网络加速应用而设计.Speedcore eFPGA产品使用Achronix成熟的.经过验证的ACE软件设计工具.据企业网D1Net记者了解,利用Speedcore IP产品,客户可以针对其应用来定制最佳的芯片

经典高速兼得 使用好迅雷四重加速通道

  迅雷是我们的下载利器,新版本的发布总给我们带来更多的实用新功能.迅雷之所以成为我们的下载标配,是因为它拥有智能下载技术,能够用最少的时间.最快的速度获得我们想要的资源.而这次新版本的发布,则增加了"下载通道"功能,它可以将智能加速的信息显示在区块之中,让我们对于智能加速情况一目了然.尽收眼底!除此之外,新版本迅雷还优化了磁力链接,提升了获得取种成功率,并优化了迅雷看看缓冲速度,同时还降低了内存占用.本文将就这些功能进行一一解析,以便于我们的理解,并更好地使用它. 一.四重通道 高速

图片的赖加载(lazyLoad)

懒加载的意义(在线demo预览) 尽管很多公司的网页都有一些限制,比如页面的最大的图片大小不得大于50k,也有很多图片优化工具fis3.gulp等等,但是如果图片太多还是会影响页面的加载速度,快则几十秒慢则几十分钟,这样会导致用户流失. 图片的加载对页面的加载速度有很大影响!!所以,对于图片过多的页面,为了加速页面加载速度,所以很多时候我们需要将页面内未出现在可视区域内的图片先不做加载, 等到滚动到可视区域后再去加载.这样子对于页面加载性能上会有很大的提升,也提高了用户体验,即图片赖加载~ 原理

magento -- 开发必备插件一

  名称:    Developer Toolbar for Magento Extension Key:magento-community/HM_DeveloperToolbar 网址:    http://www.magentocommerce.com/module/2271/developer-toolbar 介绍:    在前台页面底部生成一条工具栏,可一键开启和关闭前后台模板提示,开启和关闭在线翻译,清空缓存等等,可谓magento开发头号利器.Enjoy It!