|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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,但从至少从我的角度分析上来看,充其量只是一个大型的进销存而已了,了解尚浅,不够胆详评,这里只提技术问题 |
|