怎么实现显示用户浏览过的历史记录
类别:编程学习 浏览量:2561
时间:2013-8-16 怎么实现显示用户浏览过的历史记录
怎么实现显示用户浏览过的历史记录主要的思路是:当用户浏览一个网页的时候写入cookie,再统一把cookie读出来就是历史记录了。其实现步骤为:
1.创建历史记录的实体类
public class LastProducts
{
private int _productid;
private int _categoryid;
private string _imgsrc;
private string _productname;
public LastProducts(int id,int typeid,string imgsrc,string restorename)
{
_productid = id;
_categoryid = typeid;
_imgsrc = imgsrc;
_productname = restorename;
}
public int ProductId
{
get { return _productid; }
}
public int CategoryId
{
get { return _categoryid; }
}
public string ImgSrc
{
get { return _imgsrc; }
}
public string ProductName
{
get { return _productname; }
}
}
2.定义存储cookies的方法
public void HistoryRestore(string cookieName,int objectID)
{
HttpRequest Request = HttpContext.Current.Request;
HttpResponse Response = HttpContext.Current.Response;
if (Request.Cookies[cookieName] != null)
{
HttpCookie tempCurBuyerList = Request.Cookies[cookieName];
string tempstr = tempCurBuyerList.Value;
if (tempstr.IndexOf(",") > 0)
{
string[] sArray = tempstr.Split(',');
bool hasthis = false;
foreach (string s in sArray)
{
if (s == objectID.ToString())
{
hasthis = true;
break;
}
else
{
hasthis = false;
}
}
if (!hasthis) //如果没有ID,则加入
{
if (sArray.Length > 3) //3为存储浏览记录数的数量,实际数量为7
{
// 超过数量,去掉最先入队的元素
tempstr = tempstr.Substring(0, tempstr.LastIndexOf(","));
}
// 队列
tempstr = objectID.ToString() + "," + tempstr;
}
}
else
{
//tempstr += "," + objectID.ToString();
if (tempstr != objectID.ToString())
{
tempstr = objectID.ToString() + "," + tempstr;
}
}
tempCurBuyerList.Value = tempstr;
tempCurBuyerList.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(tempCurBuyerList);
//或者 Response.Cookies[cookieName].Value = tempstr;
}
else
{
HttpCookie addToCookies = new HttpCookie(cookieName);
addToCookies.Value = objectID.ToString();
addToCookies.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(addToCookies);
}
}
3.读取cookies存储数据
public List<LastProducts> GetLastProducts()
{
HttpRequest Request = HttpContext.Current.Request;
List<LastProducts> list = null;
if (Request.Cookies["restoreid"] != null)
{
HttpCookie tempCurBuyerList = Request.Cookies["restoreid"];
string[] strArr = tempCurBuyerList.Value.Split(',');
list = new List<LastProducts>();
foreach (string s in strArr)
{
ShopProduct model = dal.GetProById(int.Parse(s)); //商品的实体类
if (model != null)
{
list.Add(new Model.Shop.LastProducts(model.ProductID, model.CategoryID, model.ImageHref, model.Name));
}
}
}
return list;
}
4.在用户浏览某产品时记录到cookies中:
HistoryRestore("restoreid",productId);
5.数据源的绑定
Repeater1.DataSource = GetLastProducts();
Repeater1.DataBind();
您可能感兴趣
- iis服务器如何搭建一个网站(配置IIS网站web服务器的安全策略配置解决方案)
- ASP.NET中Web.config文件的配置
- web前端字体和图标(web字体加载方案优化小结)
- 移动端web字体
- 移动web跨端开发领域(Web移动端布局那些事)
- nodejs实现websocket服务端(Node.js+express+socket实现在线实时多人聊天室)
- apache服务配置详解(Apache Web服务器的完全安装指南)
- 如何认识服务器(关于Nginx、Apache、Tomcat三个WEB服务器的区别和认知)
- 搭建lamp平台并测试(浅谈Web服务器的构架:LAMP LNMP以及LLMP)
- 属于web服务器的有哪些(web服务器有几种类型?)
- tomcat处理高并发请求(Tomcat打破双亲委派机制实现隔离Web应用的方法)
- apache怎么配置服务器(Apache2 WEB服务器的配置步骤分享)
- 静态web服务器nginx(WEB服务器该选择 Apache 还是 Nginx?)
- web.config自定义配置节点,将多个节点合并
- pythondjango搭建web(PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上)
- 多个web.config文件的加载顺序
- 二胎家庭老大爱闹情绪,用这招很有效(二胎家庭老大爱闹情绪)
- 一个30岁男人外遇失败的全过程(一个30岁男人外遇失败的全过程)
- 《无敌破坏王2》 不聊彩蛋,聊聊我从动画里看到的现实那些事儿(无敌破坏王2不聊彩蛋)
- 《寄生虫》 三观不正 人类悲欢从来不相通,感同身受也并非本能(寄生虫三观不正)
- 这部动漫中的女孩子,可比101女孩更加励志(这部动漫中的女孩子)
- 《白狐的人生》热拍 贾征宇偶像包袱难自弃 图(白狐的人生热拍)
热门推荐
- html5怎么设置红色(详解HTML5如何使用可选样式表为网站或应用添加黑暗模式)
- python selenium用法详解(python selenium执行所有测试用例并生成报告的方法)
- pythonmatplotlib条形图动画(Python Matplotlib实现三维数据的散点图绘制)
- python opencv图像合并(Python3+OpenCV2实现图像的几何变换平移、镜像、缩放、旋转、仿射)
- 简简单单教你用python写个游戏(python3 pygame实现接小球游戏)
- php代码最可靠的加密方式(php DES加密算法实例分析)
- pjs计算方式(JS代码编译器Monaco使用方法)
- windows server 2008r2怎么安装(Windows Server2008 R2 MVC 环境安装配置教程)
- 微信小程序开发完整操作流程(微信小程序开发之组件设计规范)
- SQL Server中如何将数据导出为XML或Json文件
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9