好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > AJAX打造博客無刷新搜索

AJAX打造博客無刷新搜索

熱門標簽:辰溪地圖標注 澳大利亞城市地圖標注 許昌智能電銷機器人公司 遼寧銀行智能外呼系統 電銷機器人違法了嗎 遼寧正規電銷機器人 海南銀行智能外呼系統商家 姜堰電銷機器人 上海浦東騰訊地圖標注位置

如果你對AJAX不是很了解,可以先看看這篇教程:《AJAX初體驗之上手篇》

現在博客很流行,相信應該上網時間稍微長點的朋友都會在這或者在那的有一個自己的博客。對于一些有一定能力的朋友,可能更喜歡自己去下載一個博客程序來架設一個自己的博客,而不是使用一些博客網站提供的服務。而大部分博客程序所帶的搜索功能是提交查詢關鍵字到搜索頁面,然后在后臺生成搜索結果,再呈現給用戶,這過程之中浪費了一些帶寬,如博客的側邊欄。要節約這一些帶寬,我們可以用AJAX來打造自己的無刷新日志搜索。

在本篇教程中,數據庫的表名和日志查看頁面以L-Blog為例,因為我的博客程序是從L-Blog修改而來。

本教程中的例子已經通過實際測試,可以直接在L-Blog或FBS中使用。當然,要真正應用的話還是需要做一些美化及完善的。

在數據庫中日志內容數據表名為blog_Content,其中日志ID為log_ID,日志標題為log_Title,日志查看頁面為blogview.asp,參數為日志logID。有了這些資料,就可以開始創建搜索結果的XML文檔模板了。在顯示搜索結果時,需要顯示日志的標題,以及日志的ID來創建到查看日志的鏈接。

搜索結果模板sample.xml

復制代碼 代碼如下:

?xml version="1.0" encoding="utf-8"?>
blogsearch>
    !-- 每一個reslut就是一個搜索結果 -->
    result>
        !-- 日志的ID -->
        logid>1/logid>
        !-- 日志的標題 -->
        logtitle>AJAX初體驗之上手篇/logtitle>
    /result>
/blogsearch>

每個result就是一個搜索結果,為了處理沒有找到相關內容的情況,我定義了當搜索結果為空時logid為#。
在完成XML文檔模板之后,就可以用ASP來動態生成搜索結果需要的XML文檔了。搜索的關鍵字采用POST方式來傳遞。

搜索結果輸出ajaxsearch.asp

復制代碼 代碼如下:

!-- #include file="commond.asp" -->
!-- #include file="include/function.asp" -->
%
' 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="?xml version=""1.0"" encoding=""utf-8""?>blogsearch>"
IF Search_Word>Empty 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"result>logid>#/logid>logtitle />/result>" 
    ' 循環輸出搜索結果
    Do While Not rsSearch.EOF
        ' 循環輸出每一個結果
        XML_Result=XML_Result"result>logid>"rsSearch("log_ID")"/logid>logtitle>![CDATA["rsSearch("log_Title")"]]>/logtitle>/result>"  
        rsSearch.MoveNext
    Loop
Else
    ' 關鍵字為空,則返回無搜索結果
    XML_Result=XML_Result"result>logid>#/logid>logtitle />/result>"
End IF
XML_Result=XML_Result"/blogsearch>"
' 設置MIME Type為XML文檔
Response.ContentType = "application/xml"
'Response.CharSet = "utf-8"
' 輸出搜索結果
Response.Write(XML_Result)
%>

有了后臺搜索結果輸出的部分,就可以開始寫前臺搜索的部分了。
首先需要的是給用戶輸入搜索關鍵字及顯示搜索結果的地方,我用div來分別顯示這兩個部分:

ajaxsearch.htm


復制代碼 代碼如下:

!-- 要用到JavaScript,外部鏈入 -->
script type="text/javascript" src="ajaxsearch.js">/script>
!-- 用戶輸入部分 -->
div>
    !-- 因為沒有用form,所以要處理input的keydown事件。在用戶按下回車后搜索 -->
    input type="text" id="searchword" onkeydown="if(event.keyCode==13) AjaxSearch();" /> 
    !-- 搜索按鈕 -->
    input type="button" onclick="AjaxSearch();" value="搜索" />
/div>
!-- 搜索結果顯示部分 -->
div id="search_result">
    !-- 初始時提示用戶輸入搜索關鍵字 -->
    ul>li>請輸入關鍵字/li>/ul>
/div>


完成了用戶輸入及結果輸出的部分,就可以開始寫最后的部分——客戶端程序了。
首先是創建XMLHttpRequest對象,這部分代碼不再多說,對AJAX稍有接觸應該都看得懂這段代碼,前篇教程中也有詳細注釋:

ajaxsearch.js(part1)

復制代碼 代碼如下:
 
