近来看到不少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





















