AJAX ÇëÇóʵÀý
ÎÒÃÇÒÑ¿´µ½ AJAX ¿É±»ÓÃÀ´´´½¨¸ü¶à½»»¥ÐÔµÄÓ¦ÓóÌÐò¡£
AJAX SuggestʵÀý
ÔÚÏÂÃæµÄ AJAX Àý×ÓÖУ¬ÎÒÃÇ»áÑÝʾµ±Óû§ÏòÒ»¸ö±ê×¼µÄ HTML ±íµ¥ÖÐÊäÈëÊý¾ÝÊ±ÍøÒ³ÈçºÎÓë web ·þÎñÆ÷½øÐÐͨÐÅ¡£
ÔÚÏÂÃæµÄÎı¾¿òÖÐÊäÈëÃû×Ö£º
Suggestions£º
Àý×Ó½âÊÍ - HTML±íµ¥
±íµ¥µÄ HTML ´úÂ룺
<form> First Name:<input type="text"id="txt1"onkeyup="showHint(this.value)"/> </form> <p>Suggestions: <spanid="txtHint"></span></p>
ÕýÈçÄú¿´µ½µÄ£¬ÕâÊÇÒ»¸ö¼òµ¥µÄ´øÓÐÃûΪ "txt1" ÊäÈëÓòµÄ HTML ±íµ¥¡£ÊäÈëÓòµÄʼþÊôÐÔ¶¨ÒåÁËÒ»¸öÓÉ onkeyup ʼþ´¥·¢µÄº¯Êý¡£
±íµ¥ÏÂÃæµÄ¶ÎÂä°üº¬ÁËÒ»¸öÃûΪ "txtHint" µÄ span£¬Õâ¸ö span ³äµ±ÁËÓÉ web ·þÎñÆ÷ËùÈ¡»ØµÄÊý¾ÝµÄλÖÃռλ·û¡£
µ±Óû§ÊäÈëÊý¾Ýʱ£¬ÃûΪ "showHint()" µÄº¯Êý¾Í»á±»Ö´ÐС£º¯ÊýµÄÖ´ÐÐÊÇÓÉ "onkeyup" ʼþ´¥·¢µÄ¡£ÁíÍâÐèҪ˵Ã÷µÄÊÇ£¬µ±Óû§ÔÚÎı¾ÓòÖÐÊäÈëÊý¾Ýʱ°ÑÊÖÖ¸´Ó¼üÅ̰´¼üÉÏÒÆ¿ªÊ±£¬º¯Êý showHint ¾Í»á±»µ÷Óá£
Àý×Ó½âÊÍ - showHint() º¯Êý
showHint() º¯ÊýÊÇÒ»¸öλÓÚ HTML Ò³Ãæ head ²¿·ÖµÄºÜ¼òµ¥µÄ JavaScript º¯Êý¡£
´Ëº¯Êý°üº¬ÒÔÏ´úÂ룺
function showHint(str)
{
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("ÄúµÄä¯ÀÀÆ÷²»Ö§³ÖAJAX£¡");
return;
}
var url="gethint.asp";
url=url+"?q="+str;
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
ÿµ±ÓÐ×Ö·ûÊäÈëÎı¾¿òʱ£¬´Ëº¯Êý¾Í»áÖ´ÐС£
¼ÙÈçÎı¾ÓòÖдæÔÚijЩÊäÈ룬º¯Êý¾Í»áÖ´ÐУº
- ¶¨Ò廨´«Êý¾ÝµÄ·þÎñÆ÷µÄ url£¨ÎļþÃû£©
- ʹÓÃÎı¾¿òµÄÄÚÈÝÏò url Ìí¼Ó²ÎÊý£¨q£©
- Ìí¼ÓÒ»¸öËæ»úµÄÊý×Ö£¬ÒÔ·ÀÖ¹·þÎñÆ÷ʹÓÃij¸öÒÑ»º´æµÄÎļþ
- ´´½¨Ò»¸ö XMLHTTP ¶ÔÏ󣬲¢¸æÖª´Ë¶ÔÏóµ±Ä³¸ö¸Ä±ä±»´¥·¢Ê±Ö´ÐÐÃûΪ stateChanged µÄº¯Êý
- Ïò·þÎñÆ÷·¢ËÍÒ»¸ö HTTP ÇëÇó
- Èç¹ûÊäÈëÓòΪ¿Õ£¬´Ëº¯Êý½ö½ö»áÇå¿Õ txtHint ռλ·ûµÄÄÚÈÝ
Àý×Ó½âÊÍ - GetXmlHttpObject() º¯Êý
ÉÏÃæµÄÀý×ӿɵ÷ÓÃÃûΪ GetXmlHttpObject() µÄº¯Êý¡£
´Ëº¯ÊýµÄ×÷ÓÃÊǽâ¾öΪ²»Í¬ä¯ÀÀÆ÷´´½¨²»Í¬µÄ XMLHTTP ¶ÔÏóµÄÎÊÌâ¡£
ÕâÊǴ˺¯ÊýµÄ´úÂ룺
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
Àý×Ó½âÊÍ - stateChanged() º¯Êý
stateChanged() º¯Êý°üº¬ÏÂÃæµÄ´úÂ룺
function stateChanged()
{
if (xmlHttp.readyState==4)
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText;
}
}
ÿµ± XMLHTTP ¶ÔÏóµÄ״̬·¢Éú¸Ä±äʱ£¬stateChanged() º¯Êý¾Í»áÖ´ÐС£
µ±×´Ì¬±ä¸üΪ 4£¨¡°Íê³É¡±£©Ê±£¬txtHint ռλ·ûµÄÄÚÈݾͱ»ÏìÓ¦Îı¾À´Ìî³ä¡£