AJax¼¼Êõ

[ËÄÌìѧ»áajax] ѧϰAjax½Ì³ÌµÚÈýÌì,Ajax Öеĸ߼¶ÇëÇóºÍÏìÓ¦

×ÖºÅ+ ×÷Õߣº À´Ô´£º    2014-11-17 20:43 ÎÒÒªÆÀÂÛ( )

[ËÄÌìѧ»áajax] ѧϰAjax½Ì³ÌµÚÈýÌì,Ajax Öеĸ߼¶ÇëÇóºÍÏìÓ¦,ÔĶÁ[ËÄÌìѧ»áajax] ѧϰAjax½Ì³ÌµÚÈýÌì,Ajax Öеĸ߼¶ÇëÇóºÍÏìÓ¦,¶ÔÓںܶà Web ¿ª·¢ÈËÔ±À´Ëµ£¬Ö»ÐèÒªÉú³É¼òµ¥µÄÇëÇó²¢½ÓÊÕ¼òµ¥µÄÏìÓ¦¼´¿É£»µ«ÊǶÔÓÚÏ£ÍûÕÆÎÕ Ajax µÄ¿ª·¢ÈËÔ±À´Ëµ£¬±ØÐëҪȫÃæÀí

¶ÔÓںܶà Web ¿ª·¢ÈËÔ±À´Ëµ£¬Ö»ÐèÒªÉú³É¼òµ¥µÄÇëÇó²¢½ÓÊÕ¼òµ¥µÄÏìÓ¦¼´¿É£»µ«ÊǶÔÓÚÏ£ÍûÕÆÎÕ Ajax µÄ¿ª·¢ÈËÔ±À´Ëµ£¬±ØÐëҪȫÃæÀí½â HTTP ״̬´úÂë¡¢¾ÍÐ÷״̬ºÍ XMLHttpRequest ¶ÔÏó¡£ÔÚ±¾ÎÄÖУ¬Brett McLaughlin ½«ÏòÄú½éÉܸ÷ÖÖ״̬´úÂ룬²¢Õ¹Ê¾ä¯ÀÀÆ÷ÈçºÎ¶ÔÆä½øÐд¦Àí£¬±¾ÎÄ»¹¸ø³öÁËÔÚ Ajax ÖÐʹÓõıȽÏÉÙ¼ûµÄ HTTP ÇëÇó¡£

ÔÚ±¾ÏµÁÐµÄ ÉÏƪÎÄÕ ÖУ¬ÎÒÃǽ«Ïêϸ½éÉÜ XMLHttpRequest ¶ÔÏó£¬ËüÊÇ Ajax Ó¦ÓóÌÐòµÄÖÐÐÄ£¬¸ºÔð´¦Àí·þÎñÆ÷¶ËÓ¦ÓóÌÐòºÍ½Å±¾µÄÇëÇ󣬲¢´¦Àí´Ó·þÎñÆ÷¶Ë×é¼þ·µ»ØµÄÊý¾Ý¡£ÓÉÓÚËùÓÐµÄ Ajax Ó¦ÓóÌÐò¶¼ÒªÊ¹Óà XMLHttpRequest ¶ÔÏó£¬Òò´ËÄú¿ÉÄÜ»áÏ£ÍûÊìϤÕâ¸ö¶ÔÏ󣬴ӶøÄܹ»Èà Ajax Ö´ÐеøüºÃ¡£

ÔÚ±¾ÎÄÖУ¬ÎÒ½«ÔÚÉÏһƪÎÄÕµĻù´¡ÉÏÖصã½éÉÜÕâ¸öÇëÇó¶ÔÏóµÄ 3 ¸ö¹Ø¼ü²¿·ÖµÄÄÚÈÝ£º

¡¤HTTP ¾ÍÐ÷״̬
¡¤HTTP ״̬´úÂë
¡¤¿ÉÒÔÉú³ÉµÄÇëÇóÀàÐÍ

ÕâÈý²¿·ÖÄÚÈݶ¼ÊÇÔÚ¹¹ÔìÒ»¸öÇëÇóʱËùÒª¿¼ÂǵÄÒòËØ£»µ«ÊǽéÉÜÕâЩÖ÷ÌâµÄÄÚÈÝÌ«ÉÙÁË¡£È»¶ø£¬Èç¹ûÄú²»½ö½öÊÇÏëÁ˽â Ajax ±à³ÌµÄ³£Ê¶£¬¶øÊÇÏ£ÍûÁ˽â¸ü¶àÄÚÈÝ£¬¾ÍÐèÒªÊìϤ¾ÍÐ÷״̬¡¢×´Ì¬´úÂëºÍÇëÇó±¾ÉíµÄÄÚÈÝ¡£µ±Ó¦ÓóÌÐò³öÏÖÎÊÌâʱ ¡ª¡ª ÕâÖÖÎÊÌâ×ÜÊÇ´æÔÚ ¡ª¡ª ÄÇôÈç¹ûÄܹ»ÕýÈ·Àí½â¾ÍÐ÷״̬¡¢ÈçºÎÉú³ÉÒ»¸ö HEAD ÇëÇó»òÕß 400 µÄ״̬´úÂëµÄÈ·Çк¬Ò壬¾Í¿ÉÒÔÔÚ 5 ·ÖÖÓÄÚµ÷ÊÔ³öÎÊÌ⣬¶ø²»ÊÇÔÚ¸÷ÖÖ´ìÕÛºÍÀ§»óÖжȹý 5 ¸öСʱ¡£

ÏÂÃæÈÃÎÒÃÇÊ×ÏÈÀ´¿´Ò»Ï HTTP ¾ÍÐ÷״̬¡£

ÉîÈëÁ˽â HTTP ¾ÍÐ÷״̬

ÄúÓ¦¸Ã»¹¼ÇµÃÔÚÉÏһƪÎÄÕÂÖÐ XMLHttpRequest ¶ÔÏóÓÐÒ»¸öÃûΪ readyState µÄÊôÐÔ¡£Õâ¸öÊôÐÔÈ·±£·þÎñÆ÷ÒѾ­Íê³ÉÁËÒ»¸öÇëÇó£¬Í¨³£»áʹÓÃÒ»¸ö»Øµ÷º¯Êý´Ó·þÎñÆ÷ÖжÁ³öÊý¾ÝÀ´¸üРWeb ±íµ¥»òÒ³ÃæµÄÄÚÈÝ¡£Çåµ¥ 1 ¸ø³öÁËÒ»¸ö¼òµ¥µÄÀý×Ó£¨ÕâÒ²ÊDZ¾ÏµÁеÄÉÏһƪÎÄÕÂÖеÄÒ»¸öÀý×Ó ¡ª¡ª Çë²Î¼û ²Î¿¼×ÊÁÏ£©¡£

XMLHttpRequest »ò XMLHttp£º»»Ãûõ¹å

Microsoft™ ºÍ Internet Explorer ʹÓÃÁËÒ»¸öÃûΪ XMLHttp µÄ¶ÔÏ󣬶ø²»ÊÇ XMLHttpRequest ¶ÔÏ󣬶ø Mozilla¡¢Opera¡¢Safari ºÍ ´ó²¿·Ö·Ç Microsoft ä¯ÀÀÆ÷¶¼Ê¹ÓõÄÊǺóÕß¡£ÎªÁ˼òµ¥ÐÔÆð¼û£¬ÎÒ½«ÕâÁ½¸ö¶ÔÏ󶼼òµ¥µØ³ÆΪ XMLHttpRequest¡£Õâ¼È·ûºÏÎÒÃÇÔÚ Web ÉÏ¿´µ½µÄÇé¿ö£¬ÓÖ·ûºÏ Microsoft ÔÚ Internet Explorer 7.0 ÖÐʹÓà XMLHttpRequest ×÷ΪÇëÇó¶ÔÏóµÄÒâͼ¡££¨ÓйØÕâ¸öÎÊÌâµÄ¸ü¶àÄÚÈÝ£¬Çë²Î¼û µÚ 2 ²¿·Ö¡££©

Çåµ¥ 1. Ôڻص÷º¯ÊýÖд¦Àí·þÎñÆ÷µÄÏìÓ¦

 function updatePage() {
   if (request.readyState == 4) {
     if (request.status == 200) {
       var response = request.responseText.split("|");
       document.getElementById("order").value = response[0];
       document.getElementById("address").innerHTML =
         response[1].replace(/\n/g, "<br />");
     } else
       alert("status is " + request.status);
   }
 }

ÕâÏÔÈ»ÊǾÍÐ÷״̬×î³£¼û£¨Ò²ÊÇ×î¼òµ¥£©µÄÓ÷¨¡£ÕýÈçÄú´ÓÊý×Ö "4" ÖпÉÒÔ¿´³öµÄÒ»Ñù£¬»¹ÓÐÆäËû¼¸¸ö¾ÍÐ÷״̬£¨ÄúÔÚÉÏһƪÎÄÕÂÖÐÒ²¿´µ½¹ýÕâ¸öÇåµ¥ ¡ª¡ª Çë²Î¼û ²Î¿¼×ÊÁÏ£©£º

