資源描述:
《ajax打造博客無(wú)刷新搜索》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、AJAX打造博客無(wú)刷新搜索如果你對(duì)AJAX不是很了解,可以先看看這篇教程:《AJAX初體驗(yàn)之上手篇》。現(xiàn)在博客很流行,相信應(yīng)該上網(wǎng)時(shí)間稍微長(zhǎng)點(diǎn)的朋友都會(huì)在這或者在那的有一個(gè)自己的博客。對(duì)于一些有一定能力的朋友,可能更喜歡自己去下載一個(gè)博客程序來(lái)架設(shè)一個(gè)自己的博客,而不是使用一些博客網(wǎng)站提供的服務(wù)。而大部分博客程序所帶的搜索功能是提交查詢(xún)關(guān)鍵字到搜索頁(yè)面,然后在后臺(tái)生成搜索結(jié)果,再呈現(xiàn)給用戶(hù),這過(guò)程之中浪費(fèi)了一些帶寬,如博客的側(cè)邊欄。要節(jié)約這一些帶寬,我們可以用AJAX來(lái)打造自己的無(wú)刷新日志搜索。在本篇教程中,數(shù)據(jù)庫(kù)的表名和日志查看
2、頁(yè)面以L-Blog為例,因?yàn)槲业牟┛统绦蚴菑腖-Blog修改而來(lái)。本教程中的例子已經(jīng)通過(guò)實(shí)際測(cè)試,可以直接在L-Blog或FBS中使用。當(dāng)然,要真正應(yīng)用的話(huà)還是需要做一些美化及完善的。在數(shù)據(jù)庫(kù)中日志內(nèi)容數(shù)據(jù)表名為blog_Content,其中日志ID為log_ID,日志標(biāo)題為log_Title,日志查看頁(yè)面為blogview.asp,參數(shù)為日志logID。有了這些資料,就可以開(kāi)始創(chuàng)建搜索結(jié)果的XML文檔模板了。在顯示搜索結(jié)果時(shí),需要顯示日志的標(biāo)題,以及日志的ID來(lái)創(chuàng)建到查看日志的鏈接。搜索結(jié)果模板sample.xmlCODE:
3、xmlversion="1.0"encoding="utf-8"?>????????????????????1??????????????AJAX初體驗(yàn)之上手篇???每個(gè)result就是一個(gè)搜索結(jié)果,為了處理沒(méi)有找到相關(guān)內(nèi)容的情況,我定義了當(dāng)搜索結(jié)果為空時(shí)logid為#。在完成XML
4、文檔模板之后,就可以用ASP來(lái)動(dòng)態(tài)生成搜索結(jié)果需要的XML文檔了。搜索的關(guān)鍵字采用POST方式來(lái)傳遞。搜索結(jié)果輸出ajaxsearch.aspCODE:<%'commond.asp為數(shù)據(jù)庫(kù)連接文件'function.asp中有要用到的函數(shù)CheckStrDimSearch_Word,XML_Result,rsSearch,sqlSearchSetrsSearch=Server.Cre
5、ateObject("ADODB.RecordSet")'獲取搜索關(guān)鍵字Search_Word=CheckStr(Trim(Request.Form("searchword")))'XML文檔頭XML_Result=""IFSearch_Word<>EmptyThen???'創(chuàng)建查詢(xún)SQL語(yǔ)句???sqlSearch="SELECTlog_ID,log_Title,log_ContentFROMblog_ContentWHERE
6、log_TitleLIKE'%"&Search_Word&"%'ANDlog_IsShow=TrueORDERBYlog_IDDESC" ???'打開(kāi)記錄集???rsSearch.opensqlSearch,Conn,1,1???'如果沒(méi)有搜索結(jié)果就產(chǎn)生一個(gè)結(jié)果,logid為#,標(biāo)志著沒(méi)有搜索結(jié)果???IFrsSearch.BOFANDrsSearch.EOFThenXML_Result=XML_Result&"#" ???'循環(huán)輸出搜索結(jié)果??
7、?DoWhileNotrsSearch.EOF???????'循環(huán)輸出每一個(gè)結(jié)果???????XML_Result=XML_Result&""&rsSearch("log_ID")&"" ????????rsSearch.MoveNext???LoopElse???'關(guān)鍵字為空,則返回?zé)o搜索結(jié)果???XML_Result=XML_Result&"8、ult>#"EndIFXML_Result=XML_Result&""'設(shè)置MIMEType為XML文檔Response.ContentType="ap