校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 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>" 

    End IF

    ' 循環輸出搜索結果

    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稍有接觸應該都看得懂這段代碼,前篇教程中也有詳細注釋:

復制代碼 代碼如下:

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!");
}

function AjaxSearch() {
 var searchword;
 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>";
 xmlObj.open ("POST", "ajaxsearch.asp", true);
 xmlObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
 xmlObj.onreadystatechange=function() {
  if(xmlObj.readyState==4) {
   if(xmlObj.status==200) {
    xmlResult=xmlObj.responseXML;
    AjaxShowResult();
   }
  }
 }
 xmlObj.send("searchword="+searchword);
}

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實例完成了。

幾個經驗:

1. 頁面使用UTF-8編碼,這樣可以省卻很多煩惱

2. 在獲取搜索結果時,因為用的getElementsByTagName,返回的是一個集合,所以要在結果之后加上下標,如例子中的:

    results[i].getElementsByTagName("logid")[0].firstChild.data

3. 建議使用document.getElementById()來獲取對象,而不要使用document.all這樣的方法

參考資料:

1. 《AJAX初體驗之上手篇》

2. 發布三個ajax相關的函數,包括無刷新提交表單等

下載文件 實例中的三個文件打包下載

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

巨人網絡通訊聲明:本文標題《AJAX初體驗之實戰篇——打造博客無刷新搜索》,本文關鍵詞  AJAX,初,體驗,之,實戰,篇,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《AJAX初體驗之實戰篇——打造博客無刷新搜索》相關的同類信息!
  • 本頁收集關于AJAX初體驗之實戰篇——打造博客無刷新搜索的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    精品国产伦一区二区三区观看方式 | 国产成人精品一区二区三区四区 | 这里只有精品99re| 成人aa视频在线观看| 国产乱码精品一区二区三| 久草这里只有精品视频| 国产激情视频一区二区三区欧美 | 免费成人你懂的| 91高清视频免费看| 美女爽到高潮91| 最好看的中文字幕久久| 久久综合成人精品亚洲另类欧美| 精品视频一区三区九区| 亚洲高清不卡在线| 蜜桃视频在线一区| 国产91露脸合集magnet| youjizz国产精品| 在线电影国产精品| 欧美国产日韩精品免费观看| 国产丝袜在线精品| 欧美精品一区二区三区视频| 亚洲欧美在线观看| 久久精品噜噜噜成人av农村| 成人涩涩免费视频| 欧美日韩免费不卡视频一区二区三区| 在线播放欧美女士性生活| 国产精品久久久久影院老司| 午夜不卡av在线| 北岛玲一区二区三区四区| 欧美无乱码久久久免费午夜一区 | 日韩欧美国产高清| 久久中文娱乐网| 偷拍一区二区三区四区| 色综合一区二区三区| 亚洲精品一区二区三区99| 一区二区三区在线播放| 岛国一区二区三区| 国产欧美日韩亚州综合| 国产精品一线二线三线精华| 欧美日韩精品一二三区| 亚洲一线二线三线视频| 91久久线看在观草草青青| 国产精品伦理一区二区| 韩国在线一区二区| 国产午夜精品一区二区三区嫩草 | 欧美喷潮久久久xxxxx| 亚洲一区二区三区小说| 欧美日韩在线精品一区二区三区激情| 亚洲视频一区二区在线| 在线免费观看日本一区| 爽好多水快深点欧美视频| 欧美最猛黑人xxxxx猛交| 亚洲福中文字幕伊人影院| 欧美精品v日韩精品v韩国精品v| 亚洲一区二区三区在线播放| 91精品欧美福利在线观看| 久草这里只有精品视频| 国产精品青草久久| 色综合咪咪久久| 卡一卡二国产精品| 亚洲裸体xxx| 91麻豆精品国产91久久久久| 精品一区二区三区免费毛片爱| 久久久噜噜噜久久人人看| 91成人免费在线视频| 免费在线观看精品| 欧美精品日日鲁夜夜添| 久久精工是国产品牌吗| 亚洲欧美自拍偷拍色图| 国产亚洲一区二区三区四区| 欧美精品123区| 欧美日本国产一区| 欧美色网站导航| 91网站最新地址| 不卡视频在线看| av爱爱亚洲一区| 成人动漫一区二区| 成人小视频在线| 国产99精品在线观看| 国产69精品久久久久毛片| 不卡一区二区在线| 免费不卡在线视频| 中文字幕一区在线观看视频| 在线精品国精品国产尤物884a | 亚洲天堂福利av| 欧美日韩成人在线| 日本aⅴ精品一区二区三区| 亚洲女与黑人做爰| 26uuu国产一区二区三区| 欧美日韩国产一二三| 欧美视频在线观看一区二区| 在线免费亚洲电影| 在线免费观看一区| 在线观看欧美黄色| 欧美午夜电影在线播放| 在线观看欧美精品| 99国产精品99久久久久久| 在线影院国内精品| 精品国产免费视频| 日本一区二区电影| 亚洲精品成人精品456| 午夜精品一区二区三区免费视频| 亚洲1区2区3区4区| 精品影视av免费| 国产91精品精华液一区二区三区 | 精品视频在线免费看| 久久亚洲捆绑美女| 有码一区二区三区| 日本亚洲电影天堂| 国产精品一品视频| 日本成人中文字幕| 99久久婷婷国产综合精品| 欧美精品三级日韩久久| 国产精品国模大尺度视频| 久久电影网站中文字幕| 欧洲精品在线观看| 亚洲欧美综合色| 国产精品主播直播| 日韩欧美一级二级三级久久久| 国产精品高潮久久久久无| 久久99国产精品久久99果冻传媒| 欧洲精品在线观看| 亚洲人午夜精品天堂一二香蕉| 天堂久久一区二区三区| 国产成人精品一区二区三区四区| 欧美三级电影在线观看| 一区二区三区资源| 色综合久久久久久久久| 国产精品久久久久久久午夜片| 麻豆成人av在线| 欧美一区在线视频| 亚洲v精品v日韩v欧美v专区| 色婷婷综合久色| 亚洲精品视频在线看| 欧美色视频一区| 免费成人你懂的| 精品久久久久久亚洲综合网| 精品亚洲aⅴ乱码一区二区三区| 欧美精品少妇一区二区三区| 日本在线播放一区二区三区| 欧美一区二区成人6969| 青草国产精品久久久久久| 精品国产免费一区二区三区四区 | 成人高清在线视频| 亚洲综合图片区| 欧美日韩国产综合一区二区三区| 图片区小说区区亚洲影院| 欧美一区二区播放| 国产东北露脸精品视频| 中文字幕综合网| 日韩女优毛片在线| 91国产免费观看| 国产一区二区日韩精品| 亚洲日本护士毛茸茸| 91福利社在线观看| 黄网站免费久久| 亚洲国产sm捆绑调教视频 | 一区二区久久久久久| 日韩视频123| 欧洲精品一区二区| 成人app网站| 黄色精品一二区| 亚洲超碰精品一区二区| 国产精品天美传媒沈樵| 欧美精品xxxxbbbb| 欧美麻豆精品久久久久久| av午夜一区麻豆| 国产一区二区看久久| 视频一区中文字幕国产| 亚洲精品一二三| 曰韩精品一区二区| 亚洲尤物在线视频观看| 亚洲女同一区二区| 亚洲另类春色校园小说| 国产精品午夜在线| 国产精品伦理一区二区| 国产拍欧美日韩视频二区| 久久久久99精品国产片| 久久婷婷综合激情| 日韩欧美亚洲国产精品字幕久久久 | 亚洲综合免费观看高清完整版在线 | av在线播放成人| 色婷婷亚洲婷婷| 欧美人妇做爰xxxⅹ性高电影| 欧美色综合久久| 欧美日韩大陆一区二区| 日韩午夜在线影院| 精品成a人在线观看| 国产片一区二区三区| 日韩伦理免费电影| 一区二区三区在线免费视频| 一区二区三区国产豹纹内裤在线| 婷婷激情综合网| 国产老肥熟一区二区三区| 成人激情黄色小说| 欧美v国产在线一区二区三区| 久久久久国产精品人| 亚洲狠狠爱一区二区三区| 日韩成人免费电影| 国产精品一线二线三线精华|