¡¤0£ºÇëÇóδ³õʼ»¯£¨»¹Ã»Óе÷Óà open()£©¡£
¡¤1£ºÇëÇóÒѾ­½¨Á¢£¬µ«ÊÇ»¹Ã»Óз¢ËÍ£¨»¹Ã»Óе÷Óà send()£©¡£
¡¤2£ºÇëÇóÒÑ·¢ËÍ£¬ÕýÔÚ´¦ÀíÖУ¨Í¨³£ÏÖÔÚ¿ÉÒÔ´ÓÏìÓ¦ÖлñÈ¡ÄÚÈÝÍ·£©¡£
¡¤3£ºÇëÇóÔÚ´¦ÀíÖУ»Í¨³£ÏìÓ¦ÖÐÒÑÓв¿·ÖÊý¾Ý¿ÉÓÃÁË£¬µ«ÊÇ·þÎñÆ÷»¹Ã»ÓÐÍê³ÉÏìÓ¦µÄÉú³É¡£
¡¤4£ºÏìÓ¦ÒÑÍê³É£»Äú¿ÉÒÔ»ñÈ¡²¢Ê¹Ó÷þÎñÆ÷µÄÏìÓ¦ÁË¡£

Èç¹ûÄúÏ£Íû²»½ö½öÊÇÁ˽â Ajax ±à³ÌµÄ»ù±¾ÖªÊ¶£¬ÄÇô¾Í²»µ«ÐèÒªÖªµÀÕâЩ״̬£¬Á˽âÕâЩ״̬ÊǺÎʱ³öÏֵģ¬ÒÔ¼°ÈçºÎÀ´Ê¹ÓÃÕâЩ״̬¡£Ê×ÏÈ£¬ÄúÐèҪѧϰÔÚÿÖÖ¾ÍÐ÷״̬Ï¿ÉÄÜÅöµ½µÄÊÇÄÄÖÖÇëÇó״̬¡£²»ÐÒµÄÊÇ£¬ÕâÒ»µã²¢²»Ö±¹Û£¬¶øÇÒ»áÉæ¼°¼¸ÖÖÌØÊâµÄÇé¿ö¡£

ÒþÃؾÍÐ÷״̬

µÚÒ»ÖÖ¾ÍÐ÷״̬µÄÌصãÊÇ readyState ÊôÐÔΪ 0£¨readyState == 0£©£¬±íʾδ³õʼ»¯×´Ì¬¡£Ò»µ©¶ÔÇëÇó¶ÔÏóµ÷Óà open() Ö®ºó£¬Õâ¸öÊôÐԾͱ»ÉèÖÃΪ 1¡£ÓÉÓÚÄúͨ³£¶¼ÊÇÔÚÒ»¶ÔÇëÇó½øÐгõʼ»¯Ö®ºó¾ÍÁ¢¼´µ÷Óà open()£¬Òò´ËºÜÉٻῴµ½ readyState == 0 µÄ״̬¡£ÁíÍ⣬δ³õʼ»¯µÄ¾ÍÐ÷״̬ÔÚʵ¼ÊµÄÓ¦ÓóÌÐòÖÐÊÇûÓÐÕæÕýµÄÓô¦µÄ¡£

²»¹ýΪÁËÂú×ãÎÒÃǵÄÐËȤ£¬Çë²Î¼û Çåµ¥ 2 µÄÄÚÈÝ£¬ÆäÖÐÏÔʾÁËÈçºÎÔÚ readyState ±»ÉèÖÃΪ 0 ʱÀ´»ñÈ¡ÕâÖÖ¾ÍÐ÷״̬¡£

Çåµ¥ 2. »ñÈ¡ 0 ¾ÍÐ÷״̬

 

   function getSalesData() {
     // Create a request object
     createRequest(); 
     alert("Ready state is: " + request.readyState);

     // Setup (initialize) the request
     var url = "/boards/servlet/UpdateBoardSales";
     request.open("GET", url, true);
     request.onreadystatechange = updatePage;
     request.send(null);
   }

ÔÚÕâ¸ö¼òµ¥µÄÀý×ÓÖУ¬getSalesData() ÊÇ Web Ò³Ãæµ÷ÓÃÀ´Æô¶¯ÇëÇó£¨ÀýÈçµã»÷Ò»¸ö°´Å¥Ê±£©ËùʹÓõĺ¯Êý¡£×¢ÒâÄú±ØÐëÔÚµ÷Óà open()֮ǰ À´²é¿´¾ÍÐ÷״̬¡£Í¼ 1 ¸ø³öÁËÔËÐÐÕâ¸öÓ¦ÓóÌÐòµÄ½á¹û¡£

ͼ 1. ¾ÍÐ÷״̬ 0

 

ÏÔÈ»£¬Õâ²¢²»ÄÜΪÄú´øÀ´¶àÉٺô¦£»ÐèҪȷ±£ ÉÐδ µ÷Óà open() º¯ÊýµÄÇé¿öºÜÉÙ¡£ÔÚ´ó²¿·Ö Ajax ±à³ÌµÄÕæʵÇé¿öÖУ¬ÕâÖÖ¾ÍÐ÷״̬µÄΨһÓ÷¨¾ÍÊÇʹÓÃÏàͬµÄ XMLHttpRequest ¶ÔÏóÔÚ¶à¸öº¯ÊýÖ®¼äÉú³É¶à¸öÇëÇó¡£ÔÚÕâÖÖ£¨²»³£¼ûµÄ£©Çé¿öÖУ¬Äú¿ÉÄÜ»áÔÚÉú³ÉÐÂÇëÇó֮ǰϣÍûÈ·±£ÇëÇó¶ÔÏóÊÇ´¦ÓÚδ³õʼ»¯×´Ì¬£¨readyState == 0£©¡£Õâʵ¼ÊÉÏÊÇҪȷ±£ÁíÍâÒ»¸öº¯ÊýûÓÐͬʱʹÓÃÕâ¸ö¶ÔÏó¡£

²é¿´ÕýÔÚ´¦ÀíµÄÇëÇóµÄ¾ÍÐ÷״̬

³ýÁË 0 ¾ÍÐ÷״̬֮Í⣬ÇëÇó¶ÔÏó»¹ÐèÒªÒÀ´Î¾­ÀúµäÐ͵ÄÇëÇóºÍÏìÓ¦µÄÆäËû¼¸ÖÖ¾ÍÐ÷״̬£¬×îºó²ÅÒÔ¾ÍÐ÷״̬ 4 µÄÐÎʽ½áÊø¡£Õâ¾ÍÊÇΪʲôÄúÔڴ󲿷ֻص÷º¯ÊýÖж¼¿ÉÒÔ¿´µ½ if (request.readyState == 4) ÕâÐдúÂ룻ËüÈ·±£·þÎñÆ÷ÒѾ­Íê³É¶ÔÇëÇóµÄ´¦Àí£¬ÏÖÔÚ¿ÉÒÔ°²È«µØ¸üРWeb Ò³Ãæ»ò¸ù¾Ý´Ó·þÎñÆ÷·µ»ØÀ´µÄÊý¾ÝÀ´½øÐвÙ×÷ÁË¡£

Òª²é¿´ÕâÖÖ״̬·¢ÉúµÄ¹ý³Ì·Ç³£¼òµ¥¡£Èç¹û¾ÍÐ÷״̬Ϊ 4£¬ÎÒÃDz»½öÒªÔËÐлص÷º¯ÊýÖеĴúÂ룬¶øÇÒ»¹ÒªÔÚÿ´Îµ÷Óûص÷º¯Êýʱ¶¼Êä³ö¾ÍÐ÷״̬¡£ Çåµ¥ 3 ¸ø³öÁËÒ»¸öʵÏÖÕâÖÖ¹¦ÄܵÄÀý×Ó¡£

µ± 0 µÈÓÚ 4 ʱ

ÔÚ¶à¸ö JavaScript º¯Êý¶¼Ê¹ÓÃÏàͬµÄÇëÇó¶ÔÏóʱ£¬ÄúÐèÒª¼ì²é¾ÍÐ÷״̬ 0 À´È·±£Õâ¸öÇëÇó¶ÔÏóûÓÐÕýÔÚʹÓã¬ÕâÖÖ»úÖÆ»á²úÉúÎÊÌâ¡£ÓÉÓÚ readyState == 4 ±íʾһ¸öÒÑÍê³ÉµÄÇëÇó£¬Òò´ËÄú¾­³£»á·¢ÏÖÄÇЩĿǰûÔÚʹÓõĴ¦ÓÚ¾ÍÐ÷״̬µÄÇëÇó¶ÔÏóÈÔÈ»±»ÉèÖóÉÁË 4 ¡ª¡ª ÕâÊÇÒòΪ´Ó·þÎñÆ÷·µ»ØÀ´µÄÊý¾ÝÒѾ­Ê¹ÓùýÁË£¬µ«ÊÇ´ÓËüÃDZ»ÉèÖÃΪ¾ÍÐ÷״̬֮ºó¾ÍûÓнøÐÐÈκα仯¡£ÓÐÒ»¸öº¯Êý abort() »áÖØÐÂÉèÖÃÇëÇó¶ÔÏ󣬵«ÊÇÕâ¸öº¯ÊýÈ´²»ÊÇÕæÕýΪÁËÕâ¸öÄ¿µÄ¶øʹÓõġ£Èç¹ûÄú ±ØÐë ʹÓöà¸öº¯Êý£¬×îºÃÊÇΪÿ¸öº¯Êý¶¼´´½¨²¢Ê¹ÓÃÒ»¸öº¯Êý£¬¶ø²»ÊÇÔÚ¶à¸öº¯ÊýÖ®¼ä¹²ÏíÏàͬµÄ¶ÔÏó¡£

Çåµ¥ 3. ²é¿´¾ÍÐ÷״̬

   function updatePage() {
     // Output the current ready state
     alert("updatePage() called with ready state of " + request.readyState);
   }

Èç¹ûÄú²»È·¶¨ÈçºÎÔËÐÐÕâ¸öº¯Êý£¬¾ÍÐèÒª´´½¨Ò»¸öº¯Êý£¬È»ºóÔÚ Web Ò³ÃæÖе÷ÓÃÕâ¸öº¯Êý£¬²¢ÈÃËüÏò·þÎñÆ÷¶ËµÄ×é¼þ·¢ËÍÒ»¸öÇëÇó£¨ÀýÈç Çåµ¥ 2 ¸ø³öµÄº¯Êý£¬»ò±¾ÏµÁÐÎÄÕÂµÄµÚ 1 ²¿·ÖºÍµÚ 2 ²¿·ÖÖиø³öµÄÀý×Ó£©¡£È·±£ÔÚ½¨Á¢ÇëÇóʱ£¬½«»Øµ÷º¯ÊýÉèÖÃΪ updatePage()£»ÒªÊµÏÖÕâÖÖÉèÖ㬿ÉÒÔ½«ÇëÇó¶ÔÏóµÄ onreadystatechange ÊôÐÔÉèÖÃΪ updatePage()¡£

Õâ¶Î´úÂë¾ÍÊÇ onreadystatechange ÒâÒåµÄÒ»¸öÈ·ÇÐչʾ ¡ª¡ª ÿ´ÎÇëÇóµÄ¾ÍÐ÷״̬·¢Éú±ä»¯Ê±£¬¾Íµ÷Óà updatePage()£¬È»ºóÎÒÃǾͿÉÒÔ¿´µ½Ò»¸ö¾¯¸æÁË¡£Í¼ 2 ¸ø³öÁËÒ»¸öµ÷ÓÃÕâ¸öº¯ÊýµÄÀý×Ó£¬ÆäÖоÍÐ÷״̬Ϊ 1¡£

ͼ 2. ¾ÍÐ÷״̬ 1

 

Äú¿ÉÒÔ×Ô¼º³¢ÊÔÔËÐÐÕâ¶Î´úÂë¡£½«Æä·ÅÈë Web Ò³ÃæÖУ¬È»ºó¼¤»îʼþ´¦Àí³ÌÐò£¨µ¥»÷°´Å¥£¬ÔÚÓòÖ®¼ä°´ tab ¼üÇл»½¹µã£¬»òÕßʹÓÃÉèÖõÄÈκη½·¨À´´¥·¢ÇëÇ󣩡£Õâ¸ö»Øµ÷º¯Êý»áÔËÐжà´Î ¡ª¡ª ÿ´Î¾ÍÐ÷״̬¶¼»á¸Ä±ä ¡ª¡ª Äú¿ÉÒÔ¿´µ½Ã¿¸ö¾ÍÐ÷״̬µÄ¾¯¸æ¡£ÕâÊǸú×ÙÇëÇóËù¾­ÀúµÄ¸÷¸ö½×¶ÎµÄ×îºÃ·½·¨¡£

ä¯ÀÀÆ÷µÄ²»Ò»ÖÂÐÔ

ÔÚ¶ÔÕâ¸ö¹ý³ÌÓÐÒ»¸ö»ù±¾µÄÁ˽âÖ®ºó£¬ÇëÊÔ×Å´Ó¼¸¸ö²»Í¬µÄä¯ÀÀÆ÷ÖзÃÎÊÄúµÄÒ³Ãæ¡£ÄúÓ¦¸Ã»á×¢Òâµ½¸÷¸öä¯ÀÀÆ÷ÈçºÎ´¦ÀíÕâЩ¾ÍÐ÷״̬²¢²»Ò»Ö¡£ÀýÈ磬ÔÚ Firefox 1.5 ÖУ¬Äú»á¿´µ½ÒÔϾÍÐ÷״̬£º

¡¤1
¡¤2
¡¤3
¡¤4

Õâ²¢²»Ææ¹Ö£¬ÒòΪÿ¸öÇëÇó״̬¶¼ÔÚÕâÀï±íʾ³öÀ´ÁË¡£È»¶ø£¬Èç¹ûÄúʹÓà Safari À´·ÃÎÊÏàͬµÄÓ¦ÓóÌÐò£¬¾ÍÓ¦¸Ã¿´µ½ ¡ª¡ª »òÕß¿´²»µ½ ¡ª¡ª һЩÓÐȤµÄÊÂÇé¡£ÏÂÃæÊÇÔÚ Safari 2.0.1 Öп´µ½µÄ״̬£º

¡¤2
¡¤3
¡¤4

Safari ʵ¼ÊÉϰѵÚÒ»¸ö¾ÍÐ÷״̬¸ø¶ªÆúÁË£¬Ò²²¢Ã»ÓÐʲôÃ÷ÏÔµÄÔ­Òò˵Ã÷ΪʲôҪÕâÑù×ö£»²»¹ýÕâ¾ÍÊÇ Safari µÄ¹¤×÷·½Ê½¡£Õ⻹˵Ã÷ÁËÒ»¸öÖØÒªµÄÎÊÌ⣺¾¡¹ÜÔÚʹÓ÷þÎñÆ÷ÉϵÄÊý¾Ý֮ǰȷ±£ÇëÇóµÄ״̬Ϊ 4 ÊÇÒ»¸öºÃÖ÷Ò⣬µ«ÊÇÒÀÀµÓÚÿ¸ö¹ý¶ÉÆÚ¾ÍÐ÷״̬±àдµÄ´úÂëµÄÈ·»áÔÚ²»Í¬µÄä¯ÀÀÆ÷Éϵõ½²»Í¬µÄ½á¹û¡£

ÀýÈ磬ÔÚʹÓà Opera 8.5 ʱ£¬ËùÏÔʾµÄ¾ÍÐ÷״̬Çé¿ö¾Í¸ü¼ÓÔã¸âÁË£º

¡¤3
¡¤4

×îºó£¬Internet Explorer »áÏÔʾÈçÏÂ״̬£º

¡¤1
¡¤2
¡¤3
¡¤4

Èç¹ûÄúÅöµ½ÇëÇó·½ÃæµÄÎÊÌ⣬Õâ¾ÍÊÇÓÃÀ´·¢ÏÖÎÊÌâµÄ Ê×ÒªÖ®´¦¡£×îºÃµÄ·½Ê½ÊÇÔÚ Internet Explorer ºÍ Firefox ¶¼½øÐÐһϲâÊÔ ¡ª¡ª Äú»á¿´µ½ËùÓÐÕâ 4 ÖÖ״̬£¬²¢¿ÉÒÔ¼ì²éÇëÇóµÄÿ¸ö״̬Ëù´¦µÄÇé¿ö¡£

½ÓÏÂÀ´ÎÒÃÇÔÙÀ´¿´Ò»ÏÂÏìÓ¦¶ËµÄÇé¿ö¡£

ÏÔ΢¾µÏµÄÏìÓ¦Êý¾Ý

Ò»µ©ÎÒÃÇÀí½âÔÚÇëÇó¹ý³ÌÖз¢ÉúµÄ¸÷¸ö¾ÍÐ÷״̬֮ºó£¬½ÓÏÂÀ´¾Í¿ÉÒÔÀ´¿´Ò»Ï XMLHttpRequest ¶ÔÏóµÄÁíÍâÒ»¸ö·½ÃæÁË ¡ª¡ª responseText ÊôÐÔ¡£»ØÏëÒ»ÏÂÔÚÉÏһƪÎÄÕÂÖÐÎÒÃǽéÉܹýµÄÄÚÈÝ£¬¾Í¿ÉÒÔÖªµÀÕâ¸öÊôÐÔÓÃÀ´´Ó·þÎñÆ÷ÉÏ»ñÈ¡Êý¾Ý¡£Ò»µ©·þÎñÆ÷Íê³É¶ÔÇëÇóµÄ´¦ÀíÖ®ºó£¬¾Í¿ÉÒÔ½«ÏìÓ¦ÇëÇóÊý¾ÝËùÐèÒªµÄÈκÎÊý¾Ý·Åµ½ÇëÇóµÄ responseText ÖÐÁË¡£È»ºó»Øµ÷º¯Êý¾Í¿ÉÒÔʹÓÃÕâЩÊý¾Ý£¬Èç Çåµ¥ 1 ºÍ Çåµ¥ 4 Ëùʾ¡£

