仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 648|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网站制作之用AJAX打造博客无革新搜刮

[复制链接]
深爱那片海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:19:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天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
CODE:
<?xmlversion="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
CODE:
<!--#includefile="commond.asp"-->
<!--#includefile="include/function.asp"-->
<%
commond.asp为数据库毗连文件
function.asp中有要用到的函数CheckStr
DimSearch_Word,XML_Result,rsSearch,sqlSearch
SetrsSearch=Server.CreateObject("ADODB.RecordSet")
猎取搜刮关头字
Search_Word=CheckStr(Trim(Request.Form("searchword")))
XML文档头
XML_Result="<?xmlversion=""1.0""encoding=""utf-8""?><blogsearch>"
IFSearch_WordEmptyThen
创立查询SQL语句
sqlSearch="SELECTlog_ID,log_Title,log_ContentFROMblog_ContentWHERElog_TitleLIKE%"&Search_Word&"%ANDlog_IsShow=TrueORDERBYlog_IDDESC" 
翻开纪录集
rsSearch.opensqlSearch,Conn,1,1
假如没有搜刮了局就发生一个了局,logid为#,标记着没有搜刮了局
IFrsSearch.BOFANDrsSearch.EOFThenXML_Result=XML_Result&"<result><logid>#</logid><logtitle/></result>" 
轮回输入搜刮了局
DoWhileNotrsSearch.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>"
EndIF
XML_Result=XML_Result&"</blogsearch>"
设置MIMEType为XML文档
Response.ContentType="application/xml"
Response.CharSet="utf-8"
输入搜刮了局
Response.Write(XML_Result)
%>
有了背景搜刮了局输入的部分,就能够入手下手写前台搜刮的部分了。
起首必要的是给用户输出搜刮关头字及显现搜刮了局的中央,我用div来分离显现这两个部分:
ajaxsearch.htm
CODE:
<!--要用到JavaScript,内部链进-->
<scripttype="text/javascript"src="ajaxsearch.js"></script>
<!--用户输出部分-->
<div>
<!--由于没有效form,以是要处置input的keydown事务。在用户按下回车后搜刮-->
<inputtype="text"id="searchword"/> 
<!--搜刮按钮-->
<inputtype="button"value="搜刮"/>
</div>
<!--搜刮了局显现部分-->
<divid="search_result">
<!--初始时提醒用户输出搜刮关头字-->
<ul><li>请输出关头字</li></ul>
</div>
完成了用户输出及了局输入的部分,就能够入手下手写最初的部分――客户端程序了。
起首是创立XMLHttpRequest工具,这部分代码不再多说,对AJAX稍有打仗应当都看得懂这段代码,前篇教程中也有具体正文:
ajaxsearch.js(part1)
CODE:
varxmlObj=false;
varxmlResult;
try{
xmlObj=newXMLHttpRequest;
}
catch(e){
try{
xmlObj=newActiveXObject("MSXML2.XMLHTTP");
}
catch(e2){
try{
xmlObj=newActiveXObject("Microsoft.XMLHTTP");
}
catch(e3){
xmlObj=false;
}
}
}
if(!xmlObj){
alert("XMLHttpRequestinitFailed!");
}
接上去是发送搜刮哀求部分:
ajaxsearch.js(part2)
CODE:
functionAjaxSearch(){
varsearchword;
//猎取搜刮关头字,而且举行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)
CODE:
functionAjaxShowResult(){
varresults,i,strTemp;
//猎取搜刮了局汇合
results=xmlResult.getElementsByTagName("result");
//用无序列表来显现搜刮了局
strTemp="<ul>";
//起首判别搜刮了局是不是为空
if(results[0].getElementsByTagName("logid")[0].firstChild.data=="#")
//是空,则显现没有切合的搜刮了局
strTemp=strTemp+"<li>无搜刮了局</li>";
else
//轮回输入每一个搜刮了局
for(i=0;i<results.length;i++)
strTemp=strTemp+"<li><ahref=blogview.asp?logID="+results.getElementsByTagName("logid")[0].firstChild.data+">"+results.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如许的办法
当然了,现在国内CRM厂商的产品与其说是CRM,但从至少从我的角度分析上来看,充其量只是一个大型的进销存而已了,了解尚浅,不够胆详评,这里只提技术问题
山那边是海 该用户已被删除
沙发
发表于 2015-1-19 08:41:43 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
精灵巫婆 该用户已被删除
板凳
发表于 2015-1-28 05:50:15 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
海妖 该用户已被删除
地板
发表于 2015-2-5 18:02:43 | 只看该作者
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
老尸 该用户已被删除
5#
发表于 2015-2-13 05:16:52 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
乐观 该用户已被删除
6#
发表于 2015-3-3 15:31:45 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
简单生活 该用户已被删除
7#
发表于 2015-3-11 12:01:09 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
小魔女 该用户已被删除
8#
发表于 2015-3-18 15:48:44 | 只看该作者
作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。
冷月葬花魂 该用户已被删除
9#
发表于 2015-3-26 11:54:18 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-11 01:47

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表