實(shí)例分析之用ASP編程實(shí)現(xiàn)網(wǎng)絡(luò)內(nèi)容快速查找的代碼
更新時(shí)間:2007年03月22日 00:00:00 作者:
有一天我突發(fā)奇想,要是我每到一個(gè)網(wǎng)站,那里都能立刻調(diào)出我需要看的信息,那豈非美妙得很。接下來(lái)我想更深入地考慮這個(gè)問(wèn)題,坐到椅子上拿一支鉛筆,卻不知道自己寫(xiě)什么。如此一來(lái),我還是得著手對(duì)付代碼它們。
我的朋友開(kāi)了一個(gè)小型站點(diǎn),原本是我設(shè)計(jì)的。這是個(gè)檢驗(yàn)我想法的好平臺(tái)。所以我寫(xiě)出代碼,上傳了文件。真叫人興奮,程序工作起來(lái)煞是圓滿,同時(shí)也證明我的想法的確不錯(cuò)。
以前看過(guò)一些網(wǎng)絡(luò)使用者傾向報(bào)告,其中有一個(gè)規(guī)律給我印象很深。說(shuō)是大多數(shù)用戶如果在三次點(diǎn)擊內(nèi)無(wú)法找到自己需要的內(nèi)容,就會(huì)立刻離開(kāi)該站點(diǎn)。我的代碼就可以針對(duì)這個(gè)問(wèn)題,保險(xiǎn)用戶只要點(diǎn)一次鼠標(biāo)就找到目標(biāo)。在我的例子里,假設(shè)有個(gè)用戶上了Yahoo,檢索關(guān)鍵字為Fireplace Accessories(飛行器材配件)。在給出的結(jié)果里,他來(lái)到我朋友的站點(diǎn),將看到"你正在搜索Fireplace Accessories"等字樣的畫(huà)面。接著他會(huì)按照網(wǎng)站上的提示,直接到想要去的頁(yè)面。
你要作的第一步,是在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
接著我們來(lái)著手看看如何完成程序的主要功能。
因?yàn)閡rl經(jīng)過(guò)了編碼,所以首先要把來(lái)訪者主機(jī)的指向數(shù)據(jù)還原成對(duì)我們有用的東西。建立一個(gè)ASP頁(yè)面,叫它decode.asp,是我們程序的主干。第一個(gè)功能是要對(duì)編碼過(guò)的指向頭進(jìn)行解碼。程序有點(diǎn)長(zhǎng),而且很直接,沒(méi)有什么轉(zhuǎn)彎抹角,如果你嫌麻煩,不如到www.popunet.com的"網(wǎng)蟲(chóng)進(jì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ù)長(zhǎng)度
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)
' 通過(guò)指針循環(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
通過(guò)一個(gè)inclue,把我們做好的decode.asp放到需要此功能的任何頁(yè)面,大功告成啦。
具體如下:
'如果指向頭不為空,調(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
我的朋友開(kāi)了一個(gè)小型站點(diǎn),原本是我設(shè)計(jì)的。這是個(gè)檢驗(yàn)我想法的好平臺(tái)。所以我寫(xiě)出代碼,上傳了文件。真叫人興奮,程序工作起來(lái)煞是圓滿,同時(shí)也證明我的想法的確不錯(cuò)。
以前看過(guò)一些網(wǎng)絡(luò)使用者傾向報(bào)告,其中有一個(gè)規(guī)律給我印象很深。說(shuō)是大多數(shù)用戶如果在三次點(diǎn)擊內(nèi)無(wú)法找到自己需要的內(nèi)容,就會(huì)立刻離開(kāi)該站點(diǎn)。我的代碼就可以針對(duì)這個(gè)問(wèn)題,保險(xiǎn)用戶只要點(diǎn)一次鼠標(biāo)就找到目標(biāo)。在我的例子里,假設(shè)有個(gè)用戶上了Yahoo,檢索關(guān)鍵字為Fireplace Accessories(飛行器材配件)。在給出的結(jié)果里,他來(lái)到我朋友的站點(diǎn),將看到"你正在搜索Fireplace Accessories"等字樣的畫(huà)面。接著他會(huì)按照網(wǎng)站上的提示,直接到想要去的頁(yè)面。
你要作的第一步,是在global.asa文件中建立一個(gè)初始變量,放置在你的Sub Session_onStart()程序中。
復(fù)制代碼 代碼如下:
Sub Session_onStart()
Referer = Trim(Request.ServerVariables("HTTP_REFERER"))
If Referer = "" Then
Referer = "None"
End If
Session("Referer") = Referer
End Sub
接著我們來(lái)著手看看如何完成程序的主要功能。
因?yàn)閡rl經(jīng)過(guò)了編碼,所以首先要把來(lái)訪者主機(jī)的指向數(shù)據(jù)還原成對(duì)我們有用的東西。建立一個(gè)ASP頁(yè)面,叫它decode.asp,是我們程序的主干。第一個(gè)功能是要對(duì)編碼過(guò)的指向頭進(jìn)行解碼。程序有點(diǎn)長(zhǎng),而且很直接,沒(méi)有什么轉(zhuǎn)彎抹角,如果你嫌麻煩,不如到www.popunet.com的"網(wǎng)蟲(chóng)進(jìn)修班"上面找到本文,用"拷貝/粘貼"大法吧。
源代碼
第二件要作的事情是:從URL頭信息里分離出查詢部分--這個(gè)才是我們需要的。
復(fù)制代碼 代碼如下:
'從指向URL中分離查詢字段。
Function isProduct(pStr)
If pStr <> "" And lCase(pStr) <> "none" Then
'向后搜索字段
temp = inStrRev(pStr, "/")
'得到目錄分離的位置
tempStr = Right(pStr, temp)
'得到有關(guān)數(shù)據(jù)長(zhǎng)度
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ù)
復(fù)制代碼 代碼如下:
Function Finder(byRef prodList, byVal refList)
'模糊查詢
refList = lCase(refList)
' 通過(guò)指針循環(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
通過(guò)一個(gè)inclue,把我們做好的decode.asp放到需要此功能的任何頁(yè)面,大功告成啦。
具體如下:
'如果指向頭不為空,調(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
相關(guān)文章
自己寫(xiě)的文件操作的function和Sub vb.net dll
自己寫(xiě)的文件操作的function和Sub vb.net dll...2007-08-08ASP網(wǎng)站生成靜態(tài)html頁(yè)面技術(shù)小結(jié)
ASP網(wǎng)站生成靜態(tài)html頁(yè)面技術(shù)小結(jié)...2007-07-07IIS7.5調(diào)用asp頁(yè)面出現(xiàn)800a0e7a的解決辦法
本文給大家分享的是在windows2008R2 64位系統(tǒng)中出現(xiàn)了ADODB.Connection 錯(cuò)誤 '800a0e7a'的解決辦法,方法很簡(jiǎn)單,可是處理過(guò)程卻很曲折,這里推薦給大家,有需要的小伙伴可以參考下。2015-05-05flash和asp分頁(yè)的一點(diǎn)心得與flash腳本
flash和asp分頁(yè)的一點(diǎn)心得與flash腳本...2007-03-03Highlight patterns within strings
Highlight patterns within strings...2007-04-04