国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁(yè) > 網(wǎng)站 > 建站經(jīng)驗(yàn) > 正文

優(yōu)化ecshop加快ecshop首頁(yè)訪問(wèn)速度

2024-04-25 20:43:29
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

假如ECshop的產(chǎn)品數(shù)到達(dá)幾萬(wàn),十幾萬(wàn)的時(shí)分,假如主頁(yè)沒(méi)有緩存,初次拜訪的時(shí)分,你會(huì)發(fā)現(xiàn)其慢無(wú)比,緣由即是清空了Cache后或許沒(méi)有Cache的情況下,ECshop會(huì)Bulid一些Cache數(shù)據(jù),致使拜訪很慢,但咱們有時(shí)分后臺(tái)修改類(lèi)目或許別的的,經(jīng)常會(huì)觸發(fā)清空Cache,所以主頁(yè)初次拜訪也成了疑問(wèn)。

在大數(shù)據(jù)量的情況下,影響主頁(yè)速度最大的即是引薦的Best、Hot、New Item的數(shù)據(jù)Bulid,它會(huì)把一切的復(fù)合條件的產(chǎn)品都會(huì)讀一遍,然后存到/temp/static_caches/recommend_goods.php這個(gè)文件下,有時(shí)分會(huì)到達(dá)10M或許數(shù)十M,本來(lái)咱們并不需要一切的產(chǎn)品都Bulid進(jìn)入,由于這個(gè)緩存只用在主頁(yè)和Category頁(yè)的調(diào)用,有點(diǎn)糟蹋。(P.S 由于Category拜訪本來(lái)就比較慢,所以我把暢銷(xiāo)產(chǎn)品在Category的展現(xiàn)屏蔽了,所以只剩主頁(yè)調(diào)用)

主頁(yè)展現(xiàn)的時(shí)分,三種類(lèi)型Best、Hot、New只展現(xiàn)10個(gè)產(chǎn)品(我沒(méi)有挑選展現(xiàn)多個(gè)類(lèi)目),所以這個(gè)上面有很大的優(yōu)化空間。

翻開(kāi)include目錄下的lib_goods.php文件,找到function get_recommend_goods() 函數(shù),初始的大概是

[php]

function get_recommend_goods($type = '', $cats = '')