var xmlObj = false;
var xmlResult;
try {
    xmlObj=new XMLHttpRequest;
}
catch(e) {
    try {
        xmlObj=new ActiveXObject("MSXML2.XMLHTTP");
    }
    catch(e2) {
        try {
            xmlObj=new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(e3) {
            xmlObj=false;
        }
    }
}
if (!xmlObj) {
    alert("XMLHttpRequest init Failed!");
}

接下來是發送搜索請求部分:

ajaxsearch.js(part2)


復制代碼 代碼如下:

function AjaxSearch() {
    var searchword;
    // 獲取搜索關鍵字,并且進行URLEncode
    searchword=escape(document.getElementById("searchword").value);
    if(searchword=="") {
        // 如果關鍵字為空,則提示用戶輸入關鍵字
        document.getElementById("search_result").innerHTML="ul>li>請輸入關鍵字!/li>/ul>";
        return;
    }
    // 給出提示,正在搜索
    document.getElementById("search_result").innerHTML="ul>li>正在加載,請稍候/li>/ul>";
    // 打開一個連接,采用POST
    xmlObj.open ("POST", "ajaxsearch.asp", true);
    // 設置請求頭,表單內容格式為URLEncoded
    xmlObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    // 設置完成請求后響應函數
    xmlObj.onreadystatechange=function() {
        // 完成響應
        if(xmlObj.readyState==4) {
            // 狀態正常
            if(xmlObj.status==200) {
                // 設置xmlResult為搜索結果XML文檔
                xmlResult=xmlObj.responseXML;
                // 調用AjaxShowResult()顯示搜索結果
                AjaxShowResult();
            }
        }
    }
    // 發送請求,內容為搜索的關鍵字
    xmlObj.send("searchword="+searchword);
}


最后是搜索結果的顯示:

ajaxsearch.js(part3)

復制代碼 代碼如下:

function AjaxShowResult() {
    var results,i,strTemp;
    // 獲取搜索結果集合
    results=xmlResult.getElementsByTagName("result");
    // 用無序列表來顯示搜索結果
    strTemp="ul>";
    // 首先判斷搜索結果是否為空
    if(results[0].getElementsByTagName("logid")[0].firstChild.data=="#")
        // 是空,則顯示沒有符合的搜索結果
        strTemp=strTemp+"li>無搜索結果/li>";
    else
        // 循環輸出每個搜索結果
        for(i=0;iresults.length;i++)
            strTemp = strTemp + "li>a href='blogview.asp?logID=" + results[i].getElementsByTagName("logid")[0].firstChild.data + "'>" + results[i].getElementsByTagName("logtitle")[0].firstChild.data + "/a>/li>"; 
    strTemp=strTemp+"/ul>";
    // 顯示搜索結果
    document.getElementById("search_result").innerHTML = strTemp
}


至此,一個完整的AJAX實例完成了。

幾個經驗:

  • 頁面使用UTF-8編碼,這樣可以省卻很多煩惱
  • 在獲取搜索結果時,因為用的getElementsByTagName,返回的是一個集合,所以要在結果之后加上下標,如例子中的:
        results[0].getElementsByTagName("logid")[0].firstChild.data
  • 建議使用document.getElementById()來獲取對象,而不要使用document.all這樣的方法

實例中三個文件打包下載:ajaxsearch.rar

標簽:伊春 深圳 撫州 威海 晉城 崇左 銅川 西藏

巨人網絡通訊聲明:本文標題《AJAX打造博客無刷新搜索》,本文關鍵詞  AJAX,打造,博客,無,刷新,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《AJAX打造博客無刷新搜索》相關的同類信息!
  • 本頁收集關于AJAX打造博客無刷新搜索的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 奶女milkboobs超级巨大| 将军紫黑色硕大进出腿间| 国产又粗又猛又爽又黄的学生视频 | 小青楼app| cctv8在线直播免费观看| 女女互磨高h文| 办公室play嗯啊高h| 日韩视频二区| 双性受被各种怪物c哭了| 91密臀| 1717国产精品久久| 中酷动漫库| 老色鬼精品无码一区二区| 羞羞视频靠逼视频大全| 欧美最猛烈的床吻戏| 乖女早晨含精吞精h| 天堂在线免费观看中文版| 女无遮挡h肉动漫在线观看| 成熟美妇跪趴承受撞击| 博文 動態 更多>>| 在线观看黄动漫| 男人桶女人叽叽| 欧美乱性| 4虎最新地址| 91伊人久热精品午夜福利| 男人一边抓胸一边用桶美女| 午夜伦92影院| 精品久久免费观看| 屁屁影院CCYYCOM发布地| 中国老太性xxxxxhd| 电车痴汉撕开奶罩?吮奶H小说| 天天看无码AV精品97| 乖抬高腿啊叫出来 | 国产精品久久久久秋霞影视| 久久精品国产精品青草最新版截图| 狠狠躁夜夜躁人人爽蜜桃| 男女无遮挡一进一出全程视频| 婷奴的七天性调教| 最新国产在线视频| 男女后背体位姿势图解| 成人91看片|