Çåµ¥ 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 Ëùʾ¡£
¡¡