{

if (!in_array($type, array('best', 'new', 'hot')))

{

return array();

}

//取不同推薦對(duì)應(yīng)的商品

static $type_goods = array();

if (empty($type_goods[$type]))

{

//初始化數(shù)據(jù)

$type_goods['best'] = array();

$type_goods['new'] = array();

$type_goods['hot'] = array();

$data = read_static_cache('recommend_goods');

if ($data === false)

{

$sql = 'SELECT g.goods_id, g.is_best, g.is_new, g.is_hot, g.is_promote, b.brand_name,g.sort_order ' .

' FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g ' .

' LEFT JOIN ' . $GLOBALS['ecs']->table('brand') . ' AS b ON b.brand_id = g.brand_id ' .

' WHERE g.is_on_sale = 1 AND g.is_alone_sale = 1 AND g.is_delete = 0 AND (g.is_best = 1 OR g.is_new =1 OR g.is_hot = 1)'.

' ORDER BY g.sort_order, g.last_update DESC';

$goods_res = $GLOBALS['db']->getAll($sql);

//定義推薦,最新,熱門(mén),促銷(xiāo)商品

$goods_data['best'] = array();

$goods_data['new'] = array();

$goods_data['hot'] = array();

$goods_data['brand'] = array();

if (!empty($goods_res))

{

foreach($goods_res as $data)

{

if ($data['is_best'] == 1)

{

$goods_data['best'][] = array('goods_id' => $data['goods_id'], 'sort_order' => $data['sort_order']);

}

if ($data['is_new'] == 1)

{

$goods_data['new'][] = array('goods_id' => $data['goods_id'], 'sort_order' => $data['sort_order']);

}

if ($data['is_hot'] == 1)

{

$goods_data['hot'][] = array('goods_id' => $data['goods_id'], 'sort_order' => $data['sort_order']);

}

if ($data['brand_name'] != '')

{

$goods_data['brand'][$data['goods_id']] = $data['brand_name'];

}

}

}

write_static_cache('recommend_goods', $goods_data);

}

else

{

$goods_data = $data;

}

$time = gmtime();

$order_type = $GLOBALS['_CFG']['recommend_order'];

//按推薦數(shù)量及排序取每一項(xiàng)推薦顯示的商品 order_type可以根據(jù)后臺(tái)設(shè)定進(jìn)行各種條件顯示

static $type_array = array();

$type2lib = array('best'=>'recommend_best', 'new'=>'recommend_new', 'hot'=>'recommend_hot');

if (empty($type_array))

{

foreach($type2lib as $key => $data)

{

if (!empty($goods_data[$key]))

{

$num = get_library_number($data);

$data_count = count($goods_data[$key]);

$num = $data_count > $num ? $num : $data_count;

if ($order_type == 0)

{

//usort($goods_data[$key], 'goods_sort');

$rand_key = array_slice($goods_data[$key], 0, $num);

foreach($rand_key as $key_data)

{

$type_array[$key][] = $key_data['goods_id'];

}

}

else

{

$rand_key = array_rand($goods_data[$key], $num);

if ($num == 1)

{

$type_array[$key][] = $goods_data[$key][$rand_key]['goods_id'];

}

else

{

foreach($rand_key as $key_data)

{

$type_array[$key][] = $goods_data[$key][$key_data]['goods_id'];

}

}

}

}

else

{

$type_array[$key] = array();

}

}

}

//取出所有符合條件的商品數(shù)據(jù),并將結(jié)果存入對(duì)應(yīng)的推薦類(lèi)型數(shù)組中

$sql = 'SELECT g.goods_id, g.goods_name, g.goods_name_style, g.market_price, g.shop_price AS org_price, g.promote_price, ' .

"IFNULL(mp.user_price, g.shop_price * '$_SESSION[discount]') AS shop_price, ".

"promote_start_date, promote_end_date, g.goods_brief, g.goods_thumb, g.goods_img, RAND() AS rnd " .

'FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g ' .

"LEFT JOIN " . $GLOBALS['ecs']->table('member_price') . " AS mp ".

"ON mp.goods_id = g.goods_id AND mp.user_rank = '$_SESSION[user_rank]' ";

$type_merge = array_merge($type_array['new'], $type_array['best'], $type_array['hot']);

$type_merge = array_unique($type_merge);

$sql .= ' WHERE g.goods_id ' . db_create_in($type_merge);

$sql .= ' ORDER BY g.sort_order, g.last_update DESC';

$result = $GLOBALS['db']->getAll($sql);

foreach ($result AS $idx => $row)

{

if ($row['promote_price'] > 0)

{

$promote_price = bargain_price($row['promote_price'], $row['promote_start_date'], $row['promote_end_date']);

$goods[$idx]['promote_price'] = $promote_price > 0 ? price_format($promote_price) : '';

}

else

{

$goods[$idx]['promote_price'] = '';

}

$goods[$idx]['id'] = $row['goods_id'];

$goods[$idx]['name'] = $row['goods_name'];

$goods[$idx]['brief'] = $row['goods_brief'];

$goods[$idx]['brand_name'] = isset($goods_data['brand'][$row['goods_id']]) ? $goods_data['brand'][$row['goods_id']] : '';

$goods[$idx]['goods_style_name'] = add_style($row['goods_name'],$row['goods_name_style']);

$goods[$idx]['short_name'] = $GLOBALS['_CFG']['goods_name_length'] > 0 ?

sub_str($row['goods_name'], $GLOBALS['_CFG']['goods_name_length']) : $row['goods_name'];

$goods[$idx]['short_style_name'] = add_style($goods[$idx]['short_name'],$row['goods_name_style']);

$goods[$idx]['market_price'] = price_format($row['market_price']);

$goods[$idx]['shop_price'] = price_format($row['shop_price']);

$goods[$idx]['thumb'] = get_image_path($row['goods_id'], $row['goods_thumb'], true);

$goods[$idx]['goods_img'] = get_image_path($row['goods_id'], $row['goods_img']);

$goods[$idx]['url'] = build_uri('goods', array('gid' => $row['goods_id']), $row['goods_name']);

if (in_array($row['goods_id'], $type_array['best']))

{

$type_goods['best'][] = $goods[$idx];

}

if (in_array($row['goods_id'], $type_array['new']))

{

$type_goods['new'][] = $goods[$idx];

}

if (in_array($row['goods_id'], $type_array['hot']))

{

$type_goods['hot'][] = $goods[$idx];

}

}

}

return $type_goods[$type];

}

