天天看点

magento -- 推荐插件 -- 智能版Js和Css合并 --Lesti::Merge(Smart Merging of Js and Css)

名称:   lesti::merge(smart merging of js and css)

extension key:http://connect20.magentocommerce.com/community/lesti_merge

网址:    http://www.magentocommerce.com/magento-connect/lesti-merge-2265.html

介绍:   基于magento原生的合并js和css功能,提供更聪明更智能的js和css合并方案,可以根据 layout-handle自动给需要合并的js和css分组,以原生1.7.0.2为例,启用原生的合并js设置后,进入商品详情页,加载的是一个大小465kb的合并后的js

magento -- 推荐插件 -- 智能版Js和Css合并 --Lesti::Merge(Smart Merging of Js and Css)
magento -- 推荐插件 -- 智能版Js和Css合并 --Lesti::Merge(Smart Merging of Js and Css)
magento -- 推荐插件 -- 智能版Js和Css合并 --Lesti::Merge(Smart Merging of Js and Css)

而如果同时打开插件提供的智能合并设置,商品详情页,加载的是两个合并后的js,两个加起来的大小是465kb

magento -- 推荐插件 -- 智能版Js和Css合并 --Lesti::Merge(Smart Merging of Js and Css)
magento -- 推荐插件 -- 智能版Js和Css合并 --Lesti::Merge(Smart Merging of Js and Css)
magento -- 推荐插件 -- 智能版Js和Css合并 --Lesti::Merge(Smart Merging of Js and Css)

区别在于,第一种情况,因为商品列表页和详情页头部加载的外置js不同,根据原生合并的原理,需要各自生成一个合并后的js文件,也就是说,从列表页进入详情页,这个465kb的js文件需要重新加载。第二种情况,虽然表面上看起来需要加载两个js文件,多了一次请求数,但因为通过智能合并,会发现360kb的那个js跟列表页使用的合并后js是同一个,也就是说在用户从列表页进入详情页时,浏览器已经缓存过了这个360kb的js文件,详情页需要重新加载的只有那个105kb的js文件,事实上的效率要高于第一种情况。

更详细的分析见上一篇博客

:why you shouldn't merge javascript in magento

继续阅读