不少时候咱们在电商网站几乎都有看到相似的功能,特别是一些购物网站均设计有浏览历史或者看过该咚咚的人还浏览了相似其余什么咚咚的。 php
实现的语言(不限于php)和方法是多样的。就我我的而言,比较喜欢将咚咚存储在Server端不该存储在Client端,至于为何呢,立刻分析下吧。 数组
电商网店中ec是比较经典的一个例子了,那先来看看它的实现方式吧(存放在客户端的) cookie
<?php /* 记录浏览历史 */ if (!empty($_COOKIE['ECS']['history'])) { $history = explode(',', $_COOKIE['ECS']['history']); array_unshift($history, $goods_id); $history = array_unique($history); while (count($history) > $_CFG['history_number']) { array_pop($history); } setcookie('ECS[history]', implode(',', $history), gmtime() + 3600 * 24 * 30); } else { setcookie('ECS[history]', $goods_id, gmtime() + 3600 * 24 * 30); } ?>
大概就是看客户端cookie里面存不存在历史记录,没有就压进入数组前面,控制历史数量。 网站
这种方式有必定的弊端就是严重依赖客户端,一旦客户端禁用cookie,该功能无论你作的再牛逼,sorry,失效(包括好久之前的360buy啦),还有就是换作不一样用户登陆时,明明刚刚注册的新用户进入查看咚咚底层页时也有浏览历史,这显然是不合理的。 spa
另外一方面,存放在服务端,数据真实,不只下降了客户端的依赖性,还有利于数据挖掘分析权重比较,从而实现相似的其余功能(足迹/推荐/热销...)
最后但愿朋友们多多指正. 设计