[/php]

我們思路就是不讀取所有的商品信息,而是Best、Hot、New夠用展示就行了,所以把代碼調(diào)整了一下,限制了Bulid的商品數(shù),去掉了一些我不需要的Join表,當(dāng)然大家不一定要照著我做,我講的都是思路,看自己的實(shí)際情況,要有點(diǎn)程序基本功。

更改后的代碼如下:

[php]

function get_recommend_goods($type = '', $cats = '')

{

if (!in_array($type, array('best', 'new', 'hot')))

{

return array();

}

//取不同推薦對(duì)應(yīng)的商品

static $type_goods = array();

if (empty($type_goods[$type]))

{

//初始化數(shù)據(jù)

$type_goods['best'] = array();

$type_goods['new'] = array();

$type_goods['hot'] = array();

$data = read_static_cache('recommend_goods');

if ($data === false)

{

$sql = 'SELECT g.goods_id, g.sort_order ' .

' FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g ' .

' WHERE (g.is_best = 1)'.

' ORDER BY g.goods_number DESC limit 50';

$goods_res = $GLOBALS['db']->getAll($sql);

$goods_data['best'] = array();

if (!empty($goods_res))

{

foreach($goods_res as $data)

{

$goods_data['best'][] = array('goods_id' => $data['goods_id'], 'sort_order' => $data['sort_order']);

}

}

$sql = 'SELECT g.goods_id, g.sort_order ' .

' FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g ' .

' WHERE (g.is_new = 1 and g.is_best = 0 and g.is_hot = 0)'.

' ORDER BY g.goods_id DESC limit 50';

$goods_res = $GLOBALS['db']->getAll($sql);

$goods_data['new'] = array();

if (!empty($goods_res))

{

foreach($goods_res as $data)

{

$goods_data['new'][] = array('goods_id' => $data['goods_id'], 'sort_order' => $data['sort_order']);

}

}

$sql = 'SELECT g.goods_id, g.sort_order ' .

' FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g ' .

' WHERE (g.is_hot = 1 and g.is_best = 0)'.

' ORDER BY g.goods_number DESC limit 50';

$goods_res = $GLOBALS['db']->getAll($sql);

$goods_data['hot'] = array();

if (!empty($goods_res))

{

foreach($goods_res as $data)

{

$goods_data['hot'][] = array('goods_id' => $data['goods_id'], 'sort_order' => $data['sort_order']);

}

}

write_static_cache('recommend_goods', $goods_data);

}

else

{

$goods_data = $data;

}

$time = gmtime();

$order_type = $GLOBALS['_CFG']['recommend_order'];

//按推薦數(shù)量及排序取每一項(xiàng)推薦顯示的商品 order_type可以根據(jù)后臺(tái)設(shè)定進(jìn)行各種條件顯示

static $type_array = array();

$type2lib = array('best'=>'recommend_best', 'new'=>'recommend_new', 'hot'=>'recommend_hot');

if (empty($type_array))

{

foreach($type2lib as $key => $data)

{

if (!empty($goods_data[$key]))

{

$num = get_library_number($data);

$data_count = count($goods_data[$key]);

$num = $data_count > $num ? $num : $data_count;

if ($order_type == 0)

{

//usort($goods_data[$key], 'goods_sort');

$rand_key = array_slice($goods_data[$key], 0, $num);

foreach($rand_key as $key_data)

{

$type_array[$key][] = $key_data['goods_id'];

}

}

else

{

$rand_key = array_rand($goods_data[$key], $num);

if ($num == 1)

{

$type_array[$key][] = $goods_data[$key][$rand_key]['goods_id'];

}

else

{

foreach($rand_key as $key_data)

{

$type_array[$key][] = $goods_data[$key][$key_data]['goods_id'];

}

}

}

}

else

{

$type_array[$key] = array();

}

}

}

//取出所有符合條件的商品數(shù)據(jù),并將結(jié)果存入對(duì)應(yīng)的推薦類(lèi)型數(shù)組中

$sql = 'SELECT g.goods_id, g.goods_name, g.goods_name_style, g.market_price, g.shop_price AS org_price, g.promote_price, g.shop_price, ' .

"promote_start_date, promote_end_date, g.goods_brief, g.goods_thumb, g.goods_img, RAND() AS rnd " .

'FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g ' .

" ";

$type_merge = array_merge($type_array['new'], $type_array['best'], $type_array['hot']);

$type_merge = array_unique($type_merge);

$sql .= ' WHERE g.goods_id ' . db_create_in($type_merge);

$sql .= ' ORDER BY g.goods_number DESC';

$result = $GLOBALS['db']->getAll($sql);

foreach ($result AS $idx => $row)

{

if ($row['promote_price'] > 0)

{

$promote_price = bargain_price($row['promote_price'], $row['promote_start_date'], $row['promote_end_date']);

$goods[$idx]['promote_price'] = $promote_price > 0 ? price_format($promote_price) : '';

}

else

{

$goods[$idx]['promote_price'] = '';

}

$goods[$idx]['id'] = $row['goods_id'];

$goods[$idx]['name'] = $row['goods_name'];

$goods[$idx]['brief'] = $row['goods_brief'];

$goods[$idx]['brand_name'] = isset($goods_data['brand'][$row['goods_id']]) ? $goods_data['brand'][$row['goods_id']] : '';

$goods[$idx]['goods_style_name'] = add_style($row['goods_name'],$row['goods_name_style']);

$goods[$idx]['short_name'] = $GLOBALS['_CFG']['goods_name_length'] > 0 ?

sub_str($row['goods_name'], $GLOBALS['_CFG']['goods_name_length']) : $row['goods_name'];

$goods[$idx]['short_style_name'] = add_style($goods[$idx]['short_name'],$row['goods_name_style']);

$goods[$idx]['market_price'] = price_format($row['market_price']);

$goods[$idx]['shop_price'] = price_format($row['shop_price']);

$goods[$idx]['thumb'] = get_image_path($row['goods_id'], $row['goods_thumb'], true);

$goods[$idx]['goods_img'] = get_image_path($row['goods_id'], $row['goods_img']);

$goods[$idx]['url'] = build_uri('goods', array('gid' => $row['goods_id']), $row['goods_name']);

if (in_array($row['goods_id'], $type_array['best']))

{

$type_goods['best'][] = $goods[$idx];

}

if (in_array($row['goods_id'], $type_array['new']))

{

$type_goods['new'][] = $goods[$idx];

}

if (in_array($row['goods_id'], $type_array['hot']))

{

$type_goods['hot'][] = $goods[$idx];

}

}

}

return $type_goods[$type];

}

