Yslow cookie-free 实用到ecshop中把商品图片分离到子域名以加速页面显示的方法

YSlow给如何提高网页效率和优化网站性能提供了22条建议,其中有一条是关于域名的:Use cookie-free domains。

使用 cookie-free domains 有什么好处呢?当用户浏览器发送一个静态文件,如图片image、CSS样式表文件时会同时发送同一个域名(或二级域名)下的cookies,但是网站服务器对发送过来的cookies完全不予理会,因此这些没用的cookies白白浪费了网站带宽,影响网站加载速度和网页性能表现。YSlow建议为了解决这个问题,就可以通过使用 cookie-free domains 的方法来做优化,从而提高网页效率。

在使用ecshop做商店时,大量的图片是避免不了的。为了解决同域下浏览器下载的线程的限制,我们有必要把ecshop里上传的图片分离到另一个域名下。当前我采用产品ID的最后一个小数除以2取整来划分不同的子域来,这样在页面被浏览时加载图片可以更多同步线程下载到浏览器端以加速显示。


下面是我修改ecshop的方法:

在/includes/lib_common.php中大约2774行,找到下面代码,增加红色部位即可。


/**

 * 重新获得商品图片与商品相册的地址

 *

 * @param int $goods_id 商品ID

 * @param string $image 原商品相册图片地址

 * @param boolean $thumb 是否为缩略图

 * @param string $call 调用方法(商品图片还是商品相册)

 * @param boolean $del 是否删除图片

 *

 * @return  string   $url

 */

function get_image_path($goods_id, $image='', $thumb=false, $call='goods', $del=false){

    $url = empty($image) ? $GLOBALS['_CFG']['no_picture'] : $image;

    $url = str_replace('images/','http://pic'.floor(substr($goods_id,-1)/2).'.digicake.cn/',$url); //Paul增加的

    return $url;

}

你可能感兴趣的:(图片,ecshop,Yslow,子域名,cookie-free)