用ASP編程實(shí)現(xiàn)網(wǎng)絡(luò)內(nèi)容快速查找

2010-08-28 10:51:35來源:西部e網(wǎng)作者:

  有一天我突發(fā)奇想,要是我每到一個(gè)網(wǎng)站,那里都能立刻調(diào)出我需要看的信息,那豈非美妙得很。接下來我想更深入地考慮這個(gè)問題,坐到椅子上拿一支鉛筆,卻不知道自己寫什么。如此一來,我還是得著手對付代碼它們。

  我的朋友開了一個(gè)小型站點(diǎn),原本是我設(shè)計(jì)的。這是個(gè)檢驗(yàn)我想法的好平臺(tái)。所以我寫出代碼,上傳了文件。真叫人興奮,程序工作起來煞是圓滿,同時(shí)也證明我的想法的確不錯(cuò)。

  以前看過一些網(wǎng)絡(luò)使用者傾向報(bào)告,其中有一個(gè)規(guī)律給我印象很深。說是大多數(shù)用戶如果在三次點(diǎn)擊內(nèi)無法找到自己需要的內(nèi)容,就會(huì)立刻離開該站點(diǎn)。我的代碼就可以針對這個(gè)問題,保險(xiǎn)用戶只要點(diǎn)一次鼠標(biāo)就找到目標(biāo)。在我的例子里,假設(shè)有個(gè)用戶上了Yahoo,檢索關(guān)鍵字為Fireplace Accessories(飛行器材配件)。在給出的結(jié)果里,他來到我朋友的站點(diǎn),將看到"你正在搜索Fireplace Accessories"等字樣的畫面。接著他會(huì)按照網(wǎng)站上的提示,直接到想要去的頁面。

  你要作的第一步,是在global.asa文件中建立一個(gè)初始變量,放置在你的Sub Session_onStart()程序中。

  Sub Session_onStart()
  Referer = Trim(Request.ServerVariables("HTTP_REFERER"))
  If Referer = "" Then
  Referer = "None"
  End If
  Session("Referer") = Referer
  End Sub


  接著我們來著手看看如何完成程序的主要功能。

  因?yàn)閡rl經(jīng)過了編碼,所以首先要把來訪者主機(jī)的指向數(shù)據(jù)還原成對我們有用的東西。建立一個(gè)ASP頁面,叫它decode.asp,是我們程序的主干。第一個(gè)功能是要對編碼過的指向頭進(jìn)行解碼。程序有點(diǎn)長,而且很直接,沒有什么轉(zhuǎn)彎抹角,如果你嫌麻煩,不如到

  源代碼

  第二件要作的事情是:從URL頭信息里分離出查詢部分--這個(gè)才是我們需要的。

  '從指向URL中分離查詢字段。
  Function isProduct(pStr)
  If pStr <> "" And lCase(pStr) <> "none" Then
  '向后搜索字段
  temp = inStrRev(pStr, "/")
  '得到目錄分離的位置
  tempStr = Right(pStr, temp)
  '得到有關(guān)數(shù)據(jù)長度
  temp2 = Len(pStr)
  '得到查詢數(shù)據(jù)行
  pStr = Mid(pStr, temp, temp2)
  '設(shè)定返回功能的值
  isProduct = pStr
  Else
  isProduct = ""
  End If
  End Function


  接著是要確立查找的明確標(biāo)準(zhǔn)。為達(dá)到這個(gè)目的,建立兩個(gè)靜態(tài)空間"指?查找指向數(shù)據(jù)

  Function Finder(byRef prodList, byVal refList)
  '模糊查詢
  refList = lCase(refList)
  ' 通過指針循環(huán)查找匹配字段
  For i = 0 To uBound(prodList) - 1
  If inStr(refList, lCase(prodList(i, 0))) Then
  '找到匹配
  tHolder = tHolder & "Are You looking For " _
  & "" _
  & prodList(i, 0) & "
  "
  End If
  '第二次循環(huán)
  Next
  '返回結(jié)果
  Finder = tHolderEnd Function


  通過一個(gè)inclue,把我們做好的decode.asp放到需要此功能的任何頁面,大功告成啦。

  具體如下:

  '如果指向頭不為空,調(diào)出此功能If lCase(Session("Referer")) <> "none" OR Session("Referer") <> "" Then' 解析指向數(shù)據(jù) Response.Write vbCrLf & "
  " _ & Finder(pArray, URLDecode(isProduct(Session("Referer")))) _ & "
  " & vbCrLf
  End If

贊助商鏈接: