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: <span id="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 ռλ·ûµÄÄÚÈݾͱ»ÏìÓ¦Îı¾À´Ìî³ä¡£