[/php]

這樣改了以后,Bulid的靜態(tài)文件應(yīng)該只有13K左右,速度大大加快。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产91久久久久蜜臀青青天草二| www.香蕉视频在线观看| 亚洲精品天堂在线观看| 99高清免费国产自产拍| 在线视频99| 欧美日韩一区二区三区在线播放| 人人在线视频| 国产乱在线观看视频| 国产日韩欧美第一页| 亚洲国产精华液| 国产在线中文字幕| 国产二区三区在线| 欧美韩日国产| 国产美女视频网站| √8天堂资源地址中文在线| 99在线视频观看| 九九热视频免费在线观看| 天堂中文在线视频| 91精品国产高久久久久久五月天| www.色五月| 国产欧美日韩精品综合| av在线官网| 国产xxxxx| 成人超碰在线| 欧美高清视频| 四虎免费视频| 在线激情网站| ·天天天天操| 国产精品一卡二卡三卡| 一本大道久久a久久精品| 国产一级视频| 国产你懂的在线观看| 牛牛在线精品视频| 亚洲综合激情六月婷婷在线观看| 国产精品久久麻豆| 国产黄色一级电影| 国产爆初菊在线观看免费视频网站 | 日本aⅴ写真网站免费| 中文字幕视频在线| 国产在线日本| 成人欧美日韩| 国产午夜在线观看| 中文字幕有码在线视频| 天天操天天射天天色| 成年网在线观看免费观看网址| 成人精品福利| 国产一级免费黄色片| 国产一级在线观看www色| 中文字幕在线视频免费观看| 国产一区二区在线|播放| 日本中文字幕在线视频| 国产在线资源| 国产精品入口麻豆免费看| 中文字幕视频在线免费| 国产精品剧情一区二区三区| 91中文字幕| 欧美96在线| 国产视频第一区| 在线视频三区| 九九久久久2| 国产三级在线| 四虎成人免费| 国产一级视频| www免费在线观看视频| 中中文字幕av在线| 91午夜视频| 青青草观看免费视频在线| **三级三级97片毛片| 92国产在线视频| 久热国产在线| 97最新国自产拍视频在线完整在线看| 青青草原av在线| 69久久精品| 国产小视频在线观看| 亚洲精品aaaa| 国产a级网站| 五月婷婷在线视频| 青草视频在线播放| 国产成人精品综合网站| 国产毛片在线看| 精品成人免费自拍视频| 在线91av| 成人欧美亚洲| 久草在线视频网| gogo在线高清视频| 在线a人片免费观看视频| 国产三级自拍| 天堂资源最新版在线视频观看免费网 | 国产视频二区| 九九热视频在线观看| 亚洲а∨精品天堂在线| 精品美女调教视频| 尤物视频在线看| 国产剧情在线一区| 六月天色婷婷| 久久香蕉一区| 噜噜噜噜噜在线视频| 欧美日韩亚洲国内综合网| 在线看a视频| www.三级.com| www在线免费观看视频| a级片国产精品自在拍在线播放| 精品视频麻豆入口| av在线播放国产| 欧美性猛交xxxx免费看久久| 麻豆精品永久免费视频| 国产精品一二三区视频| 九九99九九精彩| 国产免费一级片| 国产视频福利| 99福利在线| 欧美婷婷久久五月精品三区| 黄网站在线观看高清免费| 狠狠狠狠狠狠操| 国产区av在线| 日本一卡二卡四卡精品| 国产麻豆视频| 国产a级网站| 久久91精品视频| 国产精品久久久久久福利| 在线播放www| 黄色三级视频在线观看| 中文字幕网在线| 在线伊人免费视频| 欧美性猛交p30| 国产精品黄页网站在线播放免费| 亚洲精品视频区| 午夜av在线免费观看| 国产h在线观看| 久色视频在线观看| 精品视频vs精品视频| 国产在线视频自拍| 99中文字幕一区| 国产精品臀控福利在线观看| 在线观看中文字幕一区| 国产美女福利在线| 在线视频观看国产| 国产精品自产拍在线网站| 精品a在线观看| 国产精品9区| 午夜免费福利在线观看| 久草网在线视频| 四虎成人欧美精品在永久在线| 中文字幕视频在线观看| 激情综合丁香| 碰草在线视频| 亚洲wwwwww| 在线观看精品一区二区三区| 国产三级视频在线| 国产视频一二三区| 中文字幕国产在线| 国产麻豆一区二区三区精品 | 国产精品视频一区麻豆| 开心婷婷激情五月| 小说区乱图片区| 在线免费看黄av| 亚洲欧美久久婷婷爱综合一区天堂| 国产婷婷视频在线| 中文字幕中文字幕在线中高清免费版 | 国产视频三区| 国产永久在线观看| 欧美人成在线观看网站高清| 亚洲天堂视频在线观看免费| 精品入口麻豆传煤| 亚洲男人的天堂成人| av在线官网| 黄网址在线播放免费| 国产乱视频在线观看播放| 中文字幕在线影院| 国产精品欧美韩国日本久久| 国产激情视频网址| 国产呻吟对白刺激无套视频在线| 五月婷婷丁香激情| 国产福利图片| 亚洲免费国产| 天天av综合网| 91亚洲精选| 免费a在线看| 国产写真视频在线观看| 精品国产免费观看一区| 日本福利在线观看| 国产三级视频| 亚洲图区综合| 91av资源在线| 亚洲视频网站在线| 国产精品一区二三区| 国产污视频在线| www.色五月| 国产成人综合美国十次| 日韩黄色成人| 91这里只有精品| 国产女人在线视频| 在线免费观看污| 国产农村av| 欧美视频免费一区二区三区| 国产精品第八页| 欧美xxxx黑人又粗又长| 国产精品久久久久久久久鸭 | 亚洲sss视频| 国产人成精品|