现在的位置: 网页制作教程网站制作教程 >正文
asp语言高级教程

asp利用cookies的方式实现用户浏览商品的浏览记录

发表于2014/10/15 网站制作教程 1条评论 ⁄ 热度 3,629℃

近来看到不少B2C网站都有浏览记录的展现,就是某一客户端访问商品后,会自动添加到浏览记录里,这样更好地增加了用户体验。今天写了一段代码来实现这功能。将下面代码保存到recent.asp中,在需要的页面中include进来,然后调用里面的方法来操作cookies。

asp利用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
%>

以上就是全部代码,大家如在使用过程中遇到问题,可以在下面留言给我。

  • 我是一颗雷

    我用到我的网站上了,很不错哦