Çåµ¥ 4. ʹÓ÷þÎñÆ÷ÉÏ·µ»ØµÄÏìÓ¦


   function updatePage() {
     if (request.readyState == 4) {
       var newTotal = request.responseText;
       var totalSoldEl = document.getElementById("total-sold");
       var netProfitEl = document.getElementById("net-profit");
       replaceText(totalSoldEl, newTotal);

       /* ͼ out the new net profit */
       var boardCostEl = document.getElementById("board-cost");
       var boardCost = getText(boardCostEl);
       var manCostEl = document.getElementById("man-cost");
       var manCost = getText(manCostEl);
       var profitPerBoard = boardCost - manCost;
       var netProfit = profitPerBoard * newTotal;

       /* Update the net profit on the sales form */
       netProfit = Math.round(netProfit * 100) / 100;
       replaceText(netProfitEl, netProfit);
     }

Çåµ¥ 1 Ï൱¼òµ¥£»Çåµ¥ 4 ÉÔ΢Óе㸴ÔÓ£¬µ«ÊÇËüÃÇÔÚ¿ªÊ¼Ê±¶¼Òª¼ì²é¾ÍÐ÷״̬£¬²¢»ñÈ¡ responseText ÊôÐÔµÄÖµ¡£

²é¿´ÇëÇóµÄÏìÓ¦Îı¾

Óë¾ÍÐ÷״̬ÀàËÆ£¬responseText ÊôÐÔµÄÖµÔÚÕû¸öÇëÇóµÄÉúÃüÖÜÆÚÖÐÒ²»á·¢Éú±ä»¯¡£Òª²é¿´ÕâÖֱ仯£¬ÇëʹÓÃÈç Çåµ¥ 5 ËùʾµÄ´úÂëÀ´²âÊÔÇëÇóµÄÏìÓ¦Îı¾£¬ÒÔ¼°ËüÃǵľÍÐ÷״̬¡£

Çåµ¥ 5. ²âÊÔ responseText ÊôÐÔ

   function updatePage() {
     // Output the current ready state
     alert("updatePage() called with ready state of " + request.readyState +
           " and a response text of '" + request.responseText + "'");
     }

ÏÖÔÚÔÚä¯ÀÀÆ÷Öдò¿ª Web Ó¦ÓóÌÐò£¬²¢¼¤»îÄúµÄÇëÇó¡£Òª¸üºÃµØ¿´µ½Õâ¶Î´úÂëµÄЧ¹û£¬ÇëʹÓà Firefox »ò Internet Explorer£¬ÒòΪÕâÁ½¸öä¯ÀÀÆ÷¶¼¿ÉÒÔ±¨¸æ³öÇëÇó¹ý³ÌÖÐËùÓпÉÄܵľÍÐ÷״̬¡£ÀýÈçÔÚ¾ÍÐ÷״̬ 2 ÖУ¬¾ÍûÓж¨Òå responseText £¨Çë²Î¼û ͼ 3£©£»Èç¹û JavaScript ¿ØÖÆ̨ҲÒѾ­´ò¿ªÁË£¬Äú¾Í»á¿´µ½Ò»¸ö´íÎó¡£

ͼ 3. ¾ÍÐ÷״̬Ϊ 2 µÄÏìÓ¦Îı¾

 

²»¹ýÔÚ¾ÍÐ÷״̬ 3 ÖУ¬·þÎñÆ÷ÒѾ­ÔÚ responseText ÊôÐÔÖзÅÉÏÁËÒ»¸öÖµ£¬ÖÁÉÙÔÚÕâ¸öÀý×ÓÖÐÊÇÕâÑù£¨Çë²Î¼û ͼ 4£©¡£

ͼ 4. ¾ÍÐ÷״̬Ϊ 3 µÄÏìÓ¦Îı¾

 

Äú»á¿´µ½¾ÍÐ÷״̬Ϊ 3 µÄÏìÓ¦ÔÚÿ¸ö½Å±¾¡¢Ã¿¸ö·þÎñÆ÷ÉõÖÁÿ¸öä¯ÀÀÆ÷É϶¼ÊDz»Ò»ÑùµÄ¡£²»¹ý£¬ÕâÔÚµ÷ÊÔÓ¦ÓóÌÐòÖÐÒÀÈ»ÊǷdz£ÓÐÓõġ£

»ñÈ¡°²È«Êý¾Ý

ËùÓеÄÎĵµºÍ¹æ·¶¶¼Ç¿µ÷£¬Ö»ÓÐÔÚ¾ÍÐ÷״̬Ϊ 4 ʱÊý¾Ý²Å¿ÉÒÔ°²È«Ê¹Óá£ÏàÐÅÎÒ£¬µ±¾ÍÐ÷״̬Ϊ 3 ʱ£¬ÄúºÜÉÙÄÜÕÒµ½ÎÞ·¨´Ó responseText ÊôÐÔ»ñÈ¡Êý¾ÝµÄÇé¿ö¡£È»¶ø£¬ÔÚÓ¦ÓóÌÐòÖн«×Ô¼ºµÄÂß¼­ÒÀÀµÓÚ¾ÍÐ÷״̬ 3 ¿É²»ÊÇʲôºÃÖ÷Òâ ¡ª¡ª Ò»µ©Äú±àдÁËÒÀÀµÓÚ¾ÍÐ÷״̬ 3 µÄÍêÕûÊý¾ÝµÄµÄ´úÂ룬¼¸ºõ¾ÍÒª×Ô¼ºÀ´¸ºÔðµ±Ê±µÄÊý¾Ý²»ÍêÕûÎÊÌâÁË¡£

±È½ÏºÃµÄ×ö·¨ÊÇÏòÓû§ÌṩһЩ·´À¡£¬ËµÃ÷ÔÚ´¦ÓÚ¾ÍÐ÷״̬ 3 ʱ£¬ºÜ¿ì¾Í»áÓÐÏìÓ¦ÁË¡£¾¡¹ÜʹÓà alert() Ö®ÀàµÄº¯ÊýÏÔÈ»²»ÊÇʲôºÃÖ÷Òâ ¡ª¡ª ʹÓà Ajax È»ºóʹÓÃÒ»¸ö¾¯¸æ¶Ô»°¿òÀ´×èÈûÓû§ÏÔÈ»ÊÇ´íÎóµÄ ¡ª¡ª ²»¹ýÄú¿ÉÒÔÔÚ¾ÍÐ÷״̬·¢Éú±ä»¯Ê±¸üÐÂ±íµ¥»òÒ³ÃæÖеÄÓò¡£ÀýÈ磬¶ÔÓÚ¾ÍÐ÷״̬ 1 À´ËµÒª½«½ø¶ÈָʾÆ÷µÄ¿í¶ÈÉèÖÃΪ 25%£¬¶ÔÓÚ¾ÍÐ÷״̬ 2 À´ËµÒª½«½ø¶ÈָʾÆ÷µÄ¿í¶ÈÉèÖÃΪ 50%£¬¶ÔÓÚ¾ÍÐ÷״̬ 3 À´ËµÒª½«½ø¶ÈָʾÆ÷µÄ¿í¶ÈÉèÖÃΪ 75%£¬µ±¾ÍÐ÷״̬Ϊ 4 ʱ½«½ø¶ÈָʾÆ÷µÄ¿í¶ÈÉèÖÃΪ 100%£¨Íê³É£©¡£

µ±È»£¬ÕýÈçÄúÒѾ­¿´µ½µÄÒ»Ñù£¬ÕâÖÖ·½·¨·Ç³£´ÏÃ÷£¬µ«ËüÊÇÒÀÀµÓÚä¯ÀÀÆ÷µÄ¡£ÔÚ Opera ÉÏ£¬ÄúÓÀÔ¶¶¼²»»á¿´µ½Ç°Á½¸ö¾ÍÐ÷״̬£¬¶øÔÚ Safari ÉÏÔòûÓеÚÒ»¸ö£¨1£©¡£ÓÉÓÚÕâ¸öÔ­Òò£¬ÎÒ½«Õâ¶Î´úÂëÁô×÷Á·Ï°£¬¶øûÓÐÔÚ±¾ÎÄÖаüÀ¨½øÀ´¡£

ÏÖÔÚÓ¦¸ÃÀ´¿´Ò»ÏÂ״̬´úÂëÁË¡£

ÉîÈëÁ˽â HTTP ״̬´úÂë

ÓÐÁ˾ÍÐ÷״̬ºÍÄúÔÚ Ajax ±à³Ì¼¼ÊõÖÐѧϰµ½µÄ·þÎñÆ÷µÄÏìÓ¦£¬Äú¾Í¿ÉÒÔΪ Ajax Ó¦ÓóÌÐòÌí¼ÓÁíÍâÒ»¼¶¸´ÔÓÐÔÁË ¡ª¡ª ÕâҪʹÓà HTTP ״̬´úÂë¡£ÕâЩ´úÂë¶ÔÓÚ Ajax À´Ëµ²¢Ã»ÓÐʲôÐÂÏÊ¡£´Ó Web ³öÏÖÒÔÀ´£¬ËüÃǾÍÒѾ­´æÔÚÁË¡£ÔÚ Web ä¯ÀÀÆ÷ÖÐÄú¿ÉÄÜÒѾ­¿´µ½¹ý¼¸¸ö״̬´úÂ룺

¡¤401£ºÎ´¾­ÊÚȨ
¡¤403£º½ûÖ¹
¡¤404£ºÃ»ÕÒµ½

Äú¿ÉÒÔÕÒµ½¸ü¶àµÄ״̬´úÂ루ÍêÕûÇåµ¥Çë²Î¼û ²Î¿¼×ÊÁÏ£©¡£ÒªÎª Ajax Ó¦ÓóÌÐòÁíÍâÌí¼ÓÒ»²ã¿ØÖƺÍÏìÓ¦£¨ÒÔ¼°¸üΪ½¡×³µÄ´íÎó´¦Àí£©»úÖÆ£¬ÄúÐèÒªÊʵ±µØ²é¿´ÇëÇóºÍÏìÓ¦ÖеÄ״̬´úÂë¡£

200£ºÒ»ÇÐÕý³£

Ôںܶà Ajax Ó¦ÓóÌÐòÖУ¬Äú½«¿´µ½Ò»¸ö»Øµ÷º¯Êý£¬Ëü¸ºÔð¼ì²é¾ÍÐ÷״̬£¬È»ºó¼ÌÐøÀûÓôӷþÎñÆ÷ÏìÓ¦Öзµ»ØµÄÊý¾Ý£¬Èç Çåµ¥ 6 Ëùʾ¡£

Çåµ¥ 6. ºöÂÔ״̬´úÂëµÄ»Øµ÷º¯Êý

   function updatePage() {
     if (request.readyState == 4) {
       var response = request.responseText.split("|");
       document.getElementById("order").value = response[0];
       document.getElementById("address").innerHTML =
         response[1].replace(/\n/g, "<br />");
     }
   }

Õâ¶ÔÓÚ Ajax ±à³ÌÀ´ËµÖ¤Ã÷ÊÇÒ»ÖÖ¶ÌÊÓ¶ø´íÎóµÄ·½·¨¡£Èç¹û½Å±¾ÐèÒªÈÏÖ¤£¬¶øÇëÇóȴûÓÐÌṩÓÐЧµÄÖ¤Ê飬ÄÇô·þÎñÆ÷¾Í»á·µ»ØÖîÈç 403 »ò 401 Ö®ÀàµÄ´íÎó´úÂ롣Ȼ¶ø£¬ÓÉÓÚ·þÎñÆ÷¶ÔÇëÇó½øÐÐÁËÓ¦´ð£¬Òò´Ë¾ÍÐ÷״̬¾Í±»ÉèÖÃΪ 4£¨¼´Ê¹Ó¦´ð²¢²»ÊÇÇëÇóËùÆÚÍûµÄÒ²ÊÇÈç´Ë£©¡£×îÖÕ£¬Óû§Ã»ÓлñµÃÓÐЧÊý¾Ý£¬µ± JavaScript ÊÔͼʹÓò»´æÔڵķþÎñÆ÷Êý¾Ýʱ¾Í¿ÉÄÜ»á³öÏÖÑÏÖصĴíÎó¡£

Ëü»¨·ÑÁË×îСµÄŬÁ¦À´È·±£·þÎñÆ÷²»µ«Íê³ÉÁËÒ»¸öÇëÇ󣬶øÇÒ»¹·µ»ØÁËÒ»¸ö ¡°Ò»ÇÐÁ¼ºÃ¡± µÄ״̬´úÂë¡£Õâ¸ö´úÂëÊÇ "200"£¬ËüÊÇͨ¹ý XMLHttpRequest ¶ÔÏóµÄ status ÊôÐÔÀ´±¨¸æµÄ¡£ÎªÁËÈ·±£·þÎñÆ÷²»µ«Íê³ÉÁËÒ»¸öÇëÇ󣬶øÇÒ»¹±¨¸æÁËÒ»¸ö OK ״̬£¬ÇëÔÚÄúµÄ»Øµ÷º¯ÊýÖÐÌí¼ÓÁíÍâÒ»¸ö¼ì²é¹¦ÄÜ£¬Èç Çåµ¥ 7 Ëùʾ¡£

Çåµ¥ 7. ¼ì²éÓÐЧ״̬´úÂë

   function updatePage() {
     if (request.readyState == 4) {
       if (request.status == 200) {
         var response = request.responseText.split("|");
         document.getElementById("order").value = response[0];
         document.getElementById("address").innerHTML =
           response[1].replace(/\n/g, "<br />");
       } else
         alert("status is " + request.status);
     }
   }

ͨ¹ýÌí¼ÓÕ⼸ÐдúÂ룬Äú¾Í¿ÉÒÔÈ·ÈÏÊÇ·ñ´æÔÚÎÊÌ⣬Óû§»á¿´µ½Ò»¸öÓÐÓõĴíÎóÏûÏ¢£¬¶ø²»½ö½öÊÇ¿´µ½Ò»¸öÓɶÏÕÂÈ¡ÒåµÄÊý¾ÝËù¹¹³ÉµÄÒ³Ã棬¶øûÓÐÈκνâÊÍ¡£

Öض¨ÏòºÍÖØзÓÉ

ÔÚÉîÈë½éÉÜÓйشíÎóµÄÄÚÈÝ֮ǰ£¬ÎÒÃÇÓбØÒªÀ´ÌÖÂÛÒ»ÏÂÓйØÒ»¸öÔÚʹÓà Ajax ʱ ²¢²»ÐèÒª ¹ØÐĵÄÎÊÌâ ¡ª¡ª Öض¨Ïò¡£ÔÚ HTTP ״̬´úÂëÖУ¬ÕâÊÇ 300 ϵÁеÄ״̬´úÂ룬°üÀ¨£º

¡¤301£ºÓÀ¾ÃÒƶ¯
¡¤302£ºÕÒµ½£¨ÇëÇó±»ÖØж¨Ïòµ½ÁíÍâÒ»¸ö URL/URI ÉÏ£©
¡¤305£ºÊ¹ÓôúÀí£¨ÇëÇó±ØÐëʹÓÃÒ»¸ö´úÀíÀ´·ÃÎÊËùÇëÇóµÄ×ÊÔ´£©

Ajax ³ÌÐòÔ±¿ÉÄܲ¢²»Ì«¹ØÐÄÓйØÖض¨ÏòµÄÎÊÌ⣬ÕâÊÇÓÉÓÚÁ½·½ÃæµÄÔ­Òò£º

¡¤Ê×ÏÈ£¬Ajax Ó¦ÓóÌÐòͨ³£¶¼ÊÇΪһ¸öÌض¨µÄ·þÎñÆ÷¶Ë½Å±¾¡¢servlet »òÓ¦ÓóÌÐò¶ø±àдµÄ¡£¶ÔÓÚÄÇЩÄú¿´²»µ½¾ÍÏûʧÁ˵Ä×é¼þÀ´Ëµ£¬Ajax ³ÌÐòÔ±¾Í²»Ì«Çå³þÁË¡£Òò´ËÓÐʱÄú»áÖªµÀ×ÊÔ´ÒѾ­Òƶ¯ÁË£¨ÒòΪÄúÒƶ¯ÁËËü£¬»òÕßͨ¹ýijÖÖÊÖ¶ÎÒƶ¯ÁËËü£©£¬½ÓÏÂÀ´ÒªÐÞ¸ÄÇëÇóÖÐµÄ URL£¬²¢ÇÒ²»»áÔÙÅöµ½ÕâÖÖ½á¹ûÁË¡£
¸üΪÖØÒªµÄÒ»¸öÔ­ÒòÊÇ£ºAjax Ó¦ÓóÌÐòºÍÇëÇó¶¼ÊÇ·â×°ÔÚɳºÐÖеġ£Õâ¾ÍÒâζ×ÅÌṩÉú³É Ajax ÇëÇóµÄ Web Ò³ÃæµÄÓò±ØÐëÊǶÔÕâЩÇëÇó½øÐÐÏìÓ¦µÄÓò¡£Òò´Ë ebay.com ËùÌṩµÄ Web Ò³Ãæ¾Í²»ÄܶÔÒ»¸öÔÚ amazon.com ÉÏÔËÐеĽű¾Éú³ÉÒ»¸ö Ajax ·ç¸ñµÄÇëÇó£»ÔÚ ibm.com É쵀 Ajax Ó¦ÓóÌÐòÒ²ÎÞ·¨¶ÔÔÚ netbeans.org ÉÏÔËÐÐµÄ servlets ·¢³öÇëÇó¡£
¡¤½á¹ûÊÇÄúµÄÇëÇóÎÞ·¨Öض¨Ïòµ½ÆäËû·þÎñÆ÷ÉÏ£¬¶ø²»»á²úÉú°²È«ÐÔ´íÎó¡£ÔÚÕâЩÇé¿öÖУ¬Äú¸ù±¾¾Í²»»áµÃµ½×´Ì¬´úÂ롣ͨ³£ÔÚµ÷ÊÔ¿ØÖÆ̨Öж¼»á²úÉúÒ»¸ö JavaScript ´íÎó¡£Òò´Ë£¬ÔÚ¶Ô״̬´úÂë½øÐгä·ÖµÄ¿¼ÂÇÖ®ºó£¬Äú¾Í¿ÉÒÔÍêÈ«ºöÂÔÖض¨Ïò´úÂëµÄÎÊÌâÁË¡£

½á¹ûÊÇÄúµÄÇëÇóÎÞ·¨Öض¨Ïòµ½ÆäËû·þÎñÆ÷ÉÏ£¬¶ø²»»á²úÉú°²È«ÐÔ´íÎó¡£ÔÚÕâЩÇé¿öÖУ¬Äú¸ù±¾¾Í²»»áµÃµ½×´Ì¬´úÂ롣ͨ³£ÔÚµ÷ÊÔ¿ØÖÆ̨Öж¼»á²úÉúÒ»¸ö JavaScript ´íÎó¡£Òò´Ë£¬ÔÚ¶Ô״̬´úÂë½øÐгä·ÖµÄ¿¼ÂÇÖ®ºó£¬Äú¾Í¿ÉÒÔÍêÈ«ºöÂÔÖض¨Ïò´úÂëµÄÎÊÌâÁË¡£

´íÎó

Ò»µ©½ÓÊÕµ½×´Ì¬´úÂë 200 ²¢ÇÒÒâʶµ½¿ÉÒԺܴó³Ì¶ÈÉϺöÂÔ 300 ϵÁеÄ״̬´úÂëÖ®ºó£¬ËùÐèÒªµ£ÐĵÄΨһһ×é´úÂë¾ÍÊÇ 400 ϵÁеĴúÂëÁË£¬Õâ˵Ã÷Á˲»Í¬ÀàÐ͵ĴíÎó¡£»ØÍ·ÔÙÀ´¿´Ò»Ï Çåµ¥ 7£¬²¢×¢ÒâÔÚ¶Ô´íÎó½øÐд¦Àíʱ£¬Ö»½«ÉÙÊý³£¼ûµÄ´íÎóÏûÏ¢Êä³ö¸øÓû§ÁË¡£¾¡¹ÜÕâÊdz¯ÕýÈ··½ÏòÇ°½øµÄÒ»²½£¬µ«ÊÇÒª¸æËß´ÓÊÂÓ¦ÓóÌÐò¿ª·¢µÄÓû§ºÍ³ÌÐòÔ±¾¿¾¹·¢ÉúÁËʲôÎÊÌ⣬ÕâЩÏûÏ¢ÈÔÈ»ÊÇûÓÐÌ«´óÓô¦µÄ¡£

Ê×ÏÈ£¬ÎÒÃÇÒªÌí¼Ó¶ÔÕÒ²»µ½µÄÒ³µÄÖ§³Ö¡£Êµ¼ÊÉÏÕâÔڴ󲿷ֲúƷϵͳÖж¼²»Ó¦¸Ã³öÏÖ£¬µ«ÊÇÔÚ²âÊԽű¾Î»Ö÷¢Éú±ä»¯»ò³ÌÐòÔ±ÊäÈëÁË´íÎóµÄ URL ʱ£¬ÕâÖÖÇé¿ö²¢²»º±¼û¡£Èç¹ûÄú¿ÉÒÔ×ÔÈ»µØ±¨¸æ 404 ´íÎ󣬾ͿÉÒÔΪÄÇЩÀ§ÈŲ»¿°µÄÓû§ºÍ³ÌÐòÔ±Ìṩ¸ü¶à°ïÖú¡£ÀýÈ磬Èç¹û·þÎñÆ÷ÉϵÄÒ»¸ö½Å±¾±»É¾³ýÁË£¬ÎÒÃǾͿÉÒÔʹÓà Çåµ¥ 7 ÖеĴúÂ룬ÕâÑùÓû§¾Í»á¿´µ½Ò»¸öÈç ͼ 5 ËùʾµÄ·ÇÃèÊöÐÔ´íÎó¡£

±ß½çÇé¿öºÍÀ§ÄÑÇé¿ö

¿´µ½ÏÖÔÚ£¬Ò»Ð©ÐÂÊÖ³ÌÐòÔ±¾Í¿ÉÄÜ»áÕ⾿¾¹ÊÇÒªÌÖÂÛʲôÄÚÈÝ¡£ÓÐÒ»µãÊÂʵ´ó¼ÒÐèÒªÖªµÀ£ºÖ»Óв»µ½ 5% µÄ Ajax ÇëÇóÐèҪʹÓÃÖîÈç 2¡¢3 Ö®ÀàµÄ¾ÍÐ÷״̬ºÍÖîÈç 403 Ö®ÀàµÄ״̬´úÂ루ʵ¼ÊÉÏ£¬Õâ¸ö±ÈÂÊ¿ÉÄܸü½Ó½üÓÚ 1% ÉõÖÁ¸üÉÙ£©¡£ÕâЩÇé¿ö·Ç³£ÖØÒª£¬³ÆΪ ±ß½çÇé¿ö£¨edge case£© ¡ª¡ª ËüÃÇÖ»»áÔÚһЩ·Ç³£ÌØÊâµÄÇé¿öÏ·¢Éú£¬ÆäÖÐÓöµ½µÄ¶¼ÊÇ×îÆæÌصÄÎÊÌâ¡£ËäÈ»ÕâЩÇé¿ö²¢²»Æձ飬µ«ÊÇÕâЩ±ß½çÇé¿öÈ´Õ¼¾ÝÁ˴󲿷ÖÓû§ËùÅöµ½µÄÎÊÌâµÄ 80%!

¶ÔÓÚµäÐ͵ÄÓû§À´Ëµ£¬Ó¦ÓóÌÐò 100 ´Î¶¼ÊÇÕý³£¹¤×÷µÄÕâ¸öÊÂʵͨ³£¶¼»á±»Íü¼Ç£¬È»¶øÓ¦ÓóÌÐòÖ»ÒªÒ»´Î³ö´í¾Í»á±»ËûÃÇÇå³þµØ¼Çס¡£Èç¹ûÄú¿ÉÒԺܺõش¦Àí±ß½çÇé¿ö£¨»òÀ§ÄÑÇé¿ö£©£¬¾Í¿ÉÒÔΪÔٴηÃÎÊÕ¾µãµÄÓû§ÌṩÂúÒâµÄ»Ø±¨¡£

ͼ 5. ³£¼û´íÎó´¦Àí

 

Óû§ÎÞ·¨ÅжÏÎÊÌ⾿¾¹ÊÇÈÏÖ¤ÎÊÌ⡢ûÕÒµ½½Å±¾£¨´Ë´¦¾ÍÊÇÕâÖÖÇé¿ö£©¡¢Óû§´íÎó»¹ÊÇ´úÂëÖÐÓÐЩµØ·½²úÉúÁËÎÊÌâ¡£Ìí¼ÓһЩ¼òµ¥µÄ´úÂë¿ÉÒÔÈÃÕâ¸ö´íÎó¸ü¼Ó¾ßÌå¡£Çë²ÎÕÕ Çåµ¥ 8£¬Ëü¸ºÔð´¦ÀíûÕÒµ½µÄ½Å±¾»òÈÏÖ¤·¢Éú´íÎóµÄÇé¿ö£¬ÔÚ³öÏÖÕâЩ´íÎóʱ¶¼»á¸ø³ö¾ßÌåµÄÏûÏ¢¡£

Çåµ¥ 8. ¼ì²éÓÐЧ״̬´úÂë

   function updatePage() {
     if (request.readyState == 4) {
       if (request.status == 200) {
         var response = request.responseText.split("|");
         document.getElementById("order").value = response[0];
         document.getElementById("address").innerHTML =
           response[1].replace(/\n/g, "<br />");
       } else if (request.status == 404) {
         alert ("Requested URL is not found.");
       } else if (request.status == 403) {
         alert("Access denied.");
       } else
         alert("status is " + request.status);
     }
   }

ËäÈ»ÕâÒÀÈ»Ï൱¼òµ¥£¬µ«ÊÇËüµÄÈ·¶àÌṩÁËһЩÓÐÓõÄÐÅÏ¢¡£Í¼ 6 ¸ø³öÁËÓë ͼ 5 ÏàͬµÄ´íÎ󣬵«ÊÇÕâÒ»´Î´íÎó´¦Àí´úÂëÏòÓû§»ò³ÌÐòÔ±¸üºÃµØ˵Ã÷Á˾¿¾¹·¢ÉúÁËʲô¡£

ͼ 6. ÌØÊâ´íÎó´¦Àí

 

ÔÚÎÒÃÇ×Ô¼ºµÄÓ¦ÓóÌÐòÖУ¬¿ÉÒÔ¿¼ÂÇÔÚ·¢ÉúÈÏ֤ʧ°ÜµÄÇé¿öʱÇå³ýÓû§ÃûºÍÃÜÂ룬²¢ÏòÆÁÄ»ÉÏÌí¼ÓÒ»Ìõ´íÎóÏûÏ¢¡£ÎÒÃÇ¿ÉÒÔʹÓÃÀàËƵķ½·¨À´¸üºÃµØ´¦ÀíÕÒ²»µ½½Å±¾»òÆäËû 400 ÀàÐ͵ĴíÎó£¨ÀýÈç 405 ±íʾ²»ÔÊÐíʹÓÃÖîÈç·¢ËÍ HEAD ÇëÇóÖ®À಻¿É½ÓÊܵÄÇëÇó·½·¨£¬¶ø 407 Ôò±íʾÐèÒª½øÐдúÀíÈÏÖ¤£©¡£È»¶ø²»¹Ü²ÉÓÃÄÄÖÖÑ¡Ôñ£¬¶¼ÐèÒª´Ó¶Ô·þÎñÆ÷ÉÏ·µ»ØµÄ״̬´úÂ뿪ʼÈëÊÖ½øÐд¦Àí¡£

ÆäËûÇëÇóÀàÐÍ

Èç¹ûÄúÕæÏ£Íû¿ØÖÆ XMLHttpRequest ¶ÔÏ󣬿ÉÒÔ¿¼ÂÇ×îºóʵÏÖÕâÖÖ¹¦ÄÜ ¡ª¡ª ½« HEAD ÇëÇóÌí¼Óµ½Ö¸ÁîÖС£ÔÚÇ°Á½ÆªÎÄÕÂÖУ¬ÎÒÃÇÒѾ­½éÉÜÁËÈçºÎÉú³É GET ÇëÇó£»ÔÚÂíÉϾÍÒª·¢±íµÄһƪÎÄÕÂÖУ¬Äú»áѧϰÓйØʹÓà POST ÇëÇó½«Êý¾Ý·¢Ë͵½·þÎñÆ÷ÉϵÄ֪ʶ¡£²»¹ý±¾×ÅÔöÇ¿´íÎó´¦ÀíºÍÐÅÏ¢ËѼ¯µÄ¾«Éñ£¬ÄúÓ¦¸ÃѧϰÈçºÎÉú³É HEAD ÇëÇó¡£

Éú³ÉÇëÇó

ʵ¼ÊÉÏÉú³É HEAD ÇëÇó·Ç³£¼òµ¥£»Äú¿ÉÒÔʹÓà "HEAD"£¨¶ø²»ÊÇ "GET" »ò "POST"£©×÷ΪµÚÒ»¸ö²ÎÊýÀ´µ÷Óà open() ·½·¨£¬Èç Çåµ¥ 9 Ëùʾ¡£

Çåµ¥ 9. ʹÓà Ajax Éú³ÉÒ»¸ö HEAD ÇëÇó

   function getSalesData() {
     createRequest();
     var url = "/boards/servlet/UpdateBoardSales";
     request.open("HEAD", url, true);
     request.onreadystatechange = updatePage;
     request.send(null);
   }

µ±ÄúÕâÑùÉú³ÉÒ»¸ö HEAD ÇëÇóʱ£¬·þÎñÆ÷²¢²»»áÏñ¶Ô GET »ò POST ÇëÇóÒ»Ñù·µ»ØÒ»¸öÕæÕýµÄÏìÓ¦¡£Ïà·´£¬·þÎñÆ÷Ö»»á·µ»Ø×ÊÔ´µÄ Í·£¨header£©£¬Õâ°üÀ¨ÏìÓ¦ÖÐÄÚÈÝ×îºóÐ޸ĵÄʱ¼ä¡¢ÇëÇó×ÊÔ´ÊÇ·ñ´æÔںͺܶàÆäËûÓÐÓÃÐÅÏ¢¡£Äú¿ÉÒÔÔÚ·þÎñÆ÷´¦Àí²¢·µ»Ø×ÊԴ֮ǰʹÓÃÕâЩÐÅÏ¢À´Á˽âÓйØ×ÊÔ´µÄÐÅÏ¢¡£

¶ÔÓÚÕâÖÖÇëÇóÄú¿ÉÒÔ×öµÄ×î¼òµ¥µÄÊÂÇé¾ÍÊǼòµ¥µØÊä³öËùÓеÄÏìӦͷµÄÄÚÈÝ¡£Õâ¿ÉÒÔÈÃÄúÁ˽âͨ¹ý HEAD ÇëÇó¿ÉÒÔʹÓÃʲô¡£Çåµ¥ 10 ÌṩÁËÒ»¸ö¼òµ¥µÄ»Øµ÷º¯Êý£¬ÓÃÀ´Êä³ö´Ó HEAD ÇëÇóÖлñµÃµÄÏìӦͷµÄÄÚÈÝ¡£

Çåµ¥ 10. Êä³ö´Ó HEAD ÇëÇóÖлñµÃµÄÏìӦͷµÄÄÚÈÝ

   function updatePage() {
     if (request.readyState == 4) {
       alert(request.getAllResponseHeaders());
     }
   }

Çë²Î¼û ͼ 7£¬ÆäÖÐÏÔʾÁË´ÓÒ»¸öÏò·þÎñÆ÷·¢³öµÄ HEAD ÇëÇóµÄ¼òµ¥ Ajax Ó¦ÓóÌÐò·µ»ØµÄÏìӦͷ¡£

 

Äú¿ÉÒÔµ¥¶ÀʹÓÃÕâЩͷ£¨´Ó·þÎñÆ÷ÀàÐ͵½ÄÚÈÝÀàÐÍ£©ÔÚ Ajax Ó¦ÓóÌÐòÖÐÌṩÆäËûÐÅÏ¢»ò¹¦ÄÜ¡£

¼ì²é URL

ÄúÒѾ­¿´µ½Á˵± URL ²»´æÔÚʱӦ¸ÃÈçºÎ¼ì²é 404 ´íÎó¡£Èç¹ûÕâ±ä³ÉÒ»¸ö³£¼ûµÄÎÊÌâ ¡ª¡ª ¿ÉÄÜÊÇȱÉÙÁËÒ»¸öÌض¨µÄ½Å±¾»ò servlet ¡ª¡ª ÄÇôÄú¾Í¿ÉÄÜ»áÏ£ÍûÔÚÉú³ÉÍêÕûµÄ GET »ò POST ÇëÇó֮ǰÀ´¼ì²éÕâ¸ö URL¡£ÒªÊµÏÖÕâÖÖ¹¦ÄÜ£¬Éú³ÉÒ»¸ö HEAD ÇëÇó£¬È»ºóÔڻص÷º¯ÊýÖмì²é 404 ´íÎó£»Çåµ¥ 11 ¸ø³öÁËÒ»¸ö¼òµ¥µÄ»Øµ÷º¯Êý¡£

Çåµ¥ 11. ¼ì²éij¸ö URL ÊÇ·ñ´æÔÚ

   function updatePage() {
     if (request.readyState == 4) {
       if (request.status == 200) {
         alert("URL exists");
       } else if (request.status == 404) {
         alert("URL does not exist.");
       } else {
         alert("Status is: " + request.status);
       }
     }
   }

³ÏʵµØ˵£¬Õâ¶Î´úÂëµÄ¼ÛÖµ²¢²»Ì«´ó¡£·þÎñÆ÷±ØÐë¶ÔÇëÇó½øÐÐÏìÓ¦£¬²¢¹¹ÔìÒ»¸öÏìÓ¦À´Ìî³äÄÚÈݳ¤¶ÈµÄÏìӦͷ£¬Òò´Ë²¢²»ÄܽÚÊ¡Èκδ¦Àíʱ¼ä¡£ÁíÍ⣬Õ⻨·ÑµÄʱ¼äÓëÉú³ÉÇëÇó²¢Ê¹Óà HEAD ÇëÇóÀ´²é¿´ URL ÊÇ·ñ´æÔÚËùÐèÒªµÄʱ¼äÒ»Ñù¶à£¬ÒòΪËüÒªÉú³ÉʹÓà GET »ò POST µÄÇëÇ󣬶ø²»½ö½öÊÇÈç Çåµ¥ 7 ËùʾһÑùÀ´´¦Àí´íÎó´úÂë¡£²»¹ý£¬ÓÐʱȷÇеØÁ˽âĿǰʲô¿ÉÓÃÒ²ÊǷdz£ÓÐÓõģ»ÄúÓÀÔ¶²»»áÖªµÀºÎʱ´´ÔìÁ¦¾Í»á±Å·¢»òÕߺÎʱÐèÒª HEAD ÇëÇó£¡

ÓÐÓÃµÄ HEAD ÇëÇó

Äú»á·¢ÏÖ HEAD ÇëÇó·Ç³£ÓÐÓõÄÒ»¸öÁìÓòÊÇÓÃÀ´²é¿´ÄÚÈݵij¤¶È»òÄÚÈݵÄÀàÐÍ¡£ÕâÑù¿ÉÒÔÈ·¶¨ÊÇ·ñÐèÒª·¢»Ø´óÁ¿Êý¾ÝÀ´´¦ÀíÇëÇ󣬺ͷþÎñÆ÷ÊÇ·ñÊÔͼ·µ»Ø¶þ½øÖÆÊý¾Ý£¬¶ø²»ÊÇ HTML¡¢Îı¾»ò XML£¨ÔÚ JavaScript ÖУ¬Õâ 3 ÖÖÀàÐ͵ÄÊý¾Ý¶¼±È¶þ½øÖÆÊý¾Ý¸üÈÝÒ×´¦Àí£©¡£

ÔÚÕâЩÇé¿öÖУ¬ÄúֻʹÓÃÁËÊʵ±µÄÍ·Ãû£¬²¢½«Æä´«µÝ¸ø XMLHttpRequest ¶ÔÏóµÄ getResponseHeader() ·½·¨¡£Òò´ËÒª»ñÈ¡ÏìÓ¦µÄ³¤¶È£¬Ö»ÐèÒªµ÷Óà request.getResponseHeader("Content-Length");¡£Òª»ñÈ¡ÄÚÈÝÀàÐÍ£¬ÇëʹÓà request.getResponseHeader("Content-Type");¡£

ÔںܶàÓ¦ÓóÌÐòÖУ¬Éú³É HEAD ÇëÇó²¢Ã»ÓÐÔö¼ÓÈκι¦ÄÜ£¬ÉõÖÁ¿ÉÄܻᵼÖÂÇëÇóËٶȱäÂý£¨Í¨¹ýÇ¿ÖÆÉú³ÉÒ»¸ö HEAD ÇëÇóÀ´»ñÈ¡ÓйØÏìÓ¦µÄÊý¾Ý£¬È»ºóÔÚʹÓÃÒ»¸ö GET »ò POST ÇëÇóÀ´ÕæÕý»ñÈ¡ÏìÓ¦£©¡£È»¶ø£¬ÔÚ³öÏÖÄú²»È·¶¨Óйؽű¾»ò·þÎñÆ÷¶Ë×é¼þµÄÇé¿öʱ£¬Ê¹Óà HEAD ÇëÇó¿ÉÒÔ»ñȡһЩ»ù±¾µÄÊý¾Ý£¬¶ø²»ÐèÒª¶ÔÏìÓ¦Êý¾ÝÕæÕý½øÐд¦Àí£¬Ò²²»ÐèÒª´óÁ¿µÄ´ø¿íÀ´·¢ËÍÏìÓ¦¡£

½áÊøÓï

¶ÔÓںܶà Ajax ºÍ Web ³ÌÐòÔ±À´Ëµ£¬±¾ÎÄÖнéÉܵÄÄÚÈÝËƺõÊÇÌ«¸ß¼¶ÁË¡£Éú³É HEAD ÇëÇóµÄ¼ÛÖµÊÇʲôÄØ£¿µ½µ×ÔÚʲôÇé¿öÏÂÐèÒªÔÚ JavaScript ÖÐÏÔʽµØ´¦ÀíÖض¨Ïò״̬´úÂëÄØ£¿ÕâЩ¶¼ÊǺܺõÄÎÊÌ⣻¶ÔÓÚ¼òµ¥µÄÓ¦ÓóÌÐòÀ´Ëµ£¬´ð°¸ÊÇÕâЩ¸ß¼¶¼¼ÊõµÄ¼ÛÖµ²¢²»ÊǷdz£´ó¡£

È»¶ø£¬Web ÒѾ­²»ÔÙÊÇÖ»ÐèʵÏÖ¼òµ¥Ó¦ÓóÌÐòµÄµØ·½ÁË£»Óû§ÒѾ­±äµÃ¸ü¼Ó¸ß¼¶£¬¿Í»§ÆÚÍûÄܹ»»ñµÃ¸üºÃµÄÎȶ¨ÐÔ¡¢¸ü¸ß¼¶µÄ´íÎ󱨸棬Èç¹ûÓ¦ÓóÌÐòÓÐ 1% µÄʱ¼äÍ£»ú£¬ÄÇô¾­Àí¾Í¿ÉÄÜ»áÒò´Ë¶ø±»½â¹Í¡£

Òò´ËÄúµÄ¹¤×÷¾Í²»Äܽö½ö¾ÖÏÞÓÚ¼òµ¥µÄÓ¦ÓóÌÐòÁË£¬¶øÊÇÐèÒª¸üÉîÈëÀí½â XMLHttpRequest¡£

¡¤Èç¹ûÄú¿ÉÒÔ¿¼ÂǸ÷ÖÖ¾ÍÐ÷״̬ ¡ª¡ª ²¢ÇÒÀí½âÁËÕâЩ¾ÍÐ÷״̬ÔÚ²»Í¬ä¯ÀÀÆ÷Ö®¼äµÄÇø±ð ¡ª¡ª ¾Í¿ÉÒÔ¿ìËÙµ÷ÊÔÓ¦ÓóÌÐòÁË¡£ÄúÉõÖÁ¿ÉÒÔ»ùÓÚ¾ÍÐ÷״̬¶ø¿ª·¢Ò»Ð©´´ÔìÐԵŦÄÜ£¬²¢ÏòÓû§ºÍ¿Í»§»Ø±¨ÇëÇóµÄ״̬¡£
¡¤Èç¹ûÄúÒª¶Ô״̬´úÂë½øÐпØÖÆ£¬¾Í¿ÉÒÔÉèÖÃÓ¦ÓóÌÐòÀ´´¦Àí½Å±¾´íÎó¡¢·ÇÔ¤ÆÚµÄÏìÓ¦ÒÔ¼°±ßÔµÇé¿ö¡£½á¹ûÊÇÓ¦ÓóÌÐòÔÚËùÓеÄʱ¼ä¶¼¿ÉÒÔÕý³£¹¤×÷£¬¶ø²»½ö½öÊÇÖ»ÄÜÒ»Çж¼Õý³£µÄÇé¿öϲÅÄÜÔËÐС£
¡¤Ôö¼ÓÕâÖÖÉú³É HEAD ÇëÇóµÄÄÜÁ¦£¬¼ì²éij¸ö URL ÊÇ·ñ´æÔÚ£¬ÒÔ¼°È·ÈÏij¸öÎļþÊÇ·ñ±»Ð޸Ĺý£¬ÕâÑù¾Í¿ÉÒÔÈ·±£Óû§¿ÉÒÔ»ñµÃÓÐЧµÄÒ³Ã棬Óû§Ëù¿´µ½µÄÐÅÏ¢¶¼ÊÇ×îеģ¬£¨×îÖØÒªµÄÊÇ£©ÈÃËûÃǾªÑÈÕâ¸öÓ¦ÓóÌÐòÊÇÈçºÎ½¡×³ºÍͨÓá£
±¾ÎĵÄÄ¿µÄ²¢·ÇÊÇÒªÈÃÄúµÄÓ¦ÓóÌÐòÏÔµÃÊ®·Ö»ªÀö£¬¶øÊÇ°ïÖúÄúÈ¥µô»ÆÉ«¾Û¹âµÆºóÖصãÕÑÏÔÎÄ×ÖµÄÃÀÀö£¬»òÕßÍâ¹Û¸üÏñ×ÀÃæÒ»Ñù¡£¾¡¹ÜÕâЩ¶¼ÊÇ Ajax µÄ¹¦ÄÜ£¨ÔÚºóÐø¼¸ÆªÎÄÕÂÖоͻá½éÉÜ£©£¬²»¹ýËüÃÇÈ´ÏñÊǵ°¸â±íÃæµÄÒ»²ãÄÌÓÍ¡£Èç¹ûÄú¿ÉÒÔʹÓà Ajax À´¹¹½¨Ò»¸ö¼áʵµÄ»ù´¡£¬ÈÃÓ¦ÓóÌÐò¿ÉÒԺܺõش¦Àí´íÎóºÍÎÊÌ⣬Óû§¾Í»á·µ»ØÄúµÄÕ¾µãºÍÓ¦ÓóÌÐò¡£ÔÚ½ÓÏÂÀ´µÄÎÄÕÂÖУ¬ÎÒÃǽ«Ìí¼ÓÕâÖÖÖ±¹ÛµÄ¼¼ÇÉ£¬Õâ»áÈÿͻ§Ð˷ܵ÷¢¶¶¡££¨ÈÏÕæµØ˵£¬ÄúÒ»¶¨²»Ï£Íû´í¹ýÏÂһƪÎÄÕ£¡£©

¡¡

1.±¾Õ¾×ñÑ­ÐÐÒµ¹æ·¶£¬ÈκÎתÔصĸå¼þ¶¼»áÃ÷È·±ê×¢×÷ÕߺÍÀ´Ô´£»2.±¾Õ¾µÄÔ­´´ÎÄÕ£¬ÇëתÔØʱÎñ±Ø×¢Ã÷ÎÄÕÂ×÷ÕߺÍÀ´Ô´£¬²»×ðÖØÔ­´´µÄÐÐΪÎÒÃǽ«×·¾¿ÔðÈΣ»3.×÷ÕßͶ¸å¿ÉÄܻᾭÎÒÃDZ༭Ð޸Ļò²¹³ä¡£

Ïà¹ØÎÄÕÂ
  • [ËÄÌìѧ»áajax] ѧϰAjax½Ì³ÌµÚÈýÌì,Ajax Öеĸ߼¶ÇëÇóºÍÏìÓ¦(2)

    [ËÄÌìѧ»áajax] ѧϰAjax½Ì³ÌµÚÈýÌì,Ajax Öеĸ߼¶ÇëÇóºÍÏìÓ¦(2)

    2015-10-09 14:20

  • [ËÄÌìѧ»áajax] ѧϰAjax½Ì³ÌµÚ¶þÌ죬JavaScript ºÍ Ajax ·¢³öÒì

    [ËÄÌìѧ»áajax] ѧϰAjax½Ì³ÌµÚ¶þÌ죬JavaScript ºÍ Ajax ·¢³öÒì

    2014-11-17 20:43

  • [ËÄÌìѧ»áajax] ѧϰAjax½Ì³ÌµÚËÄÌ죬ÀûÓà DOM ½øÐÐ Web ÏìÓ¦

    [ËÄÌìѧ»áajax] ѧϰAjax½Ì³ÌµÚËÄÌ죬ÀûÓà DOM ½øÐÐ Web ÏìÓ¦

    2014-11-17 20:43

  • [ËÄÌìѧ»áajax] ѧϰAjax½Ì³ÌµÚ¶þÌ죬JavaScript ºÍ Ajax ·¢³öÒì

    [ËÄÌìѧ»áajax] ѧϰAjax½Ì³ÌµÚ¶þÌ죬JavaScript ºÍ Ajax ·¢³öÒì

    2014-11-17 20:43

ÍøÓѵãÆÀ
á