使用ajax技术打造博客无刷新搜索引擎_ajax教程

网络整理 - 07-26

目前博客非常流行,相信应该上网时间稍微长点的朋友都会在这或在那的有一个自己的博客。对于一些有一定能力的朋友,可能更喜欢自己去下载一个博客程式来架设一个自己的博客,而不是使用一些博客网站提供的服务。而大部分博客程式所带的搜索功能是提交查询关键字到搜索页面,然后在后台生成搜索结果,再呈现给用户,这过程之中浪费了一些带宽,如博客的侧边栏。要节约这一些带宽,我们能用AJAX来打造自己的无刷新日志搜索。

在本篇教程中,数据库的表名和日志查看页面以L-Blog为例,因为我的博客程式是从L-Blog修改而来。

本教程中的例子已通过实际测试,能直接在L-Blog或FBS中使用。当然,要真正应用的话还是需要做一些美化及完善的。

在数据库中日志内容数据表名为blog_Content,其中日志ID为log_ID,日志标题为log_Title,日志查看页面为blogview.asp,参数为日志logID。有了这些资料,就能开始创建搜索结果的XML文件模板了。在显示搜索结果时,需要显示日志的标题,及日志的ID来创建到查看日志的链接。

搜索结果模板sample.xml

CODE:


   
   
       
        1
       
        AJAX初体验之上手篇
   


每个result就是个搜索结果,为了处理没有找到相关内容的情况,我定义了当搜索结果为空时logid为#。
在完成XML文件模板之后,就能用ASP来动态生成搜索结果需要的XML文件了。搜索的关键字采用POST方式来传递。

搜索结果输出ajaxsearch.asp

CODE:


<%
commond.asp为数据库连接文件
function.asp中有要用到的函数CheckStr
Dim Search_Word,XML_Result,rsSearch,sqlSearch
Set rsSearch=Server.CreateObject("ADODB.RecordSet")
获取搜索关键字
Search_Word=CheckStr(Trim(Request.Form("searchword")))
XML文件头
XML_Result=""
IF Search_WordEmpty Then
    创建查询SQL语句
    sqlSearch="SELECT log_ID,log_Title,log_Content FROM blog_Content WHERE log_Title LIKE %"&Search_Word&"% AND log_IsShow=True ORDER BY log_ID DESC" 
    打开记录集
    rsSearch.open sqlSearch,Conn,1,1
    如果没有搜索结果就产生一个结果,logid为#,标志着没有搜索结果
    IF rsSearch.BOF AND rsSearch.EOF Then XML_Result=XML_Result&"#" 
    循环输出搜索结果
    Do While Not rsSearch.EOF
        循环输出每一个结果
        XML_Result=XML_Result&""&rsSearch("log_ID")&""   
        rsSearch.MoveNext
    Loop
Else
    关键字为空,则返回无搜索结果
    XML_Result=XML_Result&"#"
End IF
XML_Result=XML_Result&""
设置MIME Type为XML文件
Response.ContentType = "application/xml"
Response.CharSet = "utf-8"
输出搜索结果
Response.Write(XML_Result)
%>


有了后台搜索结果输出的部分,就能开始写前台搜索的部分了。
首先需要的是给用户输入搜索关键字及显示搜索结果的地方,我用div来分别显示这两个部分:

ajaxsearch.htm

CODE:




   
     
   
   



   
   

  • 请输入关键字