近来看到不少B2C网站都有浏览记录的展现,就是某一客户端访问商品后,会自动添加到浏览记录里,这样更好地增加了用户体验。今天写了一段代码来实现这功能。将下面代码保存到recent.asp中,在需要的页面中include进来,然后调用里面的方法来操作cookies。
recent.asp
<% '================================ '客户端存储的cookie格式如下 'ID,名称,查看时间|ID,名称,查看时间|ID,名称,查看时间 '================================ '生成cookie用的,参数id为产品id,name为产品名称 Function AddCookie(Id,Name) Dim cookieStr:cookieStr=trim(Request.Cookies("view")&"") If cookieStr="" Then'第一次访问 cookieStr=Id&","&Name&","&Now Else Dim Arr,Index:Arr=Split(cookieStr,"|") If UBound(Arr)<2 Then'没有达到3条记录的存储上限制 cookieStr=cookieStr+"|"+Id&","&Name&","&Now'添加新项 Else Index=FindIndex(Arr) '更新最早浏览的记录 Arr(Index)=Id&","&Name&","&Now cookieStr=Arr(0) '生成新的 For i=1 To UBound(Arr) cookieStr=cookieStr&"|"&Arr(i) Next End If End If '生成cookie Call OutCookie cookieStr End Function '查找最早一条浏览记录的下标,以便更新 Function FindIndex(Arr) Dim i,Index,FirstDate:FirstDate=CDate(Split(Arr(0),",")(2))'获取第一条记录的浏览时间 Dim TempDate,Index=0 For i=1 To UBound(Arr)'注意这里从1开始循环 TempDate=CDate(Split(Arr(i),",")(2)) If TempDate<FirstDate'有比此条记录更加早的 FirstDate=TempDate Index=i End If Next FindIndex=Index End Function '生成cookie Sub OutCookie(CookieStr) Response.Cookies("view")=CookieStr Response.Cookies("view").Expires=DateAdd("m",1,Now)'有效期限为1个月 End Function '读cookie生成浏览列表 Sub ReadCookie Dim cookieStr:cookieStr=trim(Request.Cookies("view")&"") If cookieStr="" Then Response.Write "没有以前的浏览记录!" Else Dim Arr,TempArr:Arr=Split(cookieStr,"|") For i=0 To UBound(Arr) TempArr=Split(Arr,",") Response.Write "<a href='查看详细信息页面.asp?id="&TempArr(0)&"'>"&TempArr(1)&"</a>" Next End If End Sub %>
以上就是全部代码,大家如在使用过程中遇到问题,可以在下面留言给我。
声明:如需转载,请注明来源于www.webym.net并保留原文链接:http://www.webym.net/jiaocheng/105.html