怎么实现显示用户浏览过的历史记录
类别:编程学习 浏览量: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();
您可能感兴趣
- nginx keepalived配置(Nginx+Keepalived实现Web服务器高可用)
- html5socket源码(五分钟学会HTML5的WebSocket协议)
- web服务开发技术(Web服务器识别技术揭秘)
- 如何认识服务器(关于Nginx、Apache、Tomcat三个WEB服务器的区别和认知)
- localstorage底层技术(浅谈Web Storage API的使用)
- IIS8.0安装配置完整图文教程 IIS8.0的Web Server asp设置(IIS8.0安装配置完整图文教程 IIS8.0的Web Server asp设置)
- idea配合tomcat进行web开发(IDEA2021 tomcat10 servlet 较新版本踩坑问题)
- WebStorm前端开发工具
- 创建一个简单的Web API 项目
- webpack配置项流程先后顺序(Webpack中publicPath使用详解)
- 移动端web字体
- app怎样像web一样调试(详解webapp页面滚动卡顿的解决办法)
- web服务器软件的知识体系(七款主流WEB服务器软件点评)
- web服务器主要有哪些(浅谈Web服务器和应用服务器的区别)
- html5 webrtc技术详解(Html5 webRTC简单实现视频调用的示例代码)
- web图片优化方法(网站性能延迟加载图像的五种技巧小结)
- 点赞 禹州苌庄正式撤乡建镇 未来发展不可估量(禹州苌庄正式撤乡建镇)
- 它荣获 中国生态魅力镇 称号 就在咱们禹州,一起来看看(中国生态魅力镇)
- 真牛 禹州将建成中等城市(禹州将建成中等城市)
- 被骂欺师灭祖,与郭德纲公开叫板,何云伟改名何沄伟,开始画画了(与郭德纲公开叫板)
- 相声转行影帝,被何晴抛弃,甩10年女友闪婚生子,刘威不靠谱情史(相声转行影帝被何晴抛弃)
- 岳云鹏不说相声,改行演员了 网友 快回来说相声(岳云鹏不说相声)
热门推荐
- dedecms用什么来调用文章描述(织梦DEDECMS文档关键词频率不能修改的解决方法)
- mac怎么用ftp传文件(Mac自带FTP工具怎么使用 Mac自带FTP工具用法教程)
- sql server数据库权限(SQL Server中通用数据库角色权限的处理详解)
- 云计算是一种服务的概念(云服务的意思,云服务是云计算吗?)
- 宝塔试用网站再安装nginx不起作用(宝塔面板Nginx防恶意解析图文教程)
- docker容器设置网站(docker容器中布置静态网站的实现)
- 运维堡垒机怎么搭建(堡塔云控平台添加服务器受控端图文教程)
- win7如何搭建php环境(阿里云Win2016安装Apache和PHP环境图文教程)
- thinkphp5表单系统(thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例)
- jquery的each的用法
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9