¹ØÓÚÆæ¾Ø»¥¶¯Ææ¾Ø»¥¶¯ÕÐÏÍÄÉÊ¿Ææ¾Ø»¥¶¯ÓÅÖÊÐéÄâÖ÷»úDiscuz!ÉÌÒµÓû§ÏíÓб¾Õ¾VIP·þÎñLAMP»·¾³ÅäÖÃÊÖ²á(CentOS5.1)
 14 12
·¢Ð»°Ìâ
´òÓ¡

PHPѧϰרÌâ--µÚ14ÆÚ£ºPHP+Ajax Web¿ª·¢Ó¦ÓÃÆª

±¾Ö÷ÌâÓÉ Edwin ÓÚ 2008-4-7 09:46 ÉèÖøßÁÁ

PHPѧϰרÌâ--µÚ14ÆÚ£ºPHP+Ajax Web¿ª·¢Ó¦ÓÃÆª

Ajax µÄ×î´óÌôÕ½²¢²»ÊǼ¼Êõ£¬×é³É Ajax µÄ¸÷Ïî¼¼ÊõÒѾ­Ï൱³ÉÊì¡¢Îȶ¨¼°Ò×ѧ£¬Ö÷ÒªÌôÕ½ÊÇÈçºÎʹÓà Ajax Éè¼ÆÓ¦ÓóÌÐò£¬ÎÒÃDZØÐëÅׯúÒÔÍù¶ÔÓÚ WEB ¾ÖÏÞÐԵĿ´·¨£¬¿ªÊ¼¿ªÀ«ÊÓÒ°¡¢¿ª·Å˼Ïë¡¢²»¶Ï´´Ð£¬ÊµÏÖ¸ü¼Ó·á¸»µÄÓ¦ÓÃÌåÑé¡£

ÓÐÒ»ÖÖÔ½À´Ô½Á÷ÐÐÔ½Èȵġ°ÀÏ¡±¼¼Êõ£¬¿ÉÒÔ³¹µ×¸Ä±äÕâÖÖ¾½ÆÈµÄ¾ÖÃæ¡£ÄǾÍÊÇ Ajax¡£Èç½ñ£¬Ëæ×Å Gmail¡¢Google-maps µÄÓ¦Óú͸÷ÖÖä¯ÀÀÆ÷µÄÖ§³Ö£¬Ajax ÕýÖð½¥ÎüÒýÈ«ÊÀ½çµÄÑÛÇò¡£

ÔÚʹÓÃä¯ÀÀÆ÷ä¯ÀÀÍøÒ³µÄʱºò£¬µ±Ò³ÃæË¢ÐºÜÂýµÄʱºò£¬ÄãµÄä¯ÀÀÆ÷ÔÚ¸Éʲô£¿ÄãµÄÆÁÄ»ÄÚÈÝÊÇʲô£¿Êǵģ¬ÄãµÄä¯ÀÀÆ÷ÔڵȴýˢУ¬¶øÄãµÄÆÁÄ»ÄÚÈÝÊÇһƬ¿Õ°×£¬¶øÄãÔÚÆÁĻǰ¿à¿àµÄµÈ´ýä¯ÀÀÆ÷µÄÏìÓ¦¡£¿ª·¢ÈËԱΪÁ˿˷þÕâÖÖÞÏÞεľÖÃæ£¬²»µÃ²»ÔÚÿһ¸ö¿ÉÄÜÐèÒª³¤Ê±¼äµÈ´ýÏìÓ¦µÄÒ³ÃæÉÏÔö¼ÓÒ»¸öDIV£¬¸æËßÓû§¡°ÏµÍ³ÕýÔÚ´¦ÀíÄúµÄÇëÇó£¬ÇëÉÔºò¡­¡­¡±¡£

¡¡¡¡ÏÖÔÚ£¬ÓÐÒ»ÖÖÔ½À´Ô½Á÷ÐÐÔ½Èȵġ°ÀÏ¡±¼¼Êõ£¬¿ÉÒÔ³¹µ×¸Ä±äÕâÖÖ¾½ÆÈµÄ¾ÖÃæ¡£ÄǾÍÊÇAJAX¡£Èç½ñ£¬Ëæ×ÅGmail¡¢Google-mapsµÄÓ¦Óú͸÷ÖÖä¯ÀÀÆ÷µÄÖ§³Ö£¬AJAXÕýÖð½¥ÎüÒýÈ«ÊÀ½çµÄÑÛÇò¡£
Ò»¡¢AJAX¶¨Òå
¡¡¡¡ AJAX£¨Asynchronous JavaScript and XML£©ÆäʵÊǶàÖÖ¼¼ÊõµÄ×ۺϣ¬°üÀ¨Javascript¡¢XHTMLºÍCSS¡¢DOM¡¢XMLºÍXSTL¡¢XMLHttpRequest¡£ÆäÖУº

¡¡¡¡Ê¹ÓÃXHTMLºÍCSS±ê×¼»¯³ÊÏÖ£¬Ê¹ÓÃDOMʵÏÖ¶¯Ì¬ÏÔʾºÍ½»»¥£¬Ê¹ÓÃXMLºÍXSTL½øÐÐÊý¾Ý½»»»Óë´¦Àí£¬Ê¹ÓÃXMLHttpRequest¶ÔÏó½øÐÐÒì²½Êý¾Ý¶ÁÈ¡£¬Ê¹ÓÃJavascript°ó¶¨ºÍ´¦ÀíËùÓÐÊý¾Ý¡£

¡¡¡¡ÔÚAJAXÌá³ö֮ǰ£¬Òµ½ç¶ÔÓÚÉÏÊö¼¼Êõ¶¼Ö»Êǵ¥¶ÀµÄʹÓã¬Ã»ÓÐ×ÛºÏʹÓã¬Ò²ÊÇÓÉÓÚ֮ǰµÄ¼¼ÊõÐèÇóËù¾ö¶¨µÄ¡£Ëæ×ÅÓ¦ÓõĹ㷺£¬AJAXÒ²³ÉΪÏãâÄâÄÁË¡£
¶þ¡¢ÏÖ×´ÓëÐèÒª½â¾öµÄÎÊÌâ
¡¡¡¡´«Í³µÄWebÓ¦ÓòÉÓÃͬ²½½»»¥¹ý³Ì£¬ÕâÖÖÇé¿öÏ£¬Óû§Ê×ÏÈÏòHTTP·þÎñÆ÷´¥·¢Ò»¸öÐÐΪ»òÇëÇóµÄºôÇó¡£·´¹ýÀ´£¬·þÎñÆ÷Ö´ÐÐijЩÈÎÎñ£¬ÔÙÏò·¢³öÇëÇóµÄÓû§·µ»ØÒ»¸öHTMLÒ³Ãæ¡£ÕâÊÇÒ»ÖÖ²»Á¬¹áµÄÓû§ÌåÑ飬·þÎñÆ÷ÔÚ´¦ÀíÇëÇóµÄʱºò£¬Óû§¶àÊýʱ¼ä´¦ÓڵȴýµÄ״̬£¬ÆÁÄ»ÄÚÈÝÒ²ÊÇһƬ¿Õ°×¡£ÈçÏÂͼ£º

¡¡¡¡×Ô´Ó²ÉÓó¬Îı¾×÷ΪWeb´«ÊäºÍ³ÊÏÖÖ®ºó£¬ÎÒÃǶ¼ÊDzÉÓÃÕâôһÌ×´«Ê䷽ʽ¡£µ±¸ºÔرȽÏСµÄʱºò£¬Õâ²¢²»»áÌåÏÖ³öÓÐʲô²»Íס£¿ÉÊǵ±¸ºÔرȽϴó£¬ÏìӦʱ¼äÒªºÜ³¤£¬1·ÖÖÓ¡¢2·ÖÖÓ¡­¡­Êý·ÖÖÓµÄʱºò£¬ÕâÖֵȴý¾Í²»¿ÉÈÌÊÜÁË¡£ÑÏÖØµÄ£¬³¬¹ýÏìӦʱ¼ä£¬·þÎñÆ÷¸É´à¸æËßÄãÒ³Ãæ²»¿ÉÓá£ÁíÍ⣬ijЩʱºò£¬ÎÒÖ»ÊÇÏë¸Ä±äÒ³ÃæÒ»Ð¡²¿·ÖµÄÊý¾Ý£¬ÄÇΪʲôÎÒ±ØÐëÖØÐ¼ÓÔØÕû¸öÒ³ÃæÄØ£¿£¡µ±Èí¼þÉè¼ÆÔ½À´Ô½½²¾¿ÈËÐÔ»¯µÄʱºò£¬ÕâôÔã¸âµÄÓû§ÌåÑé¼òÖ±ÓëÕâÖÖÔ­Ôò±³µÀ¶ø³Û¡£ÎªÊ²Ã´ÀÏÊÇÒªÈÃÓû§µÈ´ý·þÎñÆ÷È¡Êý¾ÝÄØ£¿ÖÁÉÙ£¬ÎÒÃÇÓ¦¸Ã¼õÉÙÓû§µÈ´ýµÄʱ¼ä¡£ÏÖÔÚ£¬³ýÁ˳ÌÐòÉè¼Æ¡¢±àÂëÓÅ»¯ºÍ·þÎñÆ÷µ÷ÓÅÖ®Í⣬»¹¿ÉÒÔ²ÉÓÃAJAX¡£
Èý¡¢ÎªÊ²Ã´Ê¹ÓÃAJAX
¡¡¡¡Ó봫ͳµÄWebÓ¦Óò»Í¬£¬AJAX²ÉÓÃÒì²½½»»¥¹ý³Ì¡£AJAXÔÚÓû§Óë·þÎñÆ÷Ö®¼äÒýÈëÒ»¸öÖмäý½é£¬´Ó¶øÏû³ýÁËÍøÂç½»»¥¹ý³ÌÖеĴ¦Àí¡ªµÈ´ý¡ª´¦Àí¡ªµÈ´ýȱµã¡£Óû§µÄä¯ÀÀÆ÷ÔÚÖ´ÐÐÈÎÎñʱ¼´×°ÔØÁËAJAXÒýÇæ¡£AJAXÒýÇæÓÃJavaScriptÓïÑÔ±àд£¬Í¨³£²ØÔÚÒ»¸öÒþ²ØµÄ¿ò¼ÜÖС£Ëü¸ºÔð±àÒëÓû§½çÃæ¼°Óë·þÎñÆ÷Ö®¼äµÄ½»»¥¡£AJAXÒýÇæÔÊÐíÓû§ÓëÓ¦ÓÃÈí¼þÖ®¼äµÄ½»»¥¹ý³ÌÒì²½½øÐУ¬¶ÀÁ¢ÓÚÓû§ÓëÍøÂç·þÎñÆ÷¼äµÄ½»Á÷¡£ÏÖÔÚ£¬¿ÉÒÔÓà Javascriptµ÷ÓÃAJAXÒýÇæÀ´´úÌæ²úÉúÒ»¸öHTTPµÄÓû§¶¯×÷£¬ÄÚ´æÖеÄÊý¾Ý±à¼­¡¢Ò³Ãæµ¼º½¡¢Êý¾ÝУÑéÕâЩ²»ÐèÒªÖØÐÂÔØÈëÕû¸öÒ³ÃæµÄÐèÇó¿ÉÒÔ½»¸øAJAXÀ´Ö´ÐС£

¡¡¡¡Ê¹ÓÃAJAX£¬¿ÉÒÔΪISP¡¢¿ª·¢ÈËÔ±¡¢ÖÕ¶ËÓû§´øÀ´¿É¼ûµÄ±ã½Ý£º

    * ¼õÇá·þÎñÆ÷µÄ¸ºµ£¡£AJAXµÄÔ­ÔòÊÇ¡°°´ÐèÈ¡Êý¾Ý¡±£¬¿ÉÒÔ×î´ó³Ì¶ÈµÄ¼õÉÙÈßÓàÇëÇ󣬺ÍÏìÓ¦¶Ô·þÎñÆ÷Ôì³ÉµÄ¸ºµ£¡£
    * ÎÞˢиüÐÂÒ³Ãæ£¬¼õÉÙÓû§ÐÄÀíºÍʵ¼ÊµÄµÈ´ýʱ¼ä¡£ÌرðµÄ£¬µ±Òª¶ÁÈ¡´óÁ¿µÄÊý¾ÝµÄʱºò£¬²»ÓÃÏñReloadÄÇÑù³öÏְׯÁµÄÇé¿ö£¬AJAX ʹÓÃXMLHTTP¶ÔÏó·¢ËÍÇëÇ󲢵õ½·þÎñÆ÷ÏìÓ¦£¬ÔÚ²»ÖØÐÂÔØÈëÕû¸öÒ³ÃæµÄÇé¿öÏÂÓÃJavascript²Ù×÷DOM×îÖÕ¸üÐÂÒ³Ãæ¡£ËùÒÔÔÚ¶ÁÈ¡Êý¾ÝµÄ¹ý³ÌÖУ¬Óû§ËùÃæ¶ÔµÄ²»ÊÇ°×ÆÁ£¬ÊÇÔ­À´µÄÒ³ÃæÄÚÈÝ£¨Ò²¿ÉÒÔ¼ÓÒ»¸öLoadingµÄÌáʾ¿òÈÃÓû§ÖªµÀ´¦ÓÚ¶ÁÈ¡Êý¾Ý¹ý³Ì£©£¬Ö»Óе±Êý¾Ý½ÓÊÕÍê±ÏÖ®ºó²Å¸üÐÂÏàÓ¦²¿·ÖµÄÄÚÈÝ¡£ÕâÖÖ¸üÐÂÊÇ˲¼äµÄ£¬Óû§¼¸ºõ¸Ð¾õ²»µ½¡£
    * ´øÀ´¸üºÃµÄÓû§ÌåÑé¡£
    * ¿ÉÒÔ°ÑÒÔǰһЩ·þÎñÆ÷¸ºµ£µÄ¹¤×÷ת¼Þµ½¿Í»§¶Ë£¬ÀûÓÿͻ§¶ËÏÐÖõÄÄÜÁ¦À´´¦Àí£¬¼õÇá·þÎñÆ÷ºÍ´ø¿íµÄ¸ºµ££¬½ÚÔ¼¿Õ¼äºÍ¿í´ø×âÓóɱ¾¡£
    * ¿ÉÒÔµ÷ÓÃÍⲿÊý¾Ý¡£
    * »ùÓÚ±ê×¼»¯µÄ²¢±»¹ã·ºÖ§³ÖµÄ¼¼Êõ£¬²»ÐèÒªÏÂÔØ²å¼þ»òÕßС³ÌÐò¡£
    * ½øÒ»²½´Ù½øÒ³Ãæ³ÊÏÖºÍÊý¾ÝµÄ·ÖÀë¡£

ËÄ¡¢Ë­ÔÚʹÓÃAJAX
¡¡¡¡ÔÚÓ¦ÓÃAJAX¿ª·¢ÉÏÃæ£¬Googleµ±Èʲ»ÈÃÊDZíÂÊ¡£Orkut¡¢Gmail¡¢Google Groups¡¢Google Maps¡¢Google Suggest¶¼Ó¦ÓÃÁËÕâÏî¼¼Êõ¡£AmazonµÄA9.comËÑË÷ÒýÇæÒ²²ÉÓÃÁËÀàËÆµÄ¼¼Êõ¡£

¡¡¡¡Î¢ÈíÒ²ÔÚ»ý¼«¿ª·¢¸üΪÍêÉÆµÄAJAXÓ¦ÓãºËü¼´½«ÍƳö´úºÅΪAtlasµÄAJAX¹¤¾ß¡£AtlasµÄ¹¦Äܳ¬Ô½ÁËAJAX±¾Éí£¬°üÀ¨ÕûºÏVisual StudioµÄµ÷ÊÔ¹¦ÄÜ¡£ÁíÍ⣬еÄASP.NET¿Ø¼þ½«Ê¹¿Í»§¶Ë¿Ø¼þÓë·þÎñÆ÷¶Ë´úÂëµÄÀ¦°ó¸üΪ¼ò±ã¡£Atlas¿Í»§½Å±¾¿ò¼Ü£¨Atlas Clent Script Framework£©Ò²Ê¹ÓëÍøÒ³¼°Ïà¹ØÏîÄ¿µÄ½»»¥¸üΪ±ãÀû¡£µ«Visual Studio 2005Öв¢²»°üº¬´ËÏÄÜ¡£

¡¡¡¡Î¢Èí×î½üÐû²¼Atlas¿Í»§½Å±¾¿ò¼Ü½«°üº¬ÈçÏÂÄÚÈÝ£¨Ïêϸ×ÊÁÏÇë·ÃÎÊAtlas¼Æ»®ÍøÕ¾£©£º

    * Ò»¸ö¿ÉÀ©Õ¹µÄºËÐÄ¿ò¼Ü£¬ËüÌí¼ÓÁËJavaScript¹¦ÄÜ£ºÈçÉúÃüͬʱÆÚ¹ÜÀí¡¢¼Ì³Ð¹ÜÀí¡¢¶àµã´«ËÍ´¦ÀíÆ÷ºÍ½çÃæ¹ÜÀí¡£
    * Ò»¸ö³£¼û¹¦ÄܵĻù±¾Àà¿â£¬ÓзḻµÄ×Ö·û´®´¦Àí¡¢¼ÆÊ±Æ÷ºÍÔËÐÐÈÎÎñ¡£
    * ΪHTML¸½¼Ó¶¯Ì¬ÐÐΪµÄÓû§½çÃæ¿ò¼Ü¡£
    * Ò»×éÓÃÀ´¼ò»¯·þÎñÆ÷Á¬Í¨ºÍÍøÂç·ÃÎʵÄÍøÂç¶ÑÕ»¡£
    * Ò»×é·á¸»µÄÓû§½çÃæ¿ª·¢¿Ø¼þ£¬È磺×Ô¶¯Íê³ÉµÄÎı¾¿ò¡¢¶¯»­ºÍÍÏ·Å¡£
    * ´¦Àíä¯ÀÀÆ÷½Å±¾ÐÐΪ²îÒìµÄä¯ÀÀÆ÷¼æÈݲãÃæ¡£

¡¡¡¡µäÐ͵ģ¬Î¢Èí½«AJAX¼¼ÊõÓ¦ÓÃÔÚMSN SpaceÉÏÃæ¡£ºÜ¶àÈËÒ»Ö±¶¼¶ÔMS Space·þÎñ¸Ðµ½ºÜÆæ¹Ö£¬µ±Ìá½»»Ø¸´ÆÀÂÛÒÔºó£¬ä¯ÀÀÆ÷»áÔÝʱͣ¶Ùһϣ¬È»ºóÔÚÎÞˢеÄÇé¿öϰÑÎÒÌá½»µÄÆÀÂÛÏÔʾ³öÀ´¡£Õâ¸ö¾ÍÊÇÓ¦ÓÃÁËAJAXµÄЧ¹û¡£ÊÔÏ룬Èç¹ûÌí¼ÓÒ»¸öÆÀÂÛ¾ÍÒªÖØÐÂË¢ÐÂÕû¸öÒ³Ãæ£¬ÄÇ¿ÉÕæ·ÑÊ¡£

¡¡¡¡Ä¿Ç°£¬AJAXÓ¦ÓÃ×îÆÕ±éµÄÁìÓòÊÇGIS-Map·½Ãæ¡£GISµÄÇøÓòËÑË÷Ç¿µ÷¿ìËÙÏìÓ¦£¬AJAXµÄÌØµãÕýºÃ·ûºÏÕâÖÖÐèÇó¡£
Îå¡¢ÓÃAJAX¸Ä½øÄãµÄÉè¼Æ
¡¡¡¡ AJAXËäÈ»¿ÉÒÔʵÏÖÎÞˢиüÐÂÒ³ÃæÄÚÈÝ£¬µ«ÊÇÒ²²»ÊÇʲôµØ·½¶¼¿ÉÒÔÓã¬Ö÷ÒªÓ¦ÓÃÔÚ½»»¥½Ï¶à¡¢Æµ·±¶ÁÊý¾Ý¡¢Êý¾Ý·ÖÀàÁ¼ºÃµÄWebÓ¦ÓÃÖС£ÏÖÔÚ£¬ÈÃÎÒÃǾÙÁ½¸öÀý×Ó£¬¿´¿´ÈçºÎÓÃAJAX¸Ä½øÄãµÄÉè¼Æ¡£

Àý×Ó1£ºÊý¾ÝУÑé
¡¡¡¡ÔÚÊäÈëform±íµ¥ÄÚÈݵÄʱºò£¬ÎÒÃÇͨ³£ÐèҪȷ±£Êý¾ÝµÄΨһÐÔ¡£Òò´Ë£¬³£³£ÔÚÒ³ÃæÉÏÌṩ¡°Î¨Ò»ÐÔУÑ顱°´Å¥£¬ÈÃÓû§µã»÷£¬´ò¿ªÒ»¸öУÑéС´°¿Ú£»»òÕßµÈ formÌá½»µ½·þÎñÆ÷¶Ë£¬ÓÉ·þÎñÆ÷ÅжϺóÔÚ·µ»ØÏàÓ¦µÄУÑéÐÅÏ¢¡£Ç°Õߣ¬window.open²Ù×÷±¾À´¾ÍÊDZȽϺķÑ×ÊÔ´µÄ£¬Í¨³£ÓÉwindow. showModalDialog´úÌæ£¬¼´Ê¹ÕâÑùÒ²Òªµ¯³öÒ»¸ö¶Ô»°¿ò£»ºóÕߣ¬ÐèÒª°ÑÕû¸öÒ³ÃæÌá½»µ½·þÎñÆ÷²¢ÓÉ·þÎñÆ÷ÅжÏУÑ飬Õâ¸ö¹ý³Ì²»½öʱ¼ä³¤¶øÇÒ¼ÓÖØÁË·þÎñÆ÷¸ºµ£¡£¶øÊ¹ÓÃAJAX£¬Õâ¸öУÑéÇëÇó¿ÉÒÔÓÉXMLHttpRequest¶ÔÏó·¢³ö£¬Õû¸ö¹ý³Ì²»ÐèÒªµ¯³öд°¿Ú£¬Ò²²»ÐèÒª½«Õû¸öÒ³ÃæÌá½»µ½·þÎñÆ÷£¬¿ìËÙÓÖ²»¼ÓÖØ·þÎñÆ÷¸ºµ£¡£Àý×Ó2£º°´ÐèÈ¡Êý¾Ý¡ª¼¶Áª²Ëµ¥
¡¡¡¡ÒÔǰ£¬ÎªÁ˱ÜÃâÿ´Î¶Ô²Ëµ¥µÄ²Ù×÷ÒýÆðµÄÖØÔØÒ³Ãæ£¬²»²ÉÓÃÿ´Îµ÷Óúǫ́µÄ·½Ê½£¬¶øÊÇÒ»´ÎÐÔ½«¼¶Áª²Ëµ¥µÄËùÓÐÊý¾ÝÈ«²¿¶ÁÈ¡³öÀ´²¢Ð´ÈëÊý×飬Ȼºó¸ù¾ÝÓû§µÄ²Ù×÷Óà JavaScriptÀ´¿ØÖÆËüµÄ×Ó¼¯ÏîÄ¿µÄ³ÊÏÖ£¬ÕâÑùËäÈ»½â¾öÁ˲Ù×÷ÏìÓ¦ËÙ¶È¡¢²»ÖØÔØÒ³ÃæÒÔ¼°±ÜÃâÏò·þÎñÆ÷Ƶ·±·¢ËÍÇëÇóµÄÎÊÌ⣬µ«ÊÇÈç¹ûÓû§²»¶Ô²Ëµ¥½øÐвÙ×÷»òÖ»¶Ô²Ëµ¥ÖеÄÒ»²¿·Ö½øÐвÙ×÷µÄ»°£¬ÄǶÁÈ¡µÄÊý¾ÝÖеÄÒ»²¿·Ö¾Í»á³ÉΪÈßÓàÊý¾Ý¶øÀË·ÑÓû§µÄ×ÊÔ´£¬ÌرðÊÇÔڲ˵¥½á¹¹¸´ÔÓ¡¢Êý¾ÝÁ¿´óµÄÇé¿öÏ£¨±ÈÈç²Ëµ¥Óкܶ༶¡¢Ã¿Ò»¼¶²ËÓÖÓÐÉϰٸöÏîÄ¿£©£¬ÕâÖֱ׶˾͸üΪͻ³ö¡£

¡¡¡¡ÏÖÔÚÓ¦ÓÃAJAX£¬ÔÚ³õʼ»¯Ò³ÃæÊ±ÎÒÃÇÖ»¶Á³öËüµÄµÚÒ»¼¶µÄËùÓÐÊý¾Ý²¢ÏÔʾ£¬ÔÚÓû§²Ù×÷Ò»¼¶²Ëµ¥ÆäÖÐÒ»Ïîʱ£¬»áͨ¹ýAjaxÏòºǫ́ÇëÇóµ±Ç°Ò»¼¶ÏîÄ¿ËùÊôµÄ¶þ¼¶×Ӳ˵¥µÄËùÓÐÊý¾Ý£¬Èç¹ûÔÙ¼ÌÐøÇëÇóÒѾ­³ÊÏֵĶþ¼¶²Ëµ¥ÖеÄÒ»Ïîʱ£¬ÔÙÏòºóÃæÇëÇóËù²Ù×÷¶þ¼¶²Ëµ¥Ïî¶ÔÓ¦µÄËùÓÐÈý¼¶²Ëµ¥µÄËùÓÐÊý¾Ý£¬ÒÔ´ËÀàÍÆ¡­¡­ ÕâÑù£¬ÓÃʲô¾Íȡʲô¡¢ÓöàÉÙ¾ÍÈ¡¶àÉÙ£¬¾Í²»»áÓÐÊý¾ÝµÄÈßÓàºÍÀË·Ñ£¬¼õÉÙÁËÊý¾ÝÏÂÔØ×ÜÁ¿£¬¶øÇÒ¸üÐÂÒ³ÃæÊ±²»ÓÃÖØÔØÈ«²¿ÄÚÈÝ£¬Ö»¸üÐÂÐèÒª¸üеÄÄDz¿·Ö¼´¿É£¬Ïà¶ÔÓÚºǫ́´¦Àí²¢ÖØÔØµÄ·½Ê½Ëõ¶ÌÁËÓû§µÈ´ýʱ¼ä£¬Ò²°Ñ¶Ô×ÊÔ´µÄÀ˷ѽµµ½×îµÍ¡£
Àý×Ó3£º¶ÁÈ¡ÍⲿÊý¾Ý
¡¡¡¡AJAX¿ÉÒÔµ÷ÓÃÍⲿÊý¾Ý£¬Òò´Ë£¬¿ÉÒÔ¶ÔһЩ¿ª·¢µÄÊý¾Ý±ÈÈçXMLÎĵµ¡¢RSSÎĵµ½øÐжþ´Î¼Ó¹¤£¬ÊµÏÖÊý¾ÝÕûºÏ»òÕß¿ª·¢Ó¦ÓóÌÐò¡£Áù¡¢AJAXµÄȱÏÝ

¡¡¡¡AJAX²»ÊÇÍêÃÀµÄ¼¼Êõ¡£Ê¹ÓÃAJAX£¬ËüµÄһЩȱÏݲ»µÃ²»È¨ºâһϣº

    * AJAX´óÁ¿Ê¹ÓÃÁËJavascriptºÍAJAXÒýÇæ£¬¶øÕâ¸öÈ¡¾öÓÚä¯ÀÀÆ÷µÄÖ§³Ö¡£IE5.0¼°ÒÔÉÏ¡¢Mozilla1.0¡¢ NetScape7¼°ÒÔÉϰ汾²ÅÖ§³Ö£¬MozillaËäȻҲ֧³ÖAJAX£¬µ«ÊÇÌṩXMLHttpRequestµÄ·½Ê½²»Ò»Ñù¡£ËùÒÔ£¬Ê¹ÓÃAJAXµÄ³ÌÐò±ØÐë²âÊÔÕë¶Ô¸÷¸öä¯ÀÀÆ÷µÄ¼æÈÝÐÔ¡£
    * AJAX¸üÐÂÒ³ÃæÄÚÈݵÄʱºò²¢Ã»ÓÐË¢ÐÂÕû¸öÒ³Ãæ£¬Òò´Ë£¬ÍøÒ³µÄºóÍ˹¦ÄÜÊÇʧЧµÄ£»ÓеÄÓû§»¹¾­³£¸ã²»Çå³þÏÖÔÚµÄÊý¾ÝÊǾɵϹÊÇÒѾ­¸üйýµÄ¡£Õâ¸ö¾ÍÐèÒªÔÚÃ÷ÏÔλÖÃÌáÐÑÓû§¡°Êý¾ÝÒѸüС±¡£
    * ¶ÔÁ÷ýÌåµÄÖ§³ÖûÓÐFLASH¡¢Java AppletºÃ¡£
    *
      Ò»Ð©ÊÖ³ÖÉ豸£¨ÈçÊÖ»ú¡¢PDAµÈ£©ÏÖÔÚ»¹²»ÄܺܺõÄÖ§³ÖAjax¡£

[url=]Æß¡¢AJAX¿ª·¢[/url]
¡¡¡¡µ½ÕâÀÒѾ­¿ÉÒÔÇå³þµÄÖªµÀAJAXÊÇʲô£¬AJAXÄÜ×öʲô£¬AJAXʲôµØ·½²»ºÃ¡£Èç¹ûÄã¾õµÃAJAXÕæµÄÄܸøÄãµÄ¿ª·¢¹¤×÷´øÀ´¸Ä½øµÄ»°£¬ÄÇô¼ÌÐø¿´¿´ÔõôʹÓÃAJAX°É¡£
[url=]7.1[/url]¡¢AJAXÓ¦Óõ½µÄ¼¼Êõ
¡¡¡¡AJAXÉæ¼°µ½µÄ7Ïî¼¼ÊõÖУ¬¸öÈËÈÏΪJavascript¡¢XMLHttpRequest¡¢DOM¡¢XML±È½ÏÓÐÓá£

[url=]A[/url]¡¢XMLHttpRequest¶ÔÏó
¡¡¡¡XMLHttpRequestÊÇXMLHTTP×é¼þµÄ¶ÔÏó£¬Í¨¹ýÕâ¸ö¶ÔÏó£¬AJAX¿ÉÒÔÏñ×ÀÃæÓ¦ÓóÌÐòÒ»Ñùֻͬ·þÎñÆ÷½øÐÐÊý¾Ý²ãÃæµÄ½»»»£¬¶ø²»ÓÃÿ´Î¶¼Ë¢Ð½çÃæ£¬Ò²²»ÓÃÿ´Î½«Êý¾Ý´¦ÀíµÄ¹¤×÷¶¼½»¸ø·þÎñÆ÷À´×ö£»ÕâÑù¼È¼õÇáÁË·þÎñÆ÷¸ºµ£ÓÖ¼Ó¿ìÁËÏìÓ¦ËÙ¶È¡¢Ëõ¶ÌÁËÓû§µÈ´ýµÄʱ¼ä¡£
¡¡¡¡IE5.0¿ªÊ¼£¬¿ª·¢ÈËÔ±¿ÉÒÔÔÚWebÒ³ÃæÄÚ²¿Ê¹ÓÃXMLHTTPActiveX×é¼þÀ©Õ¹×ÔÉíµÄ¹¦ÄÜ£¬²»Óôӵ±Ç°µÄWebÒ³Ãæµ¼º½¾Í¿ÉÒÔÖ±½Ó´«ÊäÊý¾Ýµ½·þÎñÆ÷»òÕß´Ó·þÎñÆ÷½ÓÊÕÊý¾Ý¡£,Mozilla1.0ÒÔ¼°NetScape7ÔòÊÇ´´½¨¼Ì³ÐXMLµÄ´úÀíÀàXMLHttpRequest£»¶ÔÓÚ´ó¶àÊýÇé¿ö£¬XMLHttpRequest¶ÔÏóºÍXMLHTTP×é¼þºÜÏàËÆ£¬·½·¨ºÍÊôÐÔÀàËÆ£¬Ö»ÊDz¿·ÖÊôÐÔ²»Í¬¡£
XMLHttpRequest¶ÔÏó³õʼ»¯£º
<script language=¡±javascript¡±>
var http_request = false;
//IEä¯ÀÀÆ÷
http_request = new ActiveXObject("Msxml2.XMLHTTP");
http_request = new ActiveXObject("Microsoft.XMLHTTP");
//Mozillaä¯ÀÀÆ÷
http_request = new XMLHttpRequest();
</script>¡¡¡¡XMLHttpRequest¶ÔÏóµÄ·½·¨£º
·½·¨ÃèÊö
abort()Í£Ö¹µ±Ç°ÇëÇó
getAllResponseHeaders()×÷Ϊ×Ö·û´®·µ»ØÍêÕûµÄheaders
getResponseHeader("headerLabel")×÷Ϊ×Ö·û´®·µ»Øµ¥¸öµÄheader±êÇ©
open("method","URL"[,asyncFlag[,"userName"[, "password"]]])ÉèÖÃδ¾öµÄÇëÇóµÄÄ¿±ê URL£¬·½·¨£¬ºÍÆäËû²ÎÊý
send(content)·¢ËÍÇëÇó
setRequestHeader("label", "value")ÉèÖÃheader²¢ºÍÇëÇóÒ»Æð·¢ËÍ

¡¡¡¡XMLHttpRequest¶ÔÏóµÄÊôÐÔ£º
ÊôÐÔÃèÊö
onreadystatechange״̬¸Ä±äµÄʼþ´¥·¢Æ÷
readyState¶ÔÏó״̬(integer):
0 = δ³õʼ»¯
1 = ¶ÁÈ¡ÖÐ
2 = ÒѶÁÈ¡
3 = ½»»¥ÖÐ
4 = Íê³É
responseText·þÎñÆ÷½ø³Ì·µ»ØÊý¾ÝµÄÎı¾°æ±¾
responseXML·þÎñÆ÷½ø³Ì·µ»ØÊý¾ÝµÄ¼æÈÝDOMµÄXMLÎĵµ¶ÔÏó
status·þÎñÆ÷·µ»ØµÄ״̬Âë, È磺404 = "ÎļþδÕÒµ½" ¡¢200 ="³É¹¦"
statusText·þÎñÆ÷·µ»ØµÄ״̬Îı¾ÐÅÏ¢
[url=]B[/url]¡¢Javascript
¡¡¡¡ JavascriptÒ»Ö±±»¶¨Î»Îª¿Í»§¶ËµÄ½Å±¾ÓïÑÔ£¬Ó¦ÓÃ×î¶àµÄµØ·½ÊÇ±íµ¥Êý¾ÝµÄУÑé¡£ÏÖÔÚ£¬¿ÉÒÔͨ¹ýJavascript²Ù×÷XMLHttpRequest£¬À´¸úÊý¾Ý¿â´ò½»µÀ¡£[url=]C[/url]¡¢DOM
¡¡¡¡ DOM£¨Document ObjectModel£©ÊÇÌṩ¸øHTMLºÍXMLʹÓõÄÒ»×éAPI£¬ÌṩÁËÎļþµÄ±íÊö½á¹¹£¬²¢¿ÉÒÔÀûÓÃËü¸Ä±äÆäÖеÄÄÚÈݺͿɼûÎï¡£½Å±¾ÓïÑÔͨ¹ýDOM²Å¿ÉÒÔ¸úÒ³Ãæ½øÐн»»¥¡£Web¿ª·¢ÈËÔ±¿É²Ù×÷¼°½¨Á¢ÎļþµÄÊôÐÔ¡¢·½·¨ÒÔ¼°Ê¼þ¶¼ÒÔ¶ÔÏóÀ´Õ¹ÏÖ¡£±ÈÈ磬document¾Í´ú±íÒ³Ãæ¶ÔÏó±¾Éí¡£

[url=]D[/url]¡¢XML
¡¡¡¡Í¨¹ýXML£¨Extensible Markup Language£©£¬¿ÉÒԹ淶µÄ¶¨Òå½á¹¹»¯Êý¾Ý£¬ÊÇÍøÉÏ´«ÊäµÄÊý¾ÝºÍÎĵµ·ûºÏͳһµÄ±ê×¼¡£ÓÃXML±íÊöµÄÊý¾ÝºÍÎĵµ£¬¿ÉÒÔºÜÈÝÒ×µÄÈÃËùÓгÌÐò¹²Ïí¡£

[url=]7.2[/url]¡¢AJAX¿ª·¢¿ò¼Ü
¡¡¡¡ÕâÀÎÒÃÇͨ¹ýÒ»²½²½µÄ½âÎö£¬À´ÐγÉÒ»¸ö·¢ËͺͽÓÊÕXMLHttpRequestÇëÇóµÄ³ÌÐò¿ò¼Ü¡£AJAXʵÖÊÉÏÒ²ÊÇ×ñÑ­Request/Serverģʽ£¬ËùÒÔÕâ¸ö¿ò¼Ü»ù±¾µÄÁ÷³ÌÒ²ÊÇ£º¶ÔÏó³õʼ»¯¨¤·¢ËÍÇëÇ󨤷þÎñÆ÷½ÓÊÕ¨¤·þÎñÆ÷·µ»Ø¨¤¿Í»§¶Ë½ÓÊÕ¨¤Ð޸Ŀͻ§¶ËÒ³ÃæÄÚÈÝ¡£Ö»²»¹ýÕâ¸ö¹ý³ÌÊÇÒì²½µÄ¡£

[url=]A[/url]¡¢³õʼ»¯¶ÔÏó²¢·¢³öXMLHttpRequestÇëÇó
¡¡¡¡ÎªÁËÈÃJavascript¿ÉÒÔÏò·þÎñÆ÷·¢ËÍHTTPÇëÇ󣬱ØÐëʹÓÃXMLHttpRequest¶ÔÏó¡£Ê¹ÓÃ֮ǰ£¬ÒªÏȽ«XMLHttpRequest¶ÔÏóʵÀý»¯¡£Ö®Ç°Ëµ¹ý£¬¸÷¸öä¯ÀÀÆ÷¶ÔÕâ¸öʵÀý»¯¹ý³ÌʵÏÖ²»Í¬¡£IEÒÔActiveX¿Ø¼þµÄÐÎʽÌṩ£¬¶øMozillaµÈä¯ÀÀÆ÷ÔòÖ±½ÓÒÔXMLHttpRequestÀàµÄÐÎʽÌṩ¡£ÎªÁËÈñàдµÄ³ÌÐòÄܹ»¿çä¯ÀÀÆ÷ÔËÐУ¬ÒªÕâÑùд£º
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
       http_request = new XMLHttpRequest();
  }
  else if (window.ActiveXObject) { // IE
       http_request = new ActiveXObject("Microsoft.XMLHTTP");
}¡¡¡¡ÓÐЩ°æ±¾µÄMozillaä¯ÀÀÆ÷´¦Àí·þÎñÆ÷·µ»ØµÄδ°üº¬XML mime-typeÍ·²¿ÐÅÏ¢µÄÄÚÈÝʱ»á³ö´í¡£Òò´Ë£¬ÒªÈ·±£·µ»ØµÄÄÚÈݰüº¬text/xmlÐÅÏ¢¡£
http_request = new XMLHttpRequest();
http_request.overrideMimeType('text/xml');B¡¢Ö¸¶¨ÏìÓ¦´¦Àíº¯Êý
¡¡¡¡½ÓÏÂÀ´ÒªÖ¸¶¨µ±·þÎñÆ÷·µ»ØÐÅϢʱ¿Í»§¶ËµÄ´¦Àí·½Ê½¡£Ö»Òª½«ÏàÓ¦µÄ´¦Àíº¯ÊýÃû³Æ¸³¸øXMLHttpRequest¶ÔÏóµÄonreadystatechangeÊôÐԾͿÉÒÔÁË¡£±ÈÈ磺
http_request.onreadystatechange = processRequest;¡¡¡¡ÐèÒªÖ¸³öµÄʱ£¬Õâ¸öº¯ÊýÃû³Æ²»¼ÓÀ¨ºÅ£¬²»Ö¸¶¨²ÎÊý¡£Ò²¿ÉÒÔÓÃJavascript¼´Ê±¶¨Ò庯ÊýµÄ·½Ê½¶¨ÒåÏìÓ¦º¯Êý¡£±ÈÈ磺
http_request.onreadystatechange = function() { };
[url=]C[/url]¡¢·¢³öHTTPÇëÇó
¡¡¡¡Ö¸¶¨ÏìÓ¦´¦Àíº¯ÊýÖ®ºó£¬¾Í¿ÉÒÔÏò·þÎñÆ÷·¢³öHTTPÇëÇóÁË¡£ÕâÒ»²½µ÷ÓÃXMLHttpRequest¶ÔÏóµÄopenºÍsend·½·¨¡£
http_request.open('GET', 'http://www.example.org/some.file', true);
http_request.send(null);¡¡¡¡openµÄµÚÒ»¸ö²ÎÊýÊÇHTTPÇëÇóµÄ·½·¨£¬ÎªGet¡¢Post»òÕßHead¡£
¡¡¡¡openµÄµÚ¶þ¸ö²ÎÊýÊÇÄ¿±êURL¡£»ùÓÚ°²È«¿¼ÂÇ£¬Õâ¸öURLÖ»ÄÜÊÇÍ¬ÍøÓòµÄ£¬·ñÔò»áÌáʾ¡°Ã»ÓÐȨÏÞ¡±µÄ´íÎó¡£Õâ¸öURL¿ÉÒÔÊÇÈκεÄURL£¬°üÀ¨ÐèÒª·þÎñÆ÷½âÊÍÖ´ÐеÄÒ³Ãæ£¬²»½ö½öÊǾ²Ì¬Ò³Ã档Ŀ±êURL´¦ÀíÇëÇóXMLHttpRequestÇëÇóÔò¸ú´¦ÀíÆÕͨµÄHTTPÇëÇóÒ»Ñù£¬±ÈÈçJSP¿ÉÒÔÓÃrequest.getParameter(¡°¡±)»òÕßrequest.getAttribute(¡°¡±)À´È¡µÃURL²ÎÊýÖµ¡£
¡¡¡¡openµÄµÚÈý¸ö²ÎÊýÖ»ÊÇÖ¸¶¨Ôڵȴý·þÎñÆ÷·µ»ØÐÅÏ¢µÄʱ¼äÄÚÊÇ·ñ¼ÌÐøÖ´ÐÐÏÂÃæµÄ´úÂë¡£Èç¹ûΪTrue£¬Ôò²»»á¼ÌÐøÖ´ÐУ¬Ö±µ½·þÎñÆ÷·µ»ØÐÅÏ¢¡£Ä¬ÈÏΪTrue¡£
¡¡¡¡°´ÕÕ˳Ðò£¬openµ÷ÓÃÍê±ÏÖ®ºóÒªµ÷ÓÃsend·½·¨¡£sendµÄ²ÎÊýÈç¹ûÊÇÒÔPost·½Ê½·¢³öµÄ»°£¬¿ÉÒÔÊÇÈκÎÏë´«¸ø·þÎñÆ÷µÄÄÚÈÝ¡£²»¹ý£¬¸úformÒ»Ñù£¬Èç¹ûÒª´«Îļþ»òÕßPostÄÚÈݸø·þÎñÆ÷£¬±ØÐëÏȵ÷ÓÃsetRequestHeader·½·¨£¬ÐÞ¸ÄMIMEÀà±ð¡£ÈçÏ£º
http_request.setRequestHeader(¡°Content-Type¡±,¡±application/x-www-form-urlencoded¡±);¡¡¡¡Õâʱ×ÊÁÏÔòÒÔ²éѯ×Ö·û´®µÄÐÎʽÁгö£¬×÷ΪsnedµÄ²ÎÊý£¬ÀýÈ磺
name=value&anothername=othervalue&so=onD¡¢´¦Àí·þÎñÆ÷·µ»ØµÄÐÅÏ¢
¡¡¡¡ÔÚµÚ¶þ²½ÎÒÃÇÒѾ­Ö¸¶¨ÁËÏìÓ¦´¦Àíº¯Êý£¬ÕâÒ»²½£¬À´¿´¿´Õâ¸öÏìÓ¦´¦Àíº¯Êý¶¼Ó¦¸Ã×öʲô¡£
¡¡¡¡Ê×ÏÈ£¬ËüÒª¼ì²éXMLHttpRequest¶ÔÏóµÄreadyStateÖµ£¬ÅжÏÇëÇóĿǰµÄ״̬¡£²ÎÕÕǰÎĵÄÊôÐÔ±í¿ÉÒÔÖªµÀ£¬readyStateֵΪ4µÄʱºò£¬´ú±í·þÎñÆ÷ÒѾ­´«»ØËùÓеÄÐÅÏ¢£¬¿ÉÒÔ¿ªÊ¼´¦ÀíÐÅÏ¢²¢¸üÐÂÒ³ÃæÄÚÈÝÁË¡£ÈçÏ£º
if (http_request.readyState == 4) {
    // ÐÅÏ¢ÒѾ­·µ»Ø£¬¿ÉÒÔ¿ªÊ¼´¦Àí
} else {
    // ÐÅÏ¢»¹Ã»Óзµ»Ø£¬µÈ´ý
}¡¡¡¡·þÎñÆ÷·µ»ØÐÅÏ¢ºó£¬»¹ÐèÒªÅжϷµ»ØµÄHTTP״̬Â룬ȷ¶¨·µ»ØµÄÒ³ÃæÃ»ÓдíÎó¡£ËùÓеÄ״̬Âë¶¼¿ÉÒÔÔÚW3CµÄ¹Ù·½ÍøÕ¾Éϲ鵽¡£ÆäÖУ¬200´ú±íÒ³ÃæÕý³£¡£
if (http_request.status == 200) {
    // Ò³ÃæÕý³££¬¿ÉÒÔ¿ªÊ¼´¦ÀíÐÅÏ¢
} else {
    // Ò³ÃæÓÐÎÊÌâ
}
¡¡¡¡XMLHttpRequest¶Ô³É¹¦·µ»ØµÄÐÅÏ¢ÓÐÁ½ÖÖ´¦Àí·½Ê½£º
¡¡¡¡ responseText£º½«´«»ØµÄÐÅÏ¢µ±×Ö·û´®Ê¹Óã»
¡¡¡¡ responseXML£º½«´«»ØµÄÐÅÏ¢µ±XMLÎĵµÊ¹Ó㬿ÉÒÔÓÃDOM´¦Àí¡£
[url=]E[/url]¡¢Ò»¸ö³õ²½µÄ¿ª·¢¿ò¼Ü
¡¡¡¡×ܽáÉÏÃæµÄ²½Ö裬ÎÒÃÇÕûÀí³öÒ»¸ö³õ²½µÄ¿ÉÓõĿª·¢¿ò¼Ü£¬¹©ÒÔºóµ÷Óã»ÕâÀ½«·þÎñÆ÷·µ»ØµÄÐÅÏ¢ÓÃwindow.alertÒÔ×Ö·û´®µÄÐÎʽÏÔʾ³öÀ´£º
<script language="javascript">
        var http_request = false;
        function send_request(url) {//³õʼ»¯¡¢Ö¸¶¨´¦Àíº¯Êý¡¢·¢ËÍÇëÇóµÄº¯Êý
                http_request = false;
                //¿ªÊ¼³õʼ»¯XMLHttpRequest¶ÔÏó
                if(window.XMLHttpRequest) { //Mozilla ä¯ÀÀÆ÷
                        http_request = new XMLHttpRequest();
                        if (http_request.overrideMimeType) {//ÉèÖÃMiMEÀà±ð
                                http_request.overrideMimeType("text/xml");
                        }
                }
                else if (window.ActiveXObject) { // IEä¯ÀÀÆ÷
                        try {
                                http_request = new ActiveXObject("Msxml2.XMLHTTP");
                        } catch (e) {
                                try {
                                        http_request = new ActiveXObject("Microsoft.XMLHTTP");
                                } catch (e) {}
                        }
                }
                if (!http_request) { // Òì³££¬´´½¨¶ÔÏóʵÀýʧ°Ü
                        window.alert("²»ÄÜ´´½¨XMLHttpRequest¶ÔÏóʵÀý.");
                        return false;
                }
                http_request.onreadystatechange = processRequest;
                // È·¶¨·¢ËÍÇëÇóµÄ·½Ê½ºÍURLÒÔ¼°ÊÇ·ñͬ²½Ö´ÐÐ϶δúÂë
                http_request.open("GET", url, true);
                http_request.send(null);
        }
        // ´¦Àí·µ»ØÐÅÏ¢µÄº¯Êý
    function processRequest() {
        if (http_request.readyState == 4) { // Åж϶ÔÏó״̬
            if (http_request.status == 200) { // ÐÅÏ¢ÒѾ­³É¹¦·µ»Ø£¬¿ªÊ¼´¦ÀíÐÅÏ¢
                alert(http_request.responseText);
            } else { //Ò³Ãæ²»Õý³£
                alert("ÄúËùÇëÇóµÄÒ³ÃæÓÐÒì³£¡£");
            }
        }
    }
</script>

TOP

7.3¡¢¼òµ¥µÄʾÀý
¡¡¡¡½ÓÏÂÀ´£¬ÎÒÃÇÀûÓÃÉÏÃæµÄ¿ª·¢¿ò¼ÜÀ´×öÁ½¸ö¼òµ¥µÄÓ¦Óá£

[url=]A[/url]¡¢Êý¾ÝУÑé
¡¡¡¡ÔÚÓû§×¢²áµÄ±íµ¥ÖУ¬¾­³£Åöµ½Òª¼ìÑé´ý×¢²áµÄÓû§ÃûÊÇ·ñΨһ¡£´«Í³µÄ×ö·¨ÊDzÉÓÃwindow.openµÄµ¯³ö´°¿Ú£¬»òÕßwindow.showModalDialogµÄ¶Ô»°¿ò¡£²»¹ý£¬ÕâÁ½¸ö¶¼ÐèÒª´ò¿ª´°¿Ú¡£²ÉÓÃAJAXºó£¬²ÉÓÃÒì²½·½Ê½Ö±½Ó½«²ÎÊýÌá½»µ½·þÎñÆ÷£¬ÓÃwindow.alert½«·þÎñÆ÷·µ»ØµÄУÑéÐÅÏ¢ÏÔʾ³öÀ´¡£´úÂëÈçÏ£º
¡¡¡¡ÔÚ<body></body>Ö®¼äÔö¼ÓÒ»¶Îform±íµ¥´úÂ룺
<form name="form1" action="" method="post">

  Óû§Ãû£º<input type="text" name="username" value="">

  <input type="button" name="check" value="ΨһÐÔ¼ì²é" >

  <input type="submit" name="submit" value="Ìá½»">

</form>¡¡¡¡ÔÚ¿ª·¢¿ò¼ÜµÄ»ù´¡ÉÏÔÙÔö¼ÓÒ»¸öµ÷Óú¯Êý£º
function userCheck() {
        var f = document.form1;
        var username = f.username.value;
        if(username=="") {
                window.alert("Óû§Ãû²»ÄÜΪ¿Õ¡£");
                f.username.focus();
                return false;
        }
        else {
                send_request('sample1_2.jsp?username='+username);
        }
}
¡¡¡¡¿´¿´sample1_2.jsp×öÁËʲô£º
<%@ page c errorPage="" %>
<%
String username = request.getParameter("username");
if("educhina".equals(username)) out.print("Óû§ÃûÒѾ­±»×¢²á£¬Çë¸ü»»Ò»¸öÓû§Ãû¡£");
else out.print("Óû§ÃûÉÐδ±»Ê¹Óã¬Äú¿ÉÒÔ¼ÌÐø¡£");
%>¡¡¡¡ÔËÐÐһϣ¬àÅ£¬Ã»Óе¯³ö´°¿Ú£¬Ã»ÓÐÒ³ÃæË¢Ð£¬¸úÔ¤ÏëµÄЧ¹ûÒ»Ñù¡£Èç¹ûÐèÒªµÄ»°£¬¿ÉÒÔÔÚsample1_2.jspÖÐʵÏÖ¸ü¸´ÔӵŦÄÜ¡£×îºó£¬Ö»Òª½«·´À¡ÐÅÏ¢´òÓ¡³öÀ´¾Í¿ÉÒÔÁË¡£
[url=]B[/url]¡¢¼¶Áª²Ëµ¥
¡¡¡¡ÎÒÃÇÔÚµÚÎ岿·ÖÌáµ½ÀûÓÃAJAX¸Ä½ø¼¶Áª²Ëµ¥µÄÉè¼Æ¡£½ÓÏÂÀ´£¬ÎÒÃǾÍÑÝʾһÏÂÈçºÎ¡°°´ÐèÈ¡Êý¾Ý¡±¡£
¡¡¡¡Ê×ÏÈ£¬ÔÚ<body></body>ÖмäÔö¼ÓÈçÏÂHTML´úÂ룺
<table width="200" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td height="20">
                        <a href="javascript:void(0)" >¾­ÀíÊÒ</a>
                </td>
    </tr>
    <tr style="display:none">
        <td height="20" id="pos_1"> </td>
    </tr>
    <tr>
        <td height="20">
                        <a href="javascript:void(0)" >¿ª·¢²¿</a>
                </td>
    </tr>
    <tr style="display:none ">
        <td id="pos_2" height="20"> </td>
    </tr>
</table>
¡¡¡¡ÔÚ¿ò¼ÜµÄ»ù´¡ÉÏÔö¼ÓÒ»¸öÏìÓ¦º¯ÊýshowRoles(obj)£º
//ÏÔʾ²¿ÃÅϵĸÚλ
function showRoles(obj) {
        document.getElementById(obj).parentNode.style.display = "";
        document.getElementById(obj).innerHTML = "ÕýÔÚ¶ÁÈ¡Êý¾Ý..."
        currentPos = obj;
        send_request("sample2_2.jsp?playPos="+obj);
}
¡¡¡¡Ð޸Ŀò¼ÜµÄprocessRequestº¯Êý£º
// ´¦Àí·µ»ØÐÅÏ¢µÄº¯Êý
function processRequest() {
  if (http_request.readyState == 4) { // Åж϶ÔÏó״̬
    if (http_request.status == 200) { // ÐÅÏ¢ÒѾ­³É¹¦·µ»Ø£¬¿ªÊ¼´¦ÀíÐÅÏ¢
        document.getElementById(currentPos).innerHTML = http_request.responseText;
    } else { //Ò³Ãæ²»Õý³£
      alert("ÄúËùÇëÇóµÄÒ³ÃæÓÐÒì³£¡£");
    }
  }
}
¡¡¡¡×îºó¾ÍÊÇsmaple2_2.jspÁË£º
<%@ page c errorPage="" %>
<%
String playPos = request.getParameter("playPos");
if("pos_1".equals(playPos))
   out.print("  ×ܾ­Àí<br>  ¸±×ܾ­Àí");
else if("pos_2".equals(playPos))
   out.println("  ×ܹ¤³Ìʦ<br>  Èí¼þ¹¤³Ìʦ");
%>
[url=]7.4[/url]¡¢Îĵµ¶ÔÏóÄ£ÐÍ£¨DOM£©
¡¡¡¡Îĵµ¶ÔÏóÄ£ÐÍ£¨DOM£©ÊDZíʾÎĵµ£¨±ÈÈçHTMLºÍXML£©ºÍ·ÃÎÊ¡¢²Ù×÷¹¹³ÉÎĵµµÄ¸÷ÖÖÔªËØµÄÓ¦ÓóÌÐò½Ó¿Ú£¨API£©¡£Ò»°ãµÄ£¬Ö§³ÖJavascriptµÄËùÓÐä¯ÀÀÆ÷¶¼Ö§³ÖDOM¡£±¾ÎÄËùÉæ¼°µÄDOM£¬ÊÇÖ¸W3C¶¨ÒåµÄ±ê×¼µÄÎĵµ¶ÔÏóÄ£ÐÍ£¬ËüÒÔÊ÷Ðνṹ±íʾHTMLºÍXMLÎĵµ£¬¶¨ÒåÁ˱éÀúÕâ¸öÊ÷ºÍ¼ì²é¡¢ÐÞ¸ÄÊ÷µÄ½ÚµãµÄ·½·¨ºÍÊôÐÔ¡£

7.4.1¡¢DOMÑÛÖеÄHTMLÎĵµ£ºÊ÷
¡¡¡¡ÔÚDOMÑÛÖУ¬HTML¸úXMLÒ»ÑùÊÇÒ»ÖÖÊ÷ÐνṹµÄÎĵµ£¬<html>ÊǸù£¨root£©½Úµã£¬<head>¡¢<title>¡¢<body>ÊÇ<html>µÄ×Ó£¨children£©½Úµã£¬»¥ÏàÖ®¼äÊÇÐֵܣ¨sibling£©½Úµã£»<body>ÏÂÃæ²ÅÊÇ×Ó½Úµã<table>¡¢<span>¡¢<p>µÈµÈ¡£
¡¡¡¡Õâ¸öÊDz»ÊǸúXMLµÄ½á¹¹ÓеãÏàËÆÄØ¡£²»Í¬µÄÊÇ£¬HTMLÎĵµµÄÊ÷ÐÎÖ÷Òª°üº¬±íÊ¾ÔªËØ¡¢±ê¼ÇµÄ½ÚµãºÍ±íʾÎı¾´®µÄ½Úµã¡£
7.4.2¡¢HTMLÎĵµµÄ½Úµã
¡¡¡¡DOMÏ£¬HTMLÎĵµ¸÷¸ö½Úµã±»ÊÓΪ¸÷ÖÖÀàÐ͵ÄNode¶ÔÏó¡£Ã¿¸öNode¶ÔÏó¶¼ÓÐ×Ô¼ºµÄÊôÐԺͷ½·¨£¬ÀûÓÃÕâЩÊôÐԺͷ½·¨¿ÉÒÔ±éÀúÕû¸öÎĵµÊ÷¡£ÓÉÓÚHTMLÎĵµµÄ¸´ÔÓÐÔ£¬DOM¶¨ÒåÁËnodeTypeÀ´±íʾ½ÚµãµÄÀàÐÍ¡£ÕâÀïÁгöNode³£Óõļ¸ÖÖ½ÚµãÀàÐÍ£º
½Ó¿ÚnodeType³£Á¿nodeTypeÖµ±¸×¢
ElementNode.ELEMENT_NODE1ÔªËØ½Úµã
TextNode.TEXT_NODE3Îı¾½Úµã
DocumentNode.DOCUMENT_NODE9document
CommentNode.COMMENT_NODE8×¢Ê͵ÄÎı¾
DocumentFragmentNode.DOCUMENT_FRAGMENT_NODE11documentƬ¶Ï
AttrNode.ATTRIBUTE_NODE2½ÚµãÊôÐÔ

¡¡¡¡DOMÊ÷µÄ¸ù½ÚµãÊǸöDocument¶ÔÏ󣬸öÔÏóµÄdocumentElementÊôÐÔÒýÓñíʾÎĵµ¸ùÔªËØµÄElement¶ÔÏ󣨶ÔÓÚHTMLÎĵµ£¬Õâ¸ö¾ÍÊÇ<html>±ê¼Ç£©¡£Javascript²Ù×÷HTMLÎĵµµÄʱºò£¬document¼´Ö¸ÏòÕû¸öÎĵµ£¬<body>¡¢<table>µÈ½ÚµãÀàÐͼ´ÎªElement¡£CommentÀàÐ͵ĽڵãÔòÊÇÖ¸ÎĵµµÄ×¢ÊÍ¡£¾ßÌå½ÚµãÀàÐ͵ĺ¬Ò壬Çë²Î¿¼¡¶JavascriptȨÍþÖ¸ÄÏ¡·£¬Ôڴ˲»×¸Êö¡£
¡¡¡¡Document¶¨ÒåµÄ·½·¨´ó¶àÊýÊÇÉú²úÐÍ·½·¨£¬Ö÷ÒªÓÃÓÚ´´½¨¿ÉÒÔ²åÈëÎĵµÖеĸ÷ÖÖÀàÐ͵Ľڵ㡣³£ÓõÄDocument·½·¨ÓУº
·½·¨ÃèÊö
createAttribute()ÓÃÖ¸¶¨µÄÃû×Ö´´½¨ÐµÄAttr½Úµã¡£
createComment()ÓÃÖ¸¶¨µÄ×Ö·û´®´´½¨ÐµÄComment½Úµã¡£
createElement()ÓÃÖ¸¶¨µÄ±ê¼ÇÃû´´½¨ÐµÄElement½Úµã¡£
createTextNode()ÓÃÖ¸¶¨µÄÎı¾´´½¨ÐµÄTextNode½Úµã¡£
getElementById()·µ»ØÎĵµÖоßÓÐÖ¸¶¨idÊôÐÔµÄElement½Úµã¡£
getElementsByTagName()·µ»ØÎĵµÖоßÓÐÖ¸¶¨±ê¼ÇÃûµÄËùÓÐElement½Úµã¡£

¡¡¡¡¶ÔÓÚElement½Úµã£¬¿ÉÒÔͨ¹ýµ÷ÓÃgetAttribute()¡¢setAttribute()¡¢removeAttribute()·½·¨À´²éѯ¡¢ÉèÖûòÕßɾ³ýÒ»¸öElement½ÚµãµÄÐÔÖÊ£¬±ÈÈç<table>±ê¼ÇµÄborderÊôÐÔ¡£ÏÂÃæÁгöElement³£ÓõÄÊôÐÔ£º
ÊôÐÔÃèÊö
tagNameÔªËØµÄ±ê¼ÇÃû³Æ£¬±ÈÈç<p>ÔªËØÎªP¡£HTMLÎĵµ·µ»ØµÄtabName¾ùΪ´óд¡£

¡¡¡¡Element³£Óõķ½·¨£º
·½·¨ÃèÊö
getAttribute()ÒÔ×Ö·û´®ÐÎʽ·µ»ØÖ¸¶¨ÊôÐÔµÄÖµ¡£
getAttributeNode()ÒÔAttr½ÚµãµÄÐÎʽ·µ»ØÖ¸¶¨ÊôÐÔµÄÖµ¡£
getElementsByTabName()·µ»ØÒ»¸öNodeÊý×飬°üº¬¾ßÓÐÖ¸¶¨±ê¼ÇÃûµÄËùÓÐElement½ÚµãµÄ×ÓËï½Úµã£¬Æä˳ÐòΪÔÚÎĵµÖгöÏÖµÄ˳Ðò¡£
hasAttribute()Èç¹û¸ÃÔªËØ¾ßÓÐÖ¸¶¨Ãû×ÖµÄÊôÐÔ£¬Ôò·µ»Øtrue¡£
removeAttribute()´ÓÔªËØÖÐɾ³ýÖ¸¶¨µÄÊôÐÔ¡£
removeAttributeNode()´ÓÔªËØµÄÊôÐÔÁбíÖÐɾ³ýÖ¸¶¨µÄAttr½Úµã¡£
setAttribute()°ÑÖ¸¶¨µÄÊôÐÔÉèÖÃΪָ¶¨µÄ×Ö·û´®Öµ£¬Èç¹û¸ÃÊôÐÔ²»´æÔÚÔòÌí¼ÓÒ»¸öÐÂÊôÐÔ¡£
setAttributeNode()°ÑÖ¸¶¨µÄAttr½ÚµãÌí¼Óµ½¸ÃÔªËØµÄÊôÐÔÁбíÖС£

¡¡¡¡Attr¶ÔÏó´ú±íÎĵµÔªËصÄÊôÐÔ£¬ÓÐname¡¢valueµÈÊôÐÔ£¬¿ÉÒÔͨ¹ýNode½Ó¿ÚµÄattributesÊôÐÔ»òÕßµ÷ÓÃElement½Ó¿ÚµÄgetAttributeNode()·½·¨À´»ñÈ¡¡£²»¹ý£¬ÔÚ´ó¶àÊýÇé¿öÏ£¬Ê¹ÓÃElementÔªËØÊôÐÔµÄ×î¼òµ¥·½·¨ÊÇgetAttribute()ºÍsetAttribute()Á½¸ö·½·¨£¬¶ø²»ÊÇAttr¶ÔÏó¡£
7.4.3¡¢Ê¹ÓÃDOM²Ù×÷HTMLÎĵµ
¡¡¡¡Node¶ÔÏó¶¨ÒåÁËһϵÁÐÊôÐԺͷ½·¨£¬À´·½±ã±éÀúÕû¸öÎĵµ¡£ÓÃparentNodeÊôÐÔºÍchildNodes[]Êý×é¿ÉÒÔÔÚÎĵµÊ÷ÖÐÉÏÏÂÒÆ¶¯£»Í¨¹ý±éÀúchildNodes[]Êý×é»òÕßʹÓÃfirstChildºÍnextSiblingÊôÐÔ½øÐÐÑ­»·²Ù×÷£¬Ò²¿ÉÒÔʹÓÃlastChildºÍpreviousSibling½øÐÐÄæÏòÑ­»·²Ù×÷£¬Ò²¿ÉÒÔö¾ÙÖ¸¶¨½ÚµãµÄ×ӽڵ㡣¶øµ÷ÓÃappendChild()¡¢insertBefore()¡¢removeChild()¡¢replaceChild()·½·¨¿ÉÒԸıäÒ»¸ö½ÚµãµÄ×Ó½Úµã´Ó¶ø¸Ä±äÎĵµÊ÷¡£
¡¡¡¡ÐèÒªÖ¸³öµÄÊÇ£¬childNodes[]µÄֵʵ¼ÊÉÏÊÇÒ»¸öNodeList¶ÔÏó¡£Òò´Ë£¬¿ÉÒÔͨ¹ý±éÀúchildNodes[]Êý×éµÄÿ¸öÔªËØ£¬À´Ã¶¾ÙÒ»¸ö¸ø¶¨½ÚµãµÄËùÓÐ×ӽڵ㣻ͨ¹ýµÝ¹é£¬¿ÉÒÔö¾ÙÊ÷ÖеÄËùÓнڵ㡣ϱíÁгöÁËNode¶ÔÏóµÄһЩ³£ÓÃÊôÐԺͷ½·¨£º
¡¡¡¡Node¶ÔÏó³£ÓÃÊôÐÔ£º
ÊôÐÔÃèÊö
attributesÈç¹û¸Ã½ÚµãÊÇÒ»¸öElement£¬ÔòÒÔNamedNodeMapÐÎʽ·µ»Ø¸ÃÔªËØµÄÊôÐÔ¡£
childNodesÒÔNode[]µÄÐÎʽ´æ·Åµ±Ç°½ÚµãµÄ×ӽڵ㡣Èç¹ûûÓÐ×ӽڵ㣬Ôò·µ»Ø¿ÕÊý×é¡£
firstChildÒÔNodeµÄÐÎʽ·µ»Øµ±Ç°½ÚµãµÄµÚÒ»¸ö×ӽڵ㡣Èç¹ûûÓÐ×ӽڵ㣬ÔòΪnull¡£
lastChildÒÔNodeµÄÐÎʽ·µ»Øµ±Ç°½ÚµãµÄ×îºóÒ»¸ö×ӽڵ㡣Èç¹ûûÓÐ×ӽڵ㣬ÔòΪnull¡£
nextSiblingÒÔNodeµÄÐÎʽ·µ»Øµ±Ç°½ÚµãµÄÐÖµÜÏÂÒ»¸ö½Úµã¡£Èç¹ûûÓÐÕâÑùµÄ½Úµã£¬Ôò·µ»Ønull¡£
nodeName½ÚµãµÄÃû×Ö£¬Element½ÚµãÔò´ú±íElementµÄ±ê¼ÇÃû³Æ¡£
nodeType´ú±í½ÚµãµÄÀàÐÍ¡£
parentNodeÒÔNodeµÄÐÎʽ·µ»Øµ±Ç°½ÚµãµÄ¸¸½Úµã¡£Èç¹ûûÓи¸½Úµã£¬ÔòΪnull¡£
previousSiblingÒÔNodeµÄÐÎʽ·µ»Ø½ô°¤µ±Ç°½Úµã¡¢Î»ÓÚËü֮ǰµÄÐֵܽڵ㡣Èç¹ûûÓÐÕâÑùµÄ½Úµã£¬Ôò·µ»Ønull¡£

¡¡¡¡Node¶ÔÏó³£Ó÷½·¨£º
·½·¨ÃèÊö
appendChild()ͨ¹ý°ÑÒ»¸ö½ÚµãÔö¼Óµ½µ±Ç°½ÚµãµÄchildNodes[]×飬¸øÎĵµÊ÷Ôö¼Ó½Úµã¡£
cloneNode()¸´ÖƵ±Ç°½Úµã£¬»òÕ߸´ÖƵ±Ç°½ÚµãÒÔ¼°ËüµÄËùÓÐ×ÓËï½Úµã¡£
hasChildNodes()Èç¹ûµ±Ç°½ÚµãÓµÓÐ×ӽڵ㣬Ôò½«·µ»Øtrue¡£
insertBefore()¸øÎĵµÊ÷²åÈëÒ»¸ö½Úµã£¬Î»ÖÃÔÚµ±Ç°½ÚµãµÄÖ¸¶¨×Ó½Úµã֮ǰ¡£Èç¹û¸Ã½ÚµãÒѾ­´æÔÚ£¬Ôòɾ³ýÖ®ÔÙ²åÈëµ½ËüµÄλÖá£
removeChild()´ÓÎĵµÊ÷ÖÐɾ³ý²¢·µ»ØÖ¸¶¨µÄ×ӽڵ㡣
replaceChild()´ÓÎĵµÊ÷ÖÐɾ³ý²¢·µ»ØÖ¸¶¨µÄ×ӽڵ㣬ÓÃÁíÒ»¸ö½ÚµãÌæ»»Ëü¡£

¡¡¡¡½ÓÏÂÀ´£¬ÈÃÎÒÃÇʹÓÃÉÏÊöµÄDOMÓ¦Óñà³Ì½Ó¿Ú£¬À´ÊÔ×ŲÙ×÷HTMLÎĵµ¡£
¡¡¡¡A¡¢±éÀúÎĵµµÄ½Úµã
¡¡¡¡DOM°ÑÒ»¸öHTMLÎĵµÊÓΪÊ÷£¬Òò´Ë£¬±éÀúÕû¸öÊ÷ÊÇÓ¦¸ÃÊǼҳ£±ã·¹¡£¸ú֮ǰ˵¹ýµÄÒ»Ñù£¬ÕâÀïÎÒÃÇÌṩÁ½¸ö±éÀúÊ÷µÄÀý×Ó¡£Í¨¹ýËü£¬ÎÒÃÇÄܹ»Ñ§»áÈçºÎʹÓÃchildNodes[]ºÍfirstChile¡¢lastChild¡¢nextSibling¡¢previousSibling±éÀúÕû¿ÃÊ÷¡£
¡¡¡¡Àý×Ó1-- sample3_1.htm£º
¡¡¡¡Õâ¸öÀý×ÓʹÓÃÁËchildNodes[]ºÍµÝ¹é·½Ê½À´±éÀúÕû¸öÎĵµ£¬Í³¼ÆÎĵµÖгöÏÖµÄElementÔªËØ×ÜÊý£¬²¢°ÑElement±ê¼ÇÃûÈ«²¿´òÓ¡³öÀ´¡£ÐèÒªÌØ±ð×¢ÒâµÄÊÇ£¬ÔÚʹÓÃDOMʱ£¬±ØÐëµÈÎĵµ±»×°ÔØÍê±ÏÔÙÖ´ÐбéÀúµÈÐÐΪ²Ù×÷Îĵµ¡£sample3_1.htm¾ßÌå´úÂëÈçÏ£º
<html>
<head>
<meta http-equiv="Content-Type" c>
<title>ÎÞ±êÌâÎĵµ</title>
<script language="javascript">
var elementName = ""; //È«¾Ö±äÁ¿£¬±£´æElement±ê¼ÇÃû£¬Ê¹ÓÃÍê±ÏÒªÇå¿Õ
function countTotalElement(node) { //²ÎÊýnodeÊÇÒ»¸öNode¶ÔÏó
        var total = 0;
        if(node.nodeType == 1) { //¼ì²énodeÊÇ·ñΪElement¶ÔÏó
                total++;                        //Èç¹ûÊÇ£¬¼ÆÊýÆ÷¼Ó1
                elementName = elementName + node.tagName + "\r\n"; //±£´æ±ê¼ÇÃû
        }
        var childrens = node.childNodes;                //»ñÈ¡nodeµÄÈ«²¿×Ó½Úµã
        for(var i=0;i<childrens.length;i++) {
                total += countTotalElement(childrens); //ÔÚÿ¸ö×Ó½ÚµãÉϽøÐеݹé²Ù×÷
        }
        return total;
}
</script>
</head>
<body>
<a href="javascript:void(0)"
>¿ªÊ¼Í³¼Æ</a>
</body>
</html>¡¡¡¡Àý×Ó2 ¨C sample3_2.htm£º
¡¡¡¡½ÓÏÂÀ´Ê¹ÓÃfirstChile¡¢lastChild¡¢nextSibling¡¢previousSibling±éÀúÕû¸öÎĵµÊ÷¡£ÐÞ¸ÄÒ»ÏÂcountTotalElementº¯Êý£¬ÆäËû¸úsample3_1.htmÒ»Ñù£º
function countTotalElement(node) { //²ÎÊýnodeÊÇÒ»¸öNode¶ÔÏó
        var total = 0;
        if(node.nodeType == 1) { //¼ì²énodeÊÇ·ñΪElement¶ÔÏó
                total++;                        //Èç¹ûÊÇ£¬¼ÆÊýÆ÷¼Ó1
                elementName = elementName + node.tagName + "\r\n"; //±£´æ±ê¼ÇÃû
        }
        var childrens = node.childNodes;                //»ñÈ¡nodeµÄÈ«²¿×Ó½Úµã
        for(var m=node.firstChild; m!=null;m=m.nextSibling) {
                total += countTotalElement(m); //ÔÚÿ¸ö×Ó½ÚµãÉϽøÐеݹé²Ù×÷
        }
        return total;
}
¡¡¡¡B¡¢ËÑË÷ÎĵµÖÐÌØ¶¨µÄÔªËØ
¡¡¡¡ÔÚʹÓÃDOMµÄ¹ý³ÌÖУ¬ÓÐʱºòÐèÒª¶¨Î»µ½ÎĵµÖеÄij¸öÌØ¶¨½Úµã£¬»òÕß¾ßÓÐÌØ¶¨ÀàÐ͵ĽڵãÁÐ±í¡£ÕâÖÖÇé¿öÏ£¬¿ÉÒÔµ÷ÓÃDocument¶ÔÏóµÄgetElementsByTagName()ºÍgetElementById()·½·¨À´ÊµÏÖ¡£
¡¡¡¡document.getElementsByTagName()·µ»ØÎĵµÖоßÓÐÖ¸¶¨±ê¼ÇÃûµÄÈ«²¿Element½ÚµãÊý×飨ҲÊÇNodeListÀàÐÍ£©¡£Element³öÏÖÔÚÊý×éÖеÄ˳Ðò¾ÍÊÇËûÃÇÔÚÎĵµÖгöÏÖµÄ˳Ðò¡£´«µÝ¸øgetElementsByTagName()µÄ²ÎÊýºöÂÔ´óСд¡£±ÈÈ磬Ï붨λµ½µÚÒ»¸ö<table>±ê¼Ç£¬¿ÉÒÔÕâÑùд£ºdocument.getElementsByTagName(¡°table¡±)[0]¡£ÀýÍâµÄ£¬¿ÉÒÔʹÓÃdocument.body¶¨Î»µ½<body>±ê¼Ç£¬ÒòΪËüÊÇΨһµÄ¡£
¡¡¡¡getElementsByTagName()·µ»ØµÄÊý×éÈ¡¾öÓÚÎĵµ¡£Ò»µ©Îĵµ¸Ä±ä£¬·µ»Ø½á¹ûÒ²Á¢¼´¸Ä±ä¡£Ïà±È£¬getElementById()Ôò±È½ÏÁé»î£¬¿ÉÒÔËæÊ±¶¨Î»µ½Ä¿±ê£¬Ö»ÊÇҪʵÏÖ¸øÄ¿±êÔªËØÒ»¸öΨһµÄidÊôÐÔÖµ¡£Õâ¸öÎÒÃÇÔÚ¡¶AJAX¿ª·¢¼òÂÔ¡·µÄ¡°¼¶Áª²Ëµ¥¡±Àý×ÓÖÐÒѾ­Ê¹ÓùýÁË¡£
¡¡¡¡Element¶ÔÏóÒ²Ö§³ÖgetElementsByTagName()ºÍgetElementById()¡£²»Í¬µÄÊÇ£¬ËÑË÷ÁìÓòÖ»Õë¶Ôµ÷ÓÃÕßµÄ×ӽڵ㡣

TOP

C¡¢ÐÞ¸ÄÎĵµÄÚÈÝ
¡¡¡¡±éÀúÕû¿ÃÎĵµÊ÷¡¢ËÑË÷ÌØ¶¨µÄ½Úµã£¬ÎÒÃÇ×îÖÕÄ¿µÄÖ®Ò»ÊÇÒªÐÞ¸ÄÎĵµÄÚÈÝ¡£½ÓÏÂÀ´µÄÈý¸öÀý×Ó½«Ê¹ÓÃNodeµÄ¼¸¸ö³£Ó÷½·¨£¬À´ÑÝʾÈçºÎÐÞ¸ÄÎĵµÄÚÈÝ¡£

¡¡¡¡Àý×Ó3 -- sample4_1.htm£º
¡¡¡¡Õâ¸öÀý×Ó°üº¬Èý¸öÎı¾½ÚµãºÍÒ»¸ö°´Å¥¡£µã»÷°´Å¥ºó£¬Èý¸öÎı¾½ÚµãºÍ°´Å¥µÄ˳Ðò½«±»µßµ¹¡£³ÌÐòʹÓÃÁËNodeµÄappendChild()ºÍremoveChild()·½·¨¡£

<html>
<head>
<meta http-equiv="Content-Type" c>
<title>ÎÞ±êÌâÎĵµ</title>
<script language="javascript">
    function reverseNode(node) { // µßµ¹½ÚµãnodeµÄ˳Ðò
        var kids = node.childNodes; //»ñÈ¡×Ó½ÚµãÁбí
        var kidsNum = kids.length; //ͳ¼Æ×Ó½Úµã×ÜÊý
        for(var i=kidsNum-1;i>=0;i--) { //ÄæÏò±éÀú×Ó½ÚµãÁбí
            var c = node.removeChild(kids); //ɾ³ýÖ¸¶¨×ӽڵ㣬±£´æÔÚcÖÐ
            node.appendChild(c); //½«c·ÅÔÚÐÂλÖÃÉÏ
        }
    }
</script>
</head>
<body>
<p>µÚÒ»ÐÐ</p>
<p>µÚ¶þÐÐ</p>
<p>µÚÈýÐÐ</p>
<p><input type="button" name="reverseGo" value="µßµ¹"
></p>
</body>
</html>

¡¡¡¡Àý×Ó4-- sample4_2.htm£º
¡¡¡¡Àý×Ó1ͨ¹ýÖ±½Ó²Ù×÷bodyµÄ×Ó½ÚµãÀ´ÐÞ¸ÄÎĵµ¡£ÔÚ HTMLÎĵµÖУ¬²¼¾ÖºÍ¶¨Î»³£³£Í¨¹ý±í¸ñ<table>À´ÊµÏÖ¡£Òò´Ë£¬Àý×Ó4½«ÑÝʾ²Ù×÷±í¸ñÄÚÈÝ£¬½«±í¸ñµÄËĸöµ¥ÔªÐÐ˳Ðòµßµ¹¡£Èç¹ûûÓÐʹÓà <tbody>±êÇ©£¬Ôò<table>°ÑÈ«²¿µÄ<tr>µ±×öÊÇÊôÓÚÒ»¸ö×Ó½Úµã<tbody>£¬ËùÒÔÎÒÃDzÉÓÃÊý×黺´æµÄ·½Ê½£¬°ÑÐÐÊý¾Ýµßµ¹Ò»Ï¡£Õâ¸öÀý×ÓͬʱҲÑÝʾÁËÈçºÎʹÓÃDOM´´½¨±í¸ñµ¥ÔªÐС£

<html>
<head>
<meta http-equiv="Content-Type" c>
<title>ÎÞ±êÌâÎĵµ</title>
<script language="javascript">
function reverseTable() {
    var node = document.getElementsByTagName("table")[0]; //µÚÒ»¸ö±í¸ñ
    var child = node.getElementsByTagName("tr"); //È¡µÃ±í¸ñÄÚµÄËùÓÐÐÐ
    var newChild = new Array(); //¶¨Ò建´æÊý×飬±£´æÐÐÄÚÈÝ
    for(var i=0;i<child.length;i++) {
        newChild = child.firstChild.innerHTML;
    }
    node.removeChild(node.childNodes[0]); //ɾ³ýÈ«²¿µ¥ÔªÐÐ
    var header = node.createTHead(); //н¨±í¸ñÐÐÍ·
    for(var i=0;i<newChild.length;i++) {
        var headerrow = header.insertRow(i); //²åÈëÒ»¸öµ¥ÔªÐÐ
        var cell = headerrow.insertCell(0); //ÔÚµ¥ÔªÐÐÖвåÈëÒ»¸öµ¥Ôª¸ñ
        //ÔÚµ¥Ôª¸ñÖд´½¨TextNode½Úµã
        cell.appendChild(document.createTextNode(newChild[newChild.length-i-1]));
    }
}
</script>
</head>
<body>
<table width="200" border="1" cellpadding="4" cellspacing="0">
    <tr>
        <td height="25">µÚÒ»ÐÐ</td>
    </tr>
    <tr>
        <td height="25">µÚ¶þÐÐ</td>
    </tr>
    <tr>
        <td height="25">µÚÈýÐÐ</td>
    </tr>
    <tr>
        <td height="25">µÚËÄÐÐ</td>
    </tr>
</table>
<br>
<input type="button" name="reverse" value="¿ªÊ¼µßµ¹" >
</body>
</html>

¡¡¡¡Àý×Ó5 -- sample4_3.htm£º
¡¡¡¡ÕýÈçÎÒÃÇÔÚNode½Úµã½éÉܲ¿·ÖËùÖ¸³öµÄÄÇÑù£¬appendChild()¡¢replaceChild()¡¢removeChild()¡¢insertBefore()·½·¨»áÁ¢¼´¸Ä±äÎĵµµÄ½á¹¹¡£ÏÂÃæµÄÀý×Ó°üº¬Á½¸ö±í¸ñ£¬ÎÒÃÇÊÔ×Űѱí¸ñ¶þµÄÄÚÈÝÌæ»»±í¸ñÒ»µÄÄÚÈÝ¡£

<html>
<head>
<meta http-equiv="Content-Type" c>
<title>ÎÞ±êÌâÎĵµ</title>
<script language="javascript">
function replaceContent() {
    var table1 = document.getElementsByTagName("table")[0];
    var table2 = document.getElementsByTagName("table")[1];
    var kid1 = table1.firstChild.firstChild.firstChild; //¶¨Î»µ½<td>½Úµã
    var kid2 = table2.firstChild.firstChild.firstChild; //¶¨Î»µ½<td>½Úµã
    var repKid = kid2.firstChild; //¶¨Î»µ½±í¸ñ¶þ<td>ÄÚº¬µÄTextNode½Úµã
    try {
        //Óñí¸ñ¶þµÄµ¥Ôª¸ñÄÚÈÝÌæ»»±í¸ñÒ»µÄµ¥Ôª¸ñÄÚÈÝ£¬±í¸ñ¶þ±ä³ÉûÓе¥Ôª¸ñÄÚÈÝ
        kid1.replaceChild(repKid,kid1.firstChild);
        //ÏÂÃæ×¢ÊÍÈç¹û¿ª·Å£¬½«³öÏÖobject error£¬ÒòΪ±í¸ñ¶þÒѾ­±»¸Ä±ä
        //kid2.replaceChild(kid1.firstChild,kid2.firstChild);
    }catch(e){
        alert(e);
    }
}
</script>
</head>
<body>
<table width="200" border="1" cellspacing="0" cellpadding="0">
<tbody>
    <tr>
        <td>±í¸ñÒ»</td>
    </tr>
</tbody>
</table>
<br>
<table width="200" border="1" cellspacing="0" cellpadding="0">
<tbody>
    <tr>
        <td>±í¸ñ¶þ</td>
    </tr>
</tbody>
</table>
<br>
<input type="button" name="replaceNode" value="Ìæ»»" >
</body>
</html>

¡¡¡¡×¢Ò⣬µ±Ö´ÐÐkid1.replaceChild(repKid,kid1.firstChild);µÄʱºò£¬table2µÄ×Ó½ÚµãÒѾ­±»×ªÒƵ½table1ÁË£¬table2ÒѾ­Ã»ÓÐ×ӽڵ㣬²»ÄÜÔÙµ÷ÓÃtable2µÄ×ӽڵ㡣¿´¿´´úÂëµÄ×¢ÊÍ£¬ÊÔ×ÅÔËÐÐһϣ¬Ó¦¸Ã¾ÍÖªµÀÎĵµÊÇÔõô¸Ä±äµÄÁË¡£

¡¡¡¡D¡¢ÍùÎĵµÌí¼ÓÐÂÄÚÈÝ
¡¡¡¡ÔÚѧ»á±éÀú¡¢ËÑË÷¡¢ÐÞ¸ÄÎĵµÖ®ºó£¬ÎÒÃÇÏÖÔÚÊÔ×ÅÍøÎĵµÌí¼ÓеÄÄÚÈÝ¡£ÆäʵûÓÐʲôÐÂÒ⣬ֻÊÇÀûÓÃÎÒÃÇÉÏÊöÌáµ½µÄNodeµÄÊôÐԺͷ½·¨¶øÒÑ£¬»¹ÊDzÙ×÷<table>±ê¼ÇµÄÄÚÈÝ¡£ÓÐÐÂÒâµÄÊÇ£¬ÎÒÃÇҪʵÏÖÒ»¸öÁôÑÔ²¾¡£Êǵģ¬ÁôÑÔ²¾£¬Äã¿ÉÒÔÍùÀïÃæÁôÑÔ£¬Ö»ÊDz»ÄÜË¢ÐÂàÞ¡£

¡¡¡¡Àý×Ó6 ¨C sample5_1.htm£º

<html>
<head>
<meta http-equiv="Content-Type" c>
<title>ÎÞ±êÌâÎĵµ</title>
<script language="javascript">
function insertStr() {
    var f = document.form1;
    var value = f.str.value;
    if(value!="") {
        // ´Ó×îÖÕµÄTextNode½Úµã¿ªÊ¼£¬ÂýÂýÐγÉ<tbody>½á¹¹
        var text = document.createTextNode(value); //н¨Ò»¸öTextNode½Úµã
        var td = document.createElement("td"); //н¨Ò»¸ötdÀàÐ͵ÄElement½Úµã
        var tr = document.createElement("tr"); //н¨Ò»¸ötrÀàÐ͵ÄElement½Úµã
        var tbody = document.createElement("tbody"); //н¨Ò»¸ötbodyÀàÐ͵ÄElement½Úµã
        td.appendChild(text); //½«½Úµãtext¼ÓÈëtdÖÐ
        tr.appendChild(td); //½«½Úµãtd¼ÓÈëtrÖÐ
        tbody.appendChild(tr); //½«½Úµãtr¼ÓÈëtbodyÖÐ
        var parNode = document.getElementById("table1"); //¶¨Î»µ½tableÉÏ
        parNode.insertBefore(tbody,parNode.firstChild); //½«½Úµãtbody²åÈëµ½½Úµã¶¥²¿
        //parNode.appendChild(tbody); //½«½Úµãtbody¼ÓÈë½Úµãβ²¿
    }
}
</script>
</head>
<body>
<form name="form1" method="post" action="">
    <input name="str" type="text" id="str" value="">
    <input name="insert" type="button" id="insert" value="ÁôÑÔ" >
</form>
<table width="400" border="1" cellspacing="0" cellpadding="0" id="table1">
<tbody>
    <tr>
        <td height="25">ÍøÓÑÁôÑÔÁÐ±í£º</td>
    </tr>
</tbody>
</table>
</body>
</html>

¡¡¡¡ÎÒÃÇ֮ǰ˵¹ý£¬<table>µÄ×Ó½ÚµãÊÇ<tbody>£¬<tbody>µÄ×Ó½Úµã²ÅÊÇ< tr>£¬<tr>ÊÇ<td>µÄ¸¸½Úµã£¬×îºó<td>ÄÚ²¿µÄTextNode½Úµã¡£ËùÒÔ£¬Íù< table>Ôö¼Óµ¥Ôª¸ñÐÐÒªÖð¼¶Ðγɣ¬¾ÍÏñÍùÊ÷ÀïÃæÌí¼ÓÒ»¸öÖ¦èâÒ»Ñù£¬ÒªÓÐÒ¶×ÓÓо¶¡£¿´¿´£¬Õâ¸öÁôÑÔ²¾ÊDz»ÊǺܼòµ¥°¡¡£Õâ¸öÀý×ÓͬʱҲÑÝʾÁËÍù <table>±í¸ñ±ê¼ÇÀïÃæÔö¼ÓÄÚÈݵÄÁíÒ»ÖÖ·½·¨¡£

¡¡¡¡E¡¢Ê¹ÓÃDOM²Ù×÷XMLÎĵµ
¡¡¡¡ÔÚÊý¾Ý±íʾ·½Ã棬XMLÎĵµ¸ü¼Ó½á¹¹»¯¡£DOMÔÚÖ§³ÖHTMLµÄ»ù´¡ÉÏÌṩÁËһϵÁеÄAPI£¬Ö§³ÖÕë¶ÔXMLµÄ·ÃÎʺͲÙ×÷¡£ÀûÓÃÕâЩAPI£¬ÎÒÃÇ¿ÉÒÔ´ÓXMLÖÐÌáÈ¡ÐÅÏ¢£¬¶¯Ì¬µÄ´´½¨ÕâЩÐÅÏ¢µÄHTML³ÊÏÖÎĵµ¡£´¦Àí XMLÎĵµ£¬Í¨³£×ñÑ­¡°¼ÓÔØXMLÎĵµ¨¤ÌáÈ¡ÐÅÏ¢¨¤¼Ó¹¤ÐÅÏ¢¨¤´´½¨HTMLÎĵµ¡±µÄ¹ý³Ì¡£ÏÂÃæµÄÀý×ÓÑÝʾÁËÈçºÎ¼ÓÔØ²¢´¦ÀíXMLÎĵµ¡£

¡¡¡¡Õâ¸öÀý×Ó°üº¬Á½¸öJSº¯Êý¡£loadXML()¸ºÔð¼ÓÔØXMLÎĵµ£¬ÆäÖмȰüº¬¼ÓÔØXMLÎĵµµÄ2¼¶DOM´úÂ룬ÓÖÓÐʵÏÖͬÑù²Ù×÷µÄ MicrosoftרÓÐAPI´úÂë¡£ÐèÒªÌáÐÑ×¢ÒâµÄÊÇ£¬Îĵµ¼ÓÔØ¹ý³Ì²»ÊÇ˲¼äÍê³ÉµÄ£¬ËùÒÔ¶ÔloadXML()µÄµ÷Óý«ÔÚ¼ÓÔØÎĵµÍê³É֮ǰ·µ»Ø¡£Òò´Ë£¬ÐèÒª´«µÝ¸øloadXML()Ò»¸öÒýÓã¬ÒÔ±ãÎĵµ¼ÓÔØÍê³Éºóµ÷Óá£

¡¡¡¡Àý×ÓÖеÄÁíÍâÒ»¸öº¯ÊýmakeTable()£¬ÔòÔÚXMLÎĵµ¼ÓÔØÍê±ÏÖ®ºó£¬Ê¹ÓÃ×îºóǰ½éÉܹýµÄDOMÓ¦Óñà³Ì½Ó¿Ú¶ÁÈ¡XMLÎĵµÐÅÏ¢£¬²¢ÀûÓÃÕâЩÐÅÏ¢ÐγÉÒ»¸öеÄtable±í¸ñ¡£

¡¡¡¡Àý×Ó7 -- sample6_1.htm£º

<html>
<head>
<meta http-equiv="Content-Type" c>
<title>ÎÞ±êÌâÎĵµ</title>
<script language="javascript">
function loadXML(handler) {
    var url = "employees.xml";
    if(document.implementation&&document.implementation.createDocument) {
        var xmldoc = document.implementation.createDocument("", "", null);
        xmldoc.onload =  handler(xmldoc, url);
        xmldoc.load(url);
    }
    else if(window.ActiveXObject) {
        var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
        xmldoc.onreadystatechange = function() {
            if(xmldoc.readyState == 4) handler(xmldoc, url);
        }
        xmldoc.load(url);
    }
}
function makeTable(xmldoc, url) {
    var table = document.createElement("table");
    table.setAttribute("border","1");
    table.setAttribute("width","600");
    table.setAttribute("class","tab-content");
    document.body.appendChild(table);
    var caption = "Employee Data from " + url;
    table.createCaption().appendChild(document.createTextNode(caption));
    var header = table.createTHead();
    var headerrow = header.insertRow(0);
    headerrow.insertCell(0).appendChild(document.createTextNode("ÐÕÃû"));
    headerrow.insertCell(1).appendChild(document.createTextNode("Ö°Òµ"));
    headerrow.insertCell(2).appendChild(document.createTextNode("¹¤×Ê"));
    var employees = xmldoc.getElementsByTagName("employee");
    for(var i=0;i<employees.length;i++) {
        var e = employees;
        var name = e.getAttribute("name");
        var job = e.getElementsByTagName("job")[0].firstChild.data;
        var salary = e.getElementsByTagName("salary")[0].firstChild.data;
        var row = table.insertRow(i+1);
        row.insertCell(0).appendChild(document.createTextNode(name));
        row.insertCell(1).appendChild(document.createTextNode(job));
        row.insertCell(2).appendChild(document.createTextNode(salary));
    }
}
</script>
<link href="css/style.css" rel="stylesheet" type="text/css">
</head>

<body >
</body>
</html>

¹©¶ÁÈ¡µ÷ÓõÄXMLÎĵµ ¨C employees.xml£º

<?xml version="1.0" encoding="gb2312"?>
<employees>
    <employee name="J.Doe">
        <job> rogrammer</job>
        <salary>32768</salary>
    </employee>
    <employee name="A.Baker">
        <job>Sales</job>
        <salary>70000</salary>
    </employee>
    <employee name="Big Cheese">
        <job>CEO</job>
        <salary>100000</salary>
    </employee>
</employees>

7.5¡¢´¦ÀíXMLÎĵµ
¡¡¡¡ÍÑÀëXMLÎĵµµÄAJAXÊDz»ÍêÕûµÄ¡£ÔÚ±¾²¿·ÖδÍê³É֮ǰ£¬ÓжÁÕß˵AJAX¸ÄÃû½ÐAJAH£¨HÓ¦¸Ã´ú±íHTML°É£©±È½ÏºÏÊÊ¡£Ó¦¸Ã³ÐÈÏ£¬XMLÎĵµÔÚÊý¾ÝµÄ½á¹¹»¯±íʾÒÔ¼°½Ó¿Ú¶Ô½ÓÉÏÓÐÏÈÌìµÄÓÅÊÆ£¬µ«Ò²²»ÊÇËùÓеÄÊý¾Ý¶¼Ó¦¸ÃÓÃXML±íʾ¡£ÓÐЩʱºòµ¥´¿µÄÎı¾±íʾ¿ÉÄÜ»á¸üºÏÊÊ¡£ÏÂÃæÏȾٸöAJAX´¦Àí·µ»ØXMLÎĵµµÄÀý×ÓÔÙÌÖÂÛʲôʱºòʹÓÃXML¡£

7.5.1¡¢´¦Àí·µ»ØµÄXML
¡¡¡¡ Àý×Ó8 -- sample7_1.htm£º
¡¡¡¡ÔÚÕâ¸öÀý×ÓÖУ¬ÎÒÃDzÉÓÃ֮ǰȷ¶¨µÄAJAX¿ª·¢¿ò¼Ü£¬ÉÔ΢ÐÞ¸ÄÒ»ÏÂbodyÄÚÈݺÍprocessRequestµÄÏàÓ¦·½Ê½£¬½«ÏÈǰµÄemployees.xmlµÄÄÚÈݶÁÈ¡³öÀ´²¢ÏÔʾ¡£

¡¡¡¡bodyµÄÄÚÈÝÈçÏ£º

<input type="button" name="read"
value="¶ÁÈ¡XML" >
processRequest()·½·¨ÐÞ¸ÄÈçÏ£º
    // ´¦Àí·µ»ØÐÅÏ¢µÄº¯Êý
    function processRequest() {
        if (http_request.readyState == 4) { // Åж϶ÔÏó״̬
            if (http_request.status == 200) { // ÐÅÏ¢ÒѾ­³É¹¦·µ»Ø£¬¿ªÊ¼´¦ÀíÐÅÏ¢
        var returnObj = http_request.responseXML;
        var xmlobj = http_request.responseXML;
        var employees = xmlobj.getElementsByTagName("employee");
        var feedbackStr = "";
        for(var i=0;i<employees.length;i++) { // Ñ­»·¶ÁÈ¡employees.xmlµÄÄÚÈÝ
        var employee = employees;
        feedbackStr += "Ô±¹¤£º" + employee.getAttribute("name");
        feedbackStr +=
" ְλ£º" + employee.getElementsByTagName("job")[0].firstChild.data;
        feedbackStr +=
" ¹¤×Ê£º" + employee.getElementsByTagName("salary")[0].firstChild.data;
        feedbackStr +=  "\r\n";
                }
                alert(feedbackStr);
            } else { //Ò³Ãæ²»Õý³£
                alert("ÄúËùÇëÇóµÄÒ³ÃæÓÐÒì³£¡£");
            }
        }
}

¡¡¡¡ÔËÐÐһϣ¬¿´À´Ð§¹û»¹²»´í£º

7.5.2¡¢Ñ¡ÔñºÏÊʵÄXMLÉú³É·½Ê½

¡¡¡¡ÏÖÔÚµÄwebÓ¦ÓóÌÐòÍùÍù²ÉÓÃÁËMVCÈý²ã°þÀëµÄÉè¼Æ·½Ê½¡£XML×÷ΪһÖÖÊý¾Ý±£´æ¡¢³ÊÏÖ¡¢½»»¥µÄÎĵµ£¬ÆäÊý¾ÝÍùÍùÊǶ¯Ì¬Éú³ÉµÄ£¬Í¨³£ÓÉ JavaBeanת»»¹ýÀ´¡£ÓÉJavaBeanת»»³ÉXMLÎĵµµÄ·½Ê½Óкü¸ÖÖ£¬Ñ¡ÔñºÏÊʵÄת»»·½Ê½ÍùÍùÄܴﵽʰ빦±¶µÄЧ¹û¡£ÏÂÃæ½éÉÜÁ½ÖÖ³£Óõķ½Ê½£¬ÒÔ±ãÐèÒªµÄʱºò¸ù¾ÝÇé¿öÈ¡Éá¡£

¡¡¡¡A¡¢Àà×ÔÐÐÐòÁл¯³ÉXML
¡¡¡¡Àà×ÔÐÐÐòÁл¯³ÉXML¼´Ã¿¸öÀ඼ʵÏÖ×Ô¼ºµÄtoXML()·½·¨£¬Ñ¡ÔñºÏÊʵÄAPI¡¢Êʵ±µÄXML½á¹¹¡¢¾¡Á¿±ã½ÝµÄÉú³ÉÂß¼­¿ìËÙÉú³ÉÏàÓ¦µÄXMLÎĵµ¡£ÏÔÈ»£¬ÕâÖÖ·½Ê½±ØÐëÒªÇóÿ¸öÀà±àдרÃŵÄXMLÉú³É´úÂ룬ÿ¸öÀàÖ»Äܵ÷ÓÃ×Ô¼ºµÄtoXML()·½·¨¡£Ó¦ÓÃÖîÈçJDOMµÈһЩÏֳɵÄAPI£¬¿ÉÒÔ¼õÉÙ²»ÉÙ¿ª·¢Í¶Èë¡£Àý×Ó9ÊÇÒ»¸öÀûÓÃJDOMµÄAPIÐγɵÄtoXML()·½·¨¡£

¡¡¡¡Àý×Ó9 -- toXml() µÄ JDOM ʵÏÖ -- EmployÀàµÄtoXml()·½·¨£º

public Element toXml() {  
    Element employee = new Element(¡°employee¡±);
    Employee.setAttribute(¡°name¡±,name);
    Element jobE = new Element(¡°job¡±).addContent(job);
    employee.setContent(jobE);
    Element salaryE = new Element(¡°salary¡±).addContent(salary);
    employee.setContent(salaryE);
    return employee;
}

¡¡¡¡JDOMÌṩÁËÏֳɵÄAPI£¬Ê¹µÃÐòÁл¯³ÉXMLµÄ¹¤×÷¸ü¼Ó¼òµ¥£¬ÎÒÃÇÖ»ÐèÒª°ÑtoXML()ÍâÃæ°ü×°Ò»¸öDocument£¬È»ºóʹÓà XMLOutputter°ÑÎĵµÐ´Èëservlet¾Í¿ÉÒÔÁË¡£toXml()ÔÊÐíµÝ¹éµ÷ÓÃÆä×ÓÀàµÄtoXML()·½·¨£¬ÒÔ±ãÉú³É°üº¬×ÓͼµÄXMLÎĵµ¡£

¡¡¡¡Ê¹ÓÃÀà×ÔÐÐÐòÁл¯³ÉXMLµÄ·½Ê½£¬ÒªÃ¿¸öÀ඼ʵÏÖ×Ô¼ºµÄtoXML()·½·¨£¬¶øÇÒ´æÔÚÊý¾ÝÄ£ÐÍÓëÊÓͼñîºÏµÄÎÊÌ⣬¼´ÒªÃ´ÎªÃ¿¸ö¿ÉÄܵÄÊÓͼ±àд¶ÀÁ¢µÄtoXML()·½·¨£¬ÒªÃ´ÐĸÊÇéÔ¸½ÓÊÕÈßÓàµÄÊý¾Ý£¬Ò»µ©Êý¾Ý½á¹¹»òÕßÎĵµ·¢Éú¸Ä±ä£¬toXML()¾ÍÒª×ö±ØÒªµÄÐ޸ġ£

¡¡¡¡B¡¢Ò³ÃæÄ£°åÉú³ÉXML·½Ê½
¡¡¡¡Ò»°ãµÄ£¬¿ÉÒÔ²ÉÓÃͨÓõÄÒ³ÃæÄ£°å¼¼ÊõÀ´Éú³ÉXMLÎĵµ£¬Õâ¸öXML Îĵµ¿ÉÒÔ·ûºÏÈκÎÐèÒªµÄÊý¾ÝÄ£ÐÍ£¬¹©AJAXÁé»îµÄµ÷Óá£ÁíÍ⣬ģ°å¿ÉÒÔ²ÉÓÃÈκαê¼ÇÓïÑÔ±àд£¬Ìá¸ß¹¤×÷ЧÂÊ¡£ÏÂÃæÊÇÒ»¸ö²ÉÓÃStruts±êÇ©¿â±àдµÄ XMLÎĵµ£¬Êä³ö֮ǰÌáµ½µÄemployees.xml£º

¡¡¡¡Sample8_2.jsp£º

<%@ page c import="Employee"%>
<%@ page import="java.util.Collection,java.util.ArrayList"%>
<?xml version="1.0"?>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%
Employee em1 = new Employee();
em1.setName(" J .Doe");
em1.setJob(" Programmer");
em1.setSalary("32768");
Employee em2 = new Employee();
em2.setName("A.Baker");
em2.setJob("Sales");
em2.setSalary("70000");
Employee em3 = new Employee();
em3.setName("Big Cheese");
em3.setJob("CEO");
em3.setSalary("100000");
Collection employees = new ArrayList();
employees.add(em1);
employees.add(em2);
employees.add(em3);
pageContext.setAttribute("employees",employees);
%>
<employees>
<logic:iterate name="employees" id="employee">
    <employee name="<bean:write name='employee' property='name'/>">
        <job><bean:write name="employee" property="job"/></job>
        <salary><bean:write name="employee" property="salary"/></salary>
    </employee>
</logic:iterate>
</employees>

¡¡¡¡²ÉÓÃÒ³ÃæÄ£°åÉú³ÉXML·½Ê½£¬ÐèҪΪÿ¸öÐèÒªµÄµÄÊý¾ÝÄ£Ðͽ¨Á¢Ò»¸ö¶ÔÁ¢µÄJSPÎļþ£¬ÓÃÀ´Éú³É·ûºÏ¹æ·¶µÄXMLÎĵµ£¬¶ø²»Äܽö½öÔÚÀàµÄtoXML()·½·¨ÖÐ×éÖ¯¶ÔÏóͼÀ´ÊµÏÖ¡£²»¹ý£¬µ¹ÊÇ¿ÉÒÔ¸ü¼Ó·½±ãµÄÈ·±£±ê¼ÇÆ¥Åä¡¢ÔªËØºÍÊôÐÔµÄ˳ÐòÕýÈ·ÒÔ¼°XMLʵÌåÕýȷתÒå¡£

¡¡¡¡²Î¿¼×ÊÁÏÖÐPhilip McCarthyµÄÎÄÕ»¹ÃèÊöÁËÒ»ÖÖJavascript¶ÔÏó±ê×¢µÄÉú³É·½Ê½£¬±¾ÎÄÔڴ˲»×¸Êö¡£ÓÐÐËȤµÄ¶ÁÕß¿ÉÒÔ×ÔÐв鿴Á˽⡣

7.5.3¡¢ÈçºÎÔÚʹÓÃXML»¹ÊÇÆÕͨÎı¾¼äȨºâ
¡¡¡¡Ê¹ÓÃXMLÎĵµÈ·ÊµÓÐÆä·½±ãÖ®´¦¡£²»¹ýXMLÎĵµµÄijЩÎÊÌâµ¹ÊÇÒª¿¼ÂÇһϣ¬±ÈÈç˵ÑÓ³Ù£¬¼´·þÎñÆ÷²»ÄÜÁ¢¼´½âÎöXMLÎĵµ³ÉΪDOMÄ£ÐÍ¡£Õâ¸öÎÊÌâÔÚÒ»¶¨³Ì¶ÈÉÏ»áÓ°ÏìAJAXÒªÇóµÄ¿ìËÙ·´Ó¦ÄÜÁ¦¡£ÁíÍ⣬ijЩÇé¿öÏÂÎÒÃDz¢²»ÐèҪʹÓÃXMLÀ´±íʾÊý¾Ý£¬±ÈÈç˵Êý¾Ý×ã¹»¼òµ¥³ÉÖ»ÓÐÒ»¸ö×Ö·û´®¶øÒÑ¡£¾ÍºÃÏñÎÒÃÇ֮ǰÌáµ½µÄÊý¾ÝУÑéºÍ¼¶Áª²Ëµ¥µÄÀý×ÓÒ»Ñù¡£ËùÒÔ£¬¸öÈËÈÏΪÔÚÏÂÃæÕâЩÇé¿öÏ¿ÉÒÔ¿¼ÂÇʹÓÃXMLÀ´×÷ΪÊý¾Ý±íʾµÄ½éÖÊ£º

    * Êý¾Ý±È½Ï¸´ÔÓ£¬ÐèÒªÓÃXMLµÄ½á¹¹»¯·½Ê½À´±íʾ
    * ²»Óÿ¼ÂÇ´ø¿íºÍ´¦ÀíЧÂÊÖ§³ö
    * ÓëϵͳÆäËûAPI»òÕ߯äËûϵͳ½»»¥£¬×÷ΪһÖÖÊý¾ÝÖÐתÖнé
    * ÐèÒªÌØ¶¨¸÷ʽµÄÊä³öÊÓͼ¶øÎı¾ÎÞ·¨±íʾµÄ

¡¡¡¡×ÜÖ®£¬ÒªÈÏÕæÆÀ¹ÀÁ½ÖÖ±íʾ·½Ê½µÄ±íʾ³É±¾ºÍЧÂÊ£¬Ñ¡ÔñºÏÊʵĺÏÀíµÄ±íʾ·½Ê½¡£¡¡¡¡

¡¡¡¡ÔÚ¹ØÓÚAJAXµÄϵÁÐÎÄÕµÄÏÂһƪ£¬ÎÒÃǽ«×ÛºÏʹÓÃDOMºÍXML£¬À´ÊµÏÖÒ»¸ö¿ÉÒԳ־û¯µÄ¼òµ¥ÁôÑÔ²¾¡£ÁíÍ⣬»¹½«ÊÔ×ÅÄ£ÄâMSN SpaceµÄ²¿·Ö¹¦ÄÜ£¬À´Ìå»áAJAXµÄ÷ÈÁ¦¡£

²Î¿¼ÎÄÕ£º

×÷Õߣº     fanscial     ±êÌ⣺     ¡¶AJAX¼ò½é¡·
ÍøÖ·£º     http://www.blogjava.net/fanscial/archive/2005/08/31/11628.html
×÷Õߣº     Amour GUO     ±êÌ⣺     ¡¶AJAXÄÚ²¿½»Á÷Îĵµ¡·
ÍøÖ·£º     http://www.dragonson.com/doc/ajax.html
×÷Õߣº     MoztwWiki     ±êÌ⣺     ¡¶AJAXÉÏÊÖÆª¡·
ÍøÖ·£º     http://wiki.moztw.org/index.php/AJAX_%E4%B8%8A%E6%89%8B%E7%AF%87
×÷Õߣº     Philip McCarthy     ±êÌ⣺     ÃæÏòJava¿ª·¢ÈËÔ±µÄAjax:¹¹½¨¶¯Ì¬µÄJavaÓ¦ÓóÌÐò
ÍøÖ·£º     http://kb.csdn.net/java/Articles ... 4-0e3eb733c8b5.html
×÷Õߣº     Philip McCarthy     ±êÌ⣺     ÃæÏòJava¿ª·¢ÈËÔ±µÄAjax:AjaxµÄJava¶ÔÏóÐòÁл¯
ÍøÖ·£º     http://kb.csdn.net/java/Articles ... b-eadde723e734.html
×÷Õߣº     David Flanagan     ÊéÃû£º     ¡¶JavascriptȨÍþÖ¸ÄÏ¡·

[ ±¾Ìû×îºóÓÉ aming ÓÚ 2008-4-7 09:31 ±à¼­ ]

TOP

ÏëÏóʹÓÃÒ»¸ö¼òµ¥ HTML ÎļþÀ´°ÑÒ»¸öÇëÇó·¢Ë͵½Ò»¸ö·þÎñÆ÷¶Ë½Å±¾£¬ÊÕµ½Ò»¸ö»ùÓÚ¸ÃÇëÇóµÄ¶¨ÖÆ XMLÎļþ£¬È»ºó°ÑËüÏÔʾ¸øÓû§¶ø¼¸ºõ²»ÐèҪˢÐÂä¯ÀÀÆ÷£¡±¾ÎÄ×÷Õß½«Í¬ÄãÒ»Æð̽ÌÖÔõÑùÔÚÆÕͨ Web Ó¦ÓóÌÐòÖÐÁªºÏ JavaScript¡¢PHP ºÍAjax ¼¼ÊõÀ´´´½¨ÊµÊ±µÄÊý¾Ý´«Êä¶ø²»ÐèÒª½øÐÐä¯ÀÀÆ÷ˢС£

»ùÓÚ PHP ºÍ AJAX ´´½¨ RSS ¾ÛºÏÆ÷

ÏëÏóʹÓÃÒ»¸ö¼òµ¥HTMLÎļþÀ´°ÑÒ»¸öÇëÇó·¢Ë͵½Ò»¸ö·þÎñÆ÷¶Ë½Å±¾£¬ÊÕµ½Ò»¸ö»ùÓÚ¸ÃÇëÇóµÄ¶¨ÖÆXMLÎļþ£¬È»ºó°ÑËüÏÔʾ¸øÓû§¶ø¼¸ºõ²»ÐèҪˢÐÂä¯ÀÀÆ÷£¡±¾ÎÄ×÷Õß½«Í¬ÄãÒ»Æð̽ÌÖÔõÑùÔÚÆÕͨWebÓ¦ÓóÌÐòÖÐÁªºÏjavascript:;"  target="_self">PHPºÍAJAX¼¼ÊõÀ´´´½¨ÊµÊ±µÄÊý¾Ý´«Êä¶ø²»ÐèÒª½øÐÐä¯ÀÀÆ÷ˢС£

¡¡¡¡¾¡¹Ü±¾ÎÄËùʹÓõÄÊÇPHPÓïÑÔ£¬µ«ÊÇÇë¼ÇסÈκηþÎñÆ÷¶ËÓïÑÔ¶¼»áÕý³£¹¤×÷¡£ÎªÁËÀí½â±¾ÎÄ£¬ÎÒ¼Ù¶¨Äã»ù±¾Àí½âJavaScriptºÍPHP»òÒ»ÀàËÆ·þÎñÆ÷¶ËÓïÑÔ¡£

¡¡¡¡±¾ÎÄʾÀýʹÓÃAJAXÀ´°ÑÒ»ÇëÇó´ÓÒ»¸öRSSÀ¡ËÍ·¢Ë͵½Ò»¶¨ÖƵÄPHP¶ÔÏ󡣸ÃPHP¶ÔÏó¸´ÖÆÒ»·ÝÔÚ±¾µØ·þÎñÆ÷ÉϵĸÃÀ¡ËͲ¢·µ»ØÕâһ·¾¶¡£¸ÃÇëÇó¶ÔÏóÊÕµ½Õâһ·¾¶£¬·ÖÎöËü£¬²¢ÇÒ°ÑÊý¾ÝÒÔHTMLÐÎʽÏÔʾ¸øÓû§¡£ÕâÌýÆðÀ´Éæ¼°ºÜ¶à²½Ö裬ÆäʵËü½öÓÉ4¸öСÎļþ×é³É¡£Ö®ËùÒÔʹÓÃÁË4¸öСÎļþ£¬ÊÇΪÁËÆ½ºâËüÃǸ÷×ÔÌØ¶¨µÄÁ¦Á¿¶øÊ¹Õû¸öϵͳµÄ´¦Àí¼«¸»Ð§ÂÊÐÔ¡£

¡¡¡¡ÓÐЩ¶ÁÕß¿ÉÄÜ»áÎÊ£¬ÎªÊ²Ã´ÄãÒª´´½¨ÔÚ±¾µØ·þÎñÆ÷ÉϵÄÀ¡Ë͵ÄÒ»¸ö¸±±¾¶ø²»ÊǼòµ¥·ÖÎö×îԭʼµÄÀ¡ËÍ¡£Ô­ÒòÊÇ£¬ÕâÑùÒÔÀ´¿ÉÒÔÔÊÐíÈÆ¹ýXML HTTP Request¶ÔÏóËùÇ¿¼ÓµÄ¿çÓòÏÞÖÆ¡£ºóÃæ£¬ÎÒ»¹»á½âÊÍÔõÑù´´½¨Õâ¸ö¶¨ÖƵÄPHP¶ÔÏó£»µ«ÊÇÊ×ÏÈ£¬ÈÃÎÒÃÇ´Ó±íµ¥´´½¨¿ªÊ¼¡£

¡¡¡¡´´½¨·¢³öÇëÇóµÄ±íµ¥

¡¡¡¡ÄãÒª×öµÄµÚÒ»ÊÂÇéÊÇ£¬ÔÚÄãµÄHTMLµÄhead±êǩ֮¼ä°üÀ¨Äã¿ÉÄÜÏëʹÓõÄJavaScriptºÍÈκÎCSSÎļþ¡£ÎÒ°üÀ¨ÁËÒ»¸öʽÑù±íÀ´ÊµÏÖ¸Ã¾ÛºÏÆ÷µÄ×îºó²¼¾Ö²¢ÓÃÒ»¸öJavaScriptÎļþÀ´·¢³öÇëÇóºÍ½øÐÐÀ¡ËÍ·ÖÎö£º

£¼link href="css/layout.css" rel="stylesheet" type="text/css" /£¾
£¼script src="js/request.js"£¾£¼/script£¾

¡¡¡¡ÏÂÒ»²½£¬´´½¨Ò»¸ö±íµ¥£¬ËüÕë¶ÔÄãËùÑ¡ÔñµÄÒ»¸öRSSÀ¡ËÍ·¢³öÇëÇó¡£ÎÒ´´½¨µÄ±íµ¥Ö»°üÀ¨Ò»¸öÊäÈë×ֶκÍÒ»¸öÌá½»¸ÃÇëÇóµÄ°´Å¥¡£¸ÃÇëÇóµÄ²éѯÊÇÒ»¸ö×Ö·û´®£¬ËüÓÉÀ¡ËÍÊäÈëÖµºÍÒ»¸ö½«ÔÚ·þÎñÆ÷¶Ë±»Ð£ÑéµÄ¿ÚÁî×Ö×é³É£»×÷Ϊһ¸öʾÀý£¬ÎÒʹÓÃÁËÏÂÃæÐÎʽ£º
"password=mypassword

¡¡¡¡¸Ã´úÂëÔÚÿ´ÎÒ³Ãæ¼ÓÔØÖ®Ê±·¢³öÒ»´ÎÇëÇó£»Òò´Ë£¬Èç¹ûÒ³Ãæ±»Ë¢Ð£¬ÏÖÓеÄÔÚ¸ÃÊäÈëÓòÖеÄÀ¡ËÍ´®½«ÔÚÒ³Ãæ¼ÓÔØÊ±±»ÇëÇó¡£ÏÂÃæÊÇÒ»¸ö±íµ¥Êý¾ÝµÄʾÀý£¬Á¬Í¬Ò»Ð©div±êÇ©ÓÃÀ´ÏÔʾÒÑ·ÖÎöµÄÀ¡Ë͵ÄÌØ¶¨½áµã£º

£¼body password=mypassword');"£¾
£¼form name="feedForm" method="post" action="javascript:makeRequest('request.php?request=' + document.feedForm.feed.value + '"password=mypassword');"£¾
Enter a feed: £¼input type="text" name="feed" id="feed" size="20"£¾
¡¡£¼input type="submit" name="submit" value="Add Feed"£¾
£¼/form£¾
£¼div id="logo"£¾£¼/div£¾
£¼hr/£¾
£¼div id="copy"£¾£¼/div£¾
£¼div id="details"£¾£¼/div£¾
£¼/body£¾

¡¡¡¡ÎÒËù´´½¨µÄÕâÈý¸ödiv±êÇ©ÊÇlogo£¬copyºÍdetails£¬ÆäÖÐÿһ¸ö¶¼ÔÚ²¼¾ÖÑùʽ±íÖÐÓÐÒ»¸öÓëÖ®Ïà¹ØÁªµÄÑùʽ¡£µ±ÎÒÃÇ·ÖÎöÀ¡ËÍʱ½«»áÓõ½ËüÃÇ£¬µ«ÊÇÎÒÃÇÊ×ÏÈÐèÒªÄܹ»´æÈ¡ÎÒÃÇËùÇëÇóµÄÀ¡ËÍ¡£Õâ¿ÉÒÔʹÓÃÎÒÇ°ÃæËùÌáµ½µÄPHP¶ÔÏóÀ´Íê³É¡£

¡¡¡¡´´½¨¶¨ÖƵÄPHP¶ÔÏó

¡¡¡¡ÎÒÓÃPHP´´½¨ÁËÒ»¸öСÐÍRSSÀ࣬ËüÔÚ±¾µØ·þÎñÆ÷ÉÏ´´½¨Ò»¸öÇëÇóÀ¡Ë͵ĸ±±¾£¬ÕâÑùËü¿ÉÒÔΪÎÒÃÇÉÔºóÒª´´½¨µÄXML HTTP Request¶ÔÏóËù´æÈ¡¡£µäÐ͵أ¬Äã²»ÄÜ¿çÓòÇëÇóÒ»¸öÎļþ£¬ÕâÒâζ×ÅÄãÒªÇëÇóµÄÎļþÐèҪλÓÚ±¾µØ·þÎñÆ÷ÉÏ¡£Õâ¸öÀàÊÇÒ»ÖÖ½â¾ö¿çÓòÎÊÌâµÄ°ì·¨£¬ÒòΪËü´´½¨¸ÃÀ¡Ë͵ÄÒ»¸ö¸±±¾£¬Õâ¸ö¸±±¾ÔÚ±¾µØ·þÎñÆ÷Éϱ»ÇëÇó²¢ÇҰѱ¾µØÂ·¾¶·µ»Øµ½¸ÃÀ¡ËÍ£¬È»ºóËüÓɸÃRequest¶ÔÏóÀ´´æÈ¡¡£

¡¡¡¡Õâ¸öÀàÖÐΨһµÄ·½·¨ÊÇÒ»¸öÇëÇó·½·¨£¬Ëü½öÓÐÒ»¸öÖ¸ÏòËùÇëÇóµÄRSSÀ¡Ë͵ÄURLµÄ²ÎÊý¡£È»ºó£¬Ëüͨ¹ýrssµÄÃû×ÖÀ´¼ì²éÊÇ·ñһĿ¼λÓÚ±¾µØ·þÎñÆ÷ÉÏ¡£Èç¹û²»´æÔÚ£¬¾Í´´½¨Ò»¸ö²¢°ÑÆäȨÏÞģʽÉèÖÃΪ0666£¬ÕâÒâζןÃĿ¼¿É¶Áд¡£µ±±»ÉèÖÃΪ¿É¶ÁµÄʱ£¬¸ÃĿ¼¾Í¿ÉÒÔÔÚÒÔºó±»´æÈ¡£»¶øµ±±»ÉèÖÃΪ¿ÉдµÄʱ£¬¾Í¿ÉÒ԰ѸÃÀ¡Ë͵ÄÒ»¸ö¸±±¾Ð´Ïò±¾µØ·þÎñÆ÷ÉϵÄĿ¼£º

//Èç¹û²»´æÔÚĿ¼¾Í´´½¨Ò»¸ö
$dir = "rss";
if(!is_dir($dir))
{
¡¡mkdir($dir£¬ 0666);
}

¡¡¡¡×¢Òâ

¡¡¡¡ÔÚһ̨Windows»úÆ÷ÉÏ£¬¶ÔÓÚPHP 4.2.0¼°ÒÔÉϰ汾ÖÐģʽÉèÖÃÊDz»±»ÒªÇóµÄ¡£µ«ÊÇ£¬Èç¹ûËü´æÔڵϰ£¬Ëü½«±»ºöÂÔ£»Òò´Ë£¬ÎÒ±£ÁôÁËËü£¬ÒÔ±¸¸Ã¹¤³Ì±»Ç¨ÒƵ½Ò»Ì¨UNIX»òLinux·þÎñÆ÷ÉÏ¡£

¡¡¡¡ÔÚ°ÑÀ¡Ë͸´ÖƵ½¸Ã·þÎñÆ÷ǰ£¬ÎÒÃÇÐèÒªÒ»¸öΨһµÄÎļþÃû¡£ÎÒ¶ÔÕâ¸öÍêÕûµÄURLʹÓÃÁËmd5¼ÓÃÜ·½·¨ÒÔÈ·±£ËùÓÐÀ¡Ë͵ÄÃû×ÖÊÇΨһµÄ¡£Í¨¹ýÕâ¸öеÄÎļþÃû£¬Ëü¿ÉÒÔÁ¬½ÓÒ»¸öÃèÊöÖ¸Ïò¸ÃÎļþµÄĿ¼µÄ×Ö·û´®£»Õ⽫ÔÚ´´½¨¸ÃÀ¡Ë͵ĸ±±¾Ê±Ê¹Óãº

//´´½¨Î¨Ò»µÄÃüÃû
$file=md5($rss_url);
$path="$dir/$file.xml";

¡¡¡¡Í¨¹ýʹÓñ»¶¨ÒåÔÚÉÏÃæµÄ·¾¶ºÍµ½Ô­Ê¼µÄ±»ÇëÇóµÄÀ¡Ë͵ÄURLµÄ²Î¿¼£¬ÏÖÔÚÎÒÃÇÄÜ´´½¨¸ÃÎļþµÄÒ»¸ö¸±±¾¡£×îºó£¬°Ñ¸Ã·¾¶·µ»Øµ½¸ÃÐÂÎļþ£¬×÷Ϊ¶Ô¸ÃÇëÇóµÄÏìÓ¦£º

//¸´ÖÆÀ¡Ë͵½±¾µØ·þÎñÆ÷
copy($rss_url£¬"$path");
return $path;
Following is the small£¬ yet powerful RSS class in its entirety:
£¼?php
class RSS
{
¡¡function get($rss_url)
¡¡{
¡¡¡¡if($rss_url != "")
¡¡¡¡{
¡¡¡¡¡¡//Èç¹û²»´æÔÚĿ¼¾Í´´½¨Ò»¸ö
¡¡¡¡¡¡$dir = "rss";
¡¡¡¡¡¡if(!is_dir($dir))
¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡mkdir($dir£¬ 0666);
¡¡¡¡¡¡}
¡¡¡¡¡¡// ´´½¨Ò»¸öΨһµÄÃû×Ö
¡¡¡¡¡¡$file = md5($rss_url);
¡¡¡¡¡¡$path = "$dir/$file.xml";
¡¡¡¡¡¡//¸´ÖÆÀ¡Ë͵½±¾µØ·þÎñÆ÷
¡¡¡¡¡¡copy($rss_url£¬ "$path");
¡¡¡¡¡¡return $path;
¡¡¡¡}
¡¡}
}
?£¾

¡¡¡¡ÎªÁË´æÈ¡¸ÃPHPÀàÖеķ½·¨£¬ÐèÒªÓÐÒ»¸öÇëÇóÎļþÀ´µ£µ±µ½¸ÃÀàµÄÒ»¸ö½Ó¿Ú£¬ÕâÒ²ÕýÊÇÎÒÃÇÕýÔÚÇëÇóµÄÎļþ¡£Õâ¸öÎļþÊ×ÏÈÑéÖ¤´Ó¸ÃÇëÇó²éѯµÄÒ»¿ÚÁî±äÁ¿£¬»òÕß·µ»ØÒ»ÌõÖ¸¶¨¸ÃÇëÇóÕß²»ÊÇÒ»Ãû¾­ÊÚȨµÄÓû§µÄÏûÏ¢£¬»òÕßÓÃÖ¸ÏòRSSÀ¡ËÍ£¨¸ÃÀ¡ËÍÔÚÓÉÇëÇó·½·¨´¦Àíºó±»¸´ÖƵ½±¾µØ·þÎñÆ÷£©µÄ·¾¶×÷³öÏìÓ¦¡£ÎªÁËÏìÓ¦¸ÃRSSÀ¡ËÍ£¬ÐèÒª°üº¬Õâ¸öRSS¶ÔÏó²¢°ÑËüʵÀý»¯£¬²¢ÇÒÐèҪͨ¹ýʹÓñ»ÇëÇóµÄÀ¡Ë͵ÄURL×÷Ϊһ²ÎÊýÀ´¼¤»îÇëÇó·½·¨:

£¼?
if($password == "mypassword")
{
¡¡require_once('classes/RSS.class.php');
¡¡$rss = new RSS();
¡¡echo $rss-£¾get($request);
}
else
{
¡¡echo "You are an unauthorized user";
}
?£¾

¡¡¡¡GET/POSTÓëAJAXÏà½áºÏ

¡¡¡¡ÎªÁËPOSTÇëÇó£¬ÎÒÃÇÊ×ÏÈÐèÒª´´½¨¸ÃÇëÇó¶ÔÏó¡£Èç¹ûÄãûÓд´½¨ÇëÇó¶ÔÏóµÄ¾­Ñ飬ÄÇô¿ÉÒÔ¶ÁÒ»ÏÂÎÒµÄÎÄÕ¡¶How To Use AJAX¡·»ò¼òµ¥µØÑо¿Ò»Ï±¾ÎĵÄʾÀýÔ´´úÂë¡£Ò»µ©´´½¨¸ÃÇëÇó¶ÔÏ󣬾ͿÉÒÔµ÷ÓÃsendFeed·½·¨²¢´«µÝÓÉ±íµ¥Ëù´´½¨µÄURL£º

function sendFeed(url){
¡¡post.onreadystatechange = sendRequest;
¡¡post.open("POST"£¬ url£¬ true);
¡¡post.send(url);
}

¡¡¡¡Ò»µ©ÊÕµ½À´×ÔÓÚPHP¶ÔÏóµÄÏìÓ¦²¢±»ÕýÈ·¼ÓÔØ£¬Ôò¶ÔÓë¸ÃÏìÓ¦ÏàÓ¦µÄ±¾µØÎļþ·¢³öÁíÒ»¸öÇëÇó¡£ÔÚÕâÖÖÇé¿öÖУ¬post.responseTextÌṩ¸øÎÒÃǸÃÐÂÎļþµÄ·¾¶£º

function sendRequest(){
¡¡if(checkReadyState(post)){
¡¡¡¡request = createRequestObject();
¡¡¡¡request.onreadystatechange = onResponse;
¡¡¡¡request.open("GET"£¬ post.responseText£¬ true);
¡¡¡¡request.send(null);
¡¡}
}

¡¡¡¡·ÖÎöÏìÓ¦

¡¡¡¡ÓÉÓÚRSSÀ¡ËÍÖ®¼äµÄÇø±ð£¬·ÖÎöÏìÓ¦¾ßÓÐÒ»¶¨µÄÌôÕ½ÐÔ¡£Ò»Ð©º¬Óаüº¬±êÌâºÍÃèÊö½áµãµÄͼÏñ£¬¶øÆäËüÔòûÓС£Òò´Ë£¬µ±ÎÒÃÇ·ÖÎö»ØÀ¡Ê±£¬ÎÒÃÇÐèÒª×öÒ»µã¼ì²éÀ´Òë½âËüÊÇ·ñ°üÀ¨Ò»Í¼Ïñ¡£Èç¹ûËü°üÀ¨Ò»Í¼Ïñ£¬ÎÒÃǾͿÉÒÔ£¬Óë¸ÃÀ¡Ë͵ıêÌâºÍÁ´½ÓÒ»Æð£¬ÔÚimage div±êÇ©ÖÐÏÔʾ¸ÃͼÏñ£º

var _logo = "";
var _title = response.getElementsByTagName('title')[0].firstChild.data;
var _link = response.getElementsByTagName('link')[0].firstChild.data;;
_logo += "£¼a href='" + _link + "' target='_blank'£¾" + _title + "£¼/a£¾£¼br/£¾";
if(checkForTag(response.getElementsByTagName('image')[0]))
{
¡¡var _url = response.getElementsByTagName('url')[0].firstChild.data;
¡¡_logo += "£¼img src='" + _url + "' border='0'£¾£¼br/£¾"
}
document.getElementById('logo').innerHTML = _logo;

¡¡¡¡ÎÒÃDz»½ö±ØÐë¼ì²éÿ¸öͼÏñÒÔÏÔʾËü£¬µ±±éÀúÀ¡ËÍÖÐËùÓеÄÏîʱÎÒÃÇ»¹ÐèÒª¶ÔÖ®½øÐмì²é¡£ÒòΪÈç¹û´æÔÚÒ»¸öͼÏñ£¬ÄÇôËùÓÐÁíÍâµÄ±êÌâºÍÁ´½Ó½áµãË÷Òý¶¼½«ÎÞ·¨Õý³£¹¤×÷¡£Òò´Ë£¬µ±·¢ÏÖͼÏñ±êǩʱ£¬ÎÒÃÇÓ¦¸Ãͨ¹ýÔÚÿһ´Î±éÀúÖÐÔö¼ÓË÷ÒýÖµ£¨+1£©À´µ÷Õû±êÌâºÍÁ´½Ó½áµãµÄË÷Òý£º

if(checkForTag(response.getElementsByTagName('image')[0]) "" i£¾0){
¡¡var _title=response.getElementsByTagName('title')[i+1].firstChild.data;
¡¡var _link=response.getElementsByTagName('link')[i+1].firstChild.data;
}
else{
¡¡var _title =response.getElementsByTagName('title').firstChild.data;
¡¡var _link = response.getElementsByTagName('link').firstChild.data;
}

¡¡¡¡Äã¿ÉÒÔʹÓÃcheckForTag·½·¨À´¼ì²éÊÇ·ñ´æÔÚÌØ¶¨µÄ±êÇ©£º

function checkForTag(tag){
¡¡if(tag != undefined) {
¡¡¡¡return true;
¡¡}
¡¡else{
¡¡¡¡return false;
¡¡}
}

¡¡¡¡´æÔÚÐí¶àÖÖ½øÐÐÀ¡ËÍ·ÖÎöµÄ¿ÉÄÜÐÔ¡£ÀýÈ磬Äã¿ÉÒÔ°ÑÏµ½Àà±ðÉϲ¢Ê¹µÃ¸ÃÀà±ð¿ÉÕÛµü£¬ÕâÑùÓû§¾Í¿ÉÒÔ¶ÔÆäÏë¹Û¿´µÄÄÚÈݽøÐÐÑ¡Ôñ¡£×÷Ϊһ¸öʾÀý£¬ÎÒʹÓÃÈÕÆÚÀ´¶ÔÏî½øÐзÖÀà-Õâ¿ÉÒÔͨ¹ýÒë½âÊÇ·ñÕë¶ÔÒ»¸öÌØ¶¨ÏîµÄpubDate²»Í¬ÓÚǰһ¸öÏîµÄpubDate²¢ÇÒÏàÓ¦µØÏÔʾһеÄÈÕÆÚÀ´ÊµÏÖ£º

if(i£¾1){
¡¡var previousPubDate = response.getElementsByTagName('pubDate')[i-1].firstChild.data;
}
if(pubDate != previousPubDate || previousPubDate == undefined){
¡¡_copy += "£¼div id='detail'£¾" + pubDate + "£¼/div£¾£¼hr align='left' width='90%'/£¾";
}
_copy += "£¼a href=\"javascript:showDetails('" + i + "');\"£¾" + _title + "£¼/a£¾£¼br/£¾£¼br/£¾";
document.getElementById('copy').innerHTML += _copy;

¡¡¡¡×¢Ò⣬ÉÏÃæµÄ×îºóÒ»²¿·ÖÊÇshowDetails·½·¨£¬ËüÓÃÓÚµ±Ò»Óû§´ÓÒ»¸öÀ¡ËÍÖÐÑ¡ÔñÒ»ÌØ¶¨µÄÏîʱ½øÐÐϸ½ÚÏÔʾ¡£Õâ¸ö·½·¨ÓÐÒ»¸ö²ÎÊý£¨ÏîË÷ÒýÖµ£©£¬Õâ¸öË÷ÒýÓÃÓÚ·¢ÏÖÔÚ¸ÃÀ¡ËÍÖÐdetails½áµãµÄË÷Òý£º

function showDetails(index){
¡¡document.getElementById('details').innerHTML = response.getElementsByTagName('description')[index].firstChild.data;
}

¡¡¡¡½áÂÛ

¡¡¡¡Ê¹ÓÃAJAX·¢ËͲéѯ×Ö·û´®µ½Ò»¸ö·þÎñÆ÷¶Ë½Å±¾²¢¼ìË÷Ò»¸ö»ùÓڸô®µÄ¶¨ÖÆÏìÓ¦£¬Õâ¶ÔÓÚÈκÎweb¿ª·¢Õß¶¼ÓÐʵÏֵĿÉÄÜ¡£ÕâÑùÒÔÀ´£¬ÄãµÄÏÂÒ»¸öwebÓ¦ÓóÌÐòÒ²½«»á³äÂúÁËеĿÉÄÜÐÔ¡£

TOP

¶àÄêÒÔÀ´£¬´´½¨ÕæÕý¾ßÓÐÏìÓ¦Ð﵀ Web Ó¦ÓóÌÐòÕâһĿ±êÒ»Ö±±» Web¿ª·¢µÄÒ»¸ö¼òµ¥ÊÂʵËù×è°­£ºÒª¸Ä±äÒ³ÃæÄ³Ò»²¿·ÖµÄÐÅÏ¢£¬Óû§¾Í±ØÐëÖØÔØÕû¸öÒ³Ãæ¡£µ«ÊÇÒÔºó²»ÔÙ»áÕâÑùÁË¡£¸ÐлÒì²½ JavaScript ½Å±¾ºÍXML£¨Ajax£©£¬ÎÒÃÇÏÖÔÚ¿ÉÒÔ´Ó·þÎñÆ÷¶ËÇëÇóÐÂÄÚÈÝ£¬Ö»ÐÞ¸ÄÒ³ÃæµÄÒ»²¿·Ö¡£

ͨ¹ýPHPºÍSajaxʹÓÃAjaxÖ®JavaScript


¶àÄêÒÔÀ´£¬´´½¨ÕæÕý¾ßÓÐÏìÓ¦Ð﵀ Web Ó¦ÓóÌÐòÕâһĿ±êÒ»Ö±±» Web ¿ª·¢µÄÒ»¸ö¼òµ¥ÊÂʵËù×è°­£ºÒª¸Ä±äÒ³ÃæÄ³Ò»²¿·ÖµÄÐÅÏ¢£¬Óû§¾Í±ØÐëÖØÔØÕû¸öÒ³Ãæ¡£µ«ÊÇÒÔºó²»ÔÙ»áÕâÑùÁË¡£¸ÐлÒì²½ Javascript ½Å±¾ºÍ XML£¨Ajax£©£¬ÎÒÃÇÏÖÔÚ¿ÉÒÔ´Ó·þÎñÆ÷¶ËÇëÇóÐÂÄÚÈÝ£¬Ö»ÐÞ¸ÄÒ³ÃæµÄÒ»²¿·Ö¡£Õâ¸ö½Ì³Ì½âÊÍÁËÈçºÎ°Ñ Ajax ÓÃÓÚ PHP £¬²¢½éÉÜÁ˼òµ¥ Ajax ¹¤¾ß°ü£¨Sajax£©£¬ÕâÊÇÒ»¸öÓà PHP ±àдµÄ¹¤¾ß£¬¿ÉÒÔ°Ñ·þÎñÆ÷¶Ë PHP Óë JavaScript ¼¯³É¡£

¡¡¡¡¿ªÊ¼Ö®Ç°

¡¡¡¡Õâ·Ý½Ì³ÌÕë¶ÔµÄÊǶÔÓÚ¿ª·¢¸» Web Ó¦ÓóÌÐò¸ÐÐËȤµÄÈË£¬¸» Web Ó¦ÓóÌÐò°ÑÒì²½ JavaScript ºÍ XML£¨Ajax£©Óë PHP ½áºÏÆðÀ´£¬Óû§Ã¿´Îµã»÷ʱ£¬²»±ØË¢ÐÂÕû¸öÒ³Ãæ£¬¾Í¿ÉÒÔ¶¯Ì¬¸üÐÂÄÚÈÝ¡£Õâ·Ý½Ì³Ì¼ÙÉè¶ÁÕßÁ˽â»ù±¾µÄ PHP ¸ÅÄ°üÀ¨ if ºÍ switch Óï¾äÒÔ¼°º¯ÊýµÄʹÓá£

¡¡¡¡¹ØÓÚ±¾½Ì³Ì

¡¡¡¡ÔÚ±¾½Ì³ÌÖУ¬½«Ñ§Ï° Ajax ÒÔ¼°Î§ÈÆËüµÄÓ¦ÓõÄÎÊÌâ¡£½«Óà PHP ¹¹½¨Ò»¸ö Ajax Ó¦ÓóÌÐò£¬ÏÔʾÒÔǰдµÄÒ»¸ö½Ì³ÌÖеÄÃæ°å¡£µã»÷Ãæ°åÁ´½ÓÖ»»áÖØÐÂÔØÈëÄÚÈÝÇø£¬²¢ÓÃÑ¡¶¨Ãæ°åµÄÄÚÈÝÌæ»»Ëü£¬´Ó¶ø½ÚÔ¼ÁË´ø¿íºÍÒ³Ãæ×°ÈëµÄʱ¼ä¡£È»ºó½«°Ñ¼òµ¥ Ajax ¹¤¾ß°ü£¨Sajax£©¼¯³É½ø Ajax Ó¦ÓóÌÐò£¬Ëü¿ÉÒÔͬ²½ Ajax µÄʹÓ㬴Ӷø¼ò»¯¿ª·¢¡£

¡¡¡¡¸ÅÊö

¡¡¡¡ÔÚÉîÈë֮ǰ£¬ÏÈ¿´¿´ Ajax¡¢Ê¾Àý PHP Ó¦ÓóÌÐòºÍ Sajax¡£ Ajax

¡¡¡¡Ajax ÔÊÐí Web ¿ª·¢ÈËÔ±´´½¨½»»¥µÄ Web Ò³Ãæ£¬Í¬Ê±±ÜÃâ±ØÐëµÈºòÒ³ÃæÔØÈëÕâһƿ¾±¡£Í¨¹ý Ajax ´´½¨µÄÓ¦ÓóÌÐò£¬Ö»Ðèµã»÷°´Å¥£¬¾Í¿ÉÒÔÓÃȫеÄÄÚÈÝÌæ»» Web Ò³ÃæÄ³Ò»ÇøÓòµÄÄÚÈÝ¡£ËüµÄ¾«²ÊÖ®´¦ÔÚÓÚ²»±ØµÈºòÒ³Ãæ×°È룬ֻÓÐÕâÒ»¸öÇøÓòµÄÄÚÈÝÐèÒªÔØÈë¡£ÒÔ Google Maps ΪÀý£º¿ÉÒÔµã»÷ºÍËÄ´¦Òƶ¯µØÍ¼£¬È´²»±ØµÈºòÒ³ÃæÔØÈë¡£

¡¡¡¡Ajax µÄÎÊÌâ

¡¡¡¡ÔÚʹÓà Ajax ʱÓÐЩÊÂÐèҪעÒâ¡£ÏñÆäËû Web Ò³ÃæÒ»Ñù£¬Ajax Ò³ÃæÊÇ¿ÉÒÔ¼ÓÊéÇ©µÄ£¬ËùÒÔÔÚʹÓà GET Óë POST ½øÐÐÇëÇóʱ¾Í»áÔì³ÉÎÊÌâ¡£¹ú¼Ê»¯ºÍ±àÂë·½°¸ÊýÁ¿µÄÔö¼Ó£¬Ê¹µÃ°ÑÕâЩ±àÂë·½°¸±ê×¼»¯±äµÃÈÕÒæÖØÒª¡£ÔÚÕâ·Ý½Ì³ÌÖн«Á˽âÕâÐ©ÖØÒªµÄÎÊÌâ¡£

¡¡¡¡Ê¾Àý PHP Ó¦ÓóÌÐò

¡¡¡¡Ê×ÏÈÒªÓà Ajax ´´½¨Ò»¸öÓ¦ÓóÌÐò£¬È»ºóÓà Sajax ´´½¨£¬ÒÔÕ¹ÏÖʹÓÃÕâ¸ö¹¤¾ß°üµÄºÃ´¦¡£Ó¦ÓóÌÐòÊÇÒÔǰ±àдµÄ½Ì³ÌÖеÄÒ»²¿·Ö£¬´øÓÐÃæ°åÁ´½Ó¡£Ëü±»ÓÃ×÷ʾÀý£¬ÒÔչʾʹÓà Ajax µÄÓÅÊÆ¡£ÒòΪÔÚ¸÷¸öÃæ°åÉϵã»÷ʱ£¬ËüÃÇ»áÒì²½×°È룬¶ø²»±ØµÈºòÒ³ÃæÊ£ÏµIJ¿·ÖÔÙ´Î×°Èë¡£Õâ¸öʾÀýÓ¦ÓóÌÐò»¹»áչʾÈçºÎ´´½¨×Ô¼ºµÄ Ajax Ó¦ÓóÌÐò¡£

¡¡¡¡Sajax

¡¡¡¡Èç¹ûÏë´´½¨ Ajax Ó¦ÓóÌÐò£¬ÓÖ²»ÏëÊÜ Ajax ¸´ÔÓµÄϸ½ÚËùÀÛ¡£´ð°¸¾ÍÊÇ Sajax¡£Í¨¹ýʹÓà ModernMethod ÈËÔ±¿ª·¢µÄ¿â£¬Sajax Ϊ Web ¿ª·¢ÈËÔ±³éÏó³öÁË Ajax µÄ¸ß²ãϸ½Ú¡£Ôڵײ㣬Sajax µÄ¹¤×÷Óë Ajax Ïàͬ¡£µ«ÊÇ£¬Í¨¹ýʹÓà Sajax ¿âÌṩµÄ¸ß²ãº¯Êý£¬¿ÉÒÔºöÂÔ Ajax µÄ¼¼Êõϸ½Ú¡£

¡¡¡¡Ê²Ã´ÊÇ Ajax£¿

¡¡¡¡ÕâÒ»½ÚÊǸöÈëÃŽéÉÜ£¬ÓÃʾÀý½âÊÍ Ajax µÄ¸ÅÄ°üÀ¨ÔÚµã»÷Á´½Óʱ·¢ÉúÁËʲô£¬Ajax ÓÃÓÚ PHP Ó¦ÓóÌÐòʱÐèÒªµÄ HTML ºÍ JavaScript ´úÂë¡£ÏÂÒ»½Ú½«¸üÉîÈëһЩ£¬Êµ¼ÊµØÊ¹ÓÃÔÚÕâÒ»½ÚѧϰµÄ Ajax ¸ÅÄî´´½¨ PHP Ó¦ÓóÌÐò¡£

¡¡¡¡Ä»ºóÄÚÈÝ

¡¡¡¡Ajax ÊÇÒì²½ JavaScript ºÍ XML µÄ×éºÏ¡£Ö®ËùÒÔ˵Òì²½£¬ÊÇÒòΪ¿ÉÒÔµã»÷Ò³ÃæÉϵÄÁ´½Ó£¬È»ºóËüÖ»×°ÈëÓëµã»÷¶ÔÓ¦µÄÄÚÈÝ£¬Í¬Ê±±£³Ö±êÌâ»òÆäËûÈκÎÉ趨µÄÐÅÏ¢²»¶¯¡£

¡¡¡¡µã»÷Á´½Óʱ£¬ÔÚ±³ºó¹¤×÷µÄÊÇ JavaScript º¯Êý¡£JavaScript ´´½¨Óë Web ä¯ÀÀÆ÷ͨÐŵĶÔÏ󣬲¢¸æËßä¯ÀÀÆ÷×°ÈëÌØ¶¨Ò³Ã档Ȼºó¿ÉÒÔÏñƽ³£Ò»Ñùä¯ÀÀÍ¬Ò»Ò³ÃæÉÏµÄÆäËûÄÚÈÝ£¬µ±ä¯ÀÀÆ÷ÍêȫװÈëÐÂÒ³ÃæµÄʱºò£¬ä¯ÀÀÆ÷»áÔÚ HTML µÄ div ±ê¼ÇÖ¸¶¨µÄλÖÃÏÔʾÄÚÈÝ¡£

¡¡¡¡CSS Ñùʽ´úÂëÓÃÀ´ºÍ span ±ê¼ÇÒ»Æð´´½¨Á´½Ó¡£

¡¡¡¡CSS Ñùʽ´úÂë

¡¡¡¡Ê¾ÀýÓ¦ÓóÌÐòÐèÒª CSS ´úÂ룬ÕâÑù span ±ê¼Ç¿´ÆðÀ´¾ÍÏñʹÓ󣹿µÄê±ê¼Ç£¨£¼a href=... £¾£©´´½¨µÄÕæÕýÁ´½ÓÒ»Ñù£¬Ò²»áÏñÕæÕýµÄÁ´½ÓÒ»Ñù±»µã»÷¡£

¡¡¡¡Çåµ¥ 1. Ö¸¶¨ span ±ê¼ÇµÄÏÔʾÐÅÏ¢

...
£¼style type="text/css"£¾
span:visited{ text-decoration:none; color:#293d6b; }
span:hover{ text-decoration:underline; color:#293d6b; }
span {color:#293d6b; cursor: pointer}
£¼/style£¾

¡¡¡¡ÕâЩ span ±ê¼ÇÓÃÔÚʾÀýÓ¦ÓóÌÐòÖУ¬ÑÕÉ«·ûºÏËùÓÐ IBM developerWorks ½Ì³ÌÖÐÁ´½ÓʹÓõÄÑÕÉ«¡£Ñùʽ±ê¼ÇµÄµÚÒ»ÐÐÖ¸¶¨ÒѾ­·ÃÎʹýµÄÁ´½ÓµÄÑÕÉ«±£³Ö²»±ä¡£Êó±ê¾­¹ýʱ¼ÓÏ»®Ïߣ¬¹â±ê±ä³ÉÖ¸Õ룬¾ÍÏñÆÕͨµÄê±ê¼Ç£¨£¼a href... £¾£©Ò»Ñù¡£ÏÖÔÚÀ´¿´¿´ÈçºÎ´´½¨Ê¹ÓÃÕâ¸ö CSS Ñùʽ´úÂëµÄÁ´½Ó¡£

¡¡¡¡´´½¨Ê¹Óà span ±ê¼ÇµÄÁ´½Ó

¡¡¡¡ÔÚ¡°¹¹½¨ PHP Ó¦ÓóÌÐò¡±Ò»½ÚÖÐÒª´´½¨µÄÁ´½Ó£¬½«ÓÃÀ´Í¨¹ý JavaScript Óëä¯ÀÀÆ÷ͨÐÅ£¬¸æËßä¯ÀÀÆ÷ҪȥʲôµØ·½£¬ÒªÌáȡʲôÄÚÈÝ¡£ËüÃDz»ÊÇʹÓÃê±ê¼ÇµÄ´«Í³Á´½Ó£¬¶øÊÇʹÓà span ±ê¼Ç´´½¨µÄ¡£span ±ê¼ÇµÄ¹Û¸ÐÓÉÇåµ¥ 1 µÄ CSS ´úÂë¾ö¶¨¡£ÕâÀïÊÇʾÀý£º

£¼span £¾Managing content£¼/span£¾

¡¡¡¡onclick ´¦Àí³ÌÐòÖ¸¶¨Õâ¸ö span ±»µã»÷ʱҪÔËÐÐÄĸö½Å±¾¡£»¹ÓÐÆäËû¼¸¸öÓë onclick ÀàËÆµÄָʾ·û¿ÉÒÔʹÓ㬰üÀ¨ onmouseover ºÍ ondblclick¡£Çë×¢ÒâÔÚ onclick ×Ö¶ÎÖÐÏÔʾµÄÊÇ JavaScript º¯Êý loadHTML £¬¶ø²»ÊÇ´«Í³µÄ http:// Á´½Ó»òÓÉÇåµ¥ panels-ajax.php? ´´½¨µÄÏà¶ÔÁ´½Ó¡£½ÓÏÂÀ´Ñ§Ï° loadHTML º¯Êý¡£

¡¡¡¡XMLHttpRequest ¶ÔÏó

¡¡¡¡Èç¹ûÕýÔÚʹÓà Mozilla¡¢Opera »òÆäËûÕâÀàä¯ÀÀÆ÷ÖеÄÒ»¸ö£¬ÄÇô¿ÉÒÔʹÓÃÄÚÖÃµÄ XMLHttpRequest ¶ÔÏó¶¯Ì¬µØÈ¡µÃÄÚÈÝ¡£Microsoft µÄ Internet Explorer ä¯ÀÀÆ÷²ÉÓÃÁíÍâÒ»¸ö¶ÔÏó£¬ÉԺ󽫻áѧµ½¡£ËüÃÇʹÓõķ½Ê½Êµ¼ÊÉÏÏàͬ£¬¶øÇÒ¶ÔËüÃÇÌṩ֧³Ö£¬Ö»ÊÇÌí¼Ó¼¸ÐжîÍâ´úÂëµÄÎÊÌâ¡£

¡¡¡¡XMLHttpRequest ¶ÔÏóÓÃÀ´Í¨¹ý JavaScript ¼ìË÷Ò³ÃæÄÚÈÝ¡£ÉÔºóÔÚʾÀýÓ¦ÓóÌÐòÖлáʹÓÃÕâ¸ö´úÂ룬ͬ ActiveXObject µÄ loadHTML º¯ÊýÒ»ÆðʹÓá£Çë²ÎÔÄÇåµ¥ 2 Á˽âÓ÷¨¡£

¡¡¡¡Çåµ¥ 2. ³õʼ»¯ºÍʹÓà XMLHttpRequest ¶ÔÏó

...
£¼style£¾
£¼script type="text/javascript"£¾
var request;
var dest;

function loadHTML(URL, destination){
¡¡dest = destination;
¡¡if(window.XMLHttpRequest){
¡¡¡¡request = new XMLHttpRequest();
¡¡¡¡request.onreadystatechange = processStateChange;
¡¡¡¡request.open("GET", URL, true);
¡¡¡¡request.send(null);
¡¡}
}
£¼/script£¾
...

¡¡¡¡ÔÚÇåµ¥ 2 ÖÐ×÷Ϊ²ÎÊý´«µÝµÄ destination ±äÁ¿Ö¸³ö XMLHttpRequest ¶ÔÏóҪȥװÈëÄÚÈݵĵط½£¬ÓÉ £¼div id="content"£¾£¼/div£¾ ±ê¼ÇÖ¸¶¨¡£È»ºó´úÂë»á¼ì²é XMLHttpRequest ¶ÔÏóÊÇ·ñ´æÔÚ£¬Èç¹û´æÔÚ£¬¾Í´´½¨Ò»¸öеġ£È»ºó£¬Ê¼þ´¦Àí³ÌÐò±»ÉèÖÃΪ processStateChange º¯Êý£¬Õâ¸öº¯ÊýÊǶÔÏóÔÚÿ´Î״̬±ä»¯Ê±¶¼»áµ÷Óõĺ¯Êý¡£ÇëÇóʣϵIJ¿·Ö¾ÍÊÇÓà open ·½·¨½øÐÐÉèÖã¬ÉèÖô«ÊäÀàÐÍΪ GET£¬²¢ÉèÖöÔÏóҪװÈëµÄ URL¡£×îºóµ÷ÓöÔÏóµÄ send ·½·¨£¬ÈöÔÏóʵ¼Ê·¢»Ó×÷Óá£
ActiveXObject

¡¡¡¡ÔÚ Internet Explorer ÖУ¬Óà ActiveXObject ´úÌæ XMLHttpRequest¡£ËüµÄº¯ÊýÓë XMLHttpRequest µÄº¯ÊýÏàͬ£¬ÉõÖÁº¯ÊýÃû¶¼ÊÇÒ»ÑùµÄ£¬ÈçÇåµ¥ 3 Ëùʾ¡£

¡¡¡¡Çåµ¥ 3. ³õʼ»¯ºÍʹÓà ActiveXObject

...
function loadHTML(URL, destination){
¡¡dest = destination;
¡¡if(window.XMLHttpRequest){
¡¡¡¡...
¡¡} else if (window.ActiveXObject) {
¡¡¡¡request = new ActiveXObject("Microsoft.XMLHTTP");
¡¡¡¡if (request) {
¡¡¡¡¡¡request.onreadystatechange = processStateChange;
¡¡¡¡¡¡request.open("GET", URL, true);
¡¡¡¡¡¡request.send();
¡¡¡¡}
¡¡}
}
£¼/script£¾

¡¡¡¡ÔÚÕâÖÖÇé¿öÏ£¨Ê¹Óà Internet Explorer£©£¬ÊµÀý»¯Ò»¸ö Microsoft.XMLHTTP ÀàÐÍ µÄРActiveXObject ¶ÔÏó¡£È»ºó£¬ÉèÖÃʼþ´¦Àí³ÌÐò£¬µ÷ÓöÔÏóµÄ open º¯Êý¡£È»ºóµ÷ÓöÔÏóµÄ send º¯Êý£¬ÕâÑù ActiveXObject ¾Í¹¤×÷ÁË¡£

¡¡¡¡processStateChange º¯Êý

¡¡¡¡ÕâÀïÃèÊöµÄº¯Êý½Ð×÷ʼþ´¦Àí³ÌÐò»ò»Øµ÷º¯Êý¡£»Øµ÷º¯ÊýµÄÄ¿µÄÊǵ±¶ÔÏó״̬·¢Éú±ä»¯Ê±£¬Äܹ»´¦Àí״̬±ä»¯¡£ÔÚ¾ßÌåµÄÓ¦ÓÃÖУ¬Õâ¸öº¯ÊýµÄÄ¿µÄÓ¦µ±ÊÇ´¦Àí״̬±ä»¯¡¢¼ìÑé¶ÔÏóÊÇ·ñµ½´ïÔ¤ÆÚ״̬¡¢¶ÁÈ¡¶¯Ì¬×°ÈëµÄÄÚÈÝ¡£

¡¡¡¡processStateChange º¯ÊýÓÉ XMLHttpRequest »ò ActiveXObject ¶ÔÏóÔÚ¶ÔÏó״̬·¢Éú±ä»¯Ê±µ÷Óᣵ±¶ÔÏó½øÈë״̬ 4 ʱ£¬±íÃ÷Ò³ÃæµÄÄÚÈÝÒѾ­½ÓÊÕÍê³É£¨Çë²ÎÔÄÇåµ¥ 4£©¡£

¡¡¡¡Çåµ¥ 4. ´¦Àí״̬±ä»¯

...
var dest;

function processStateChange(){
¡¡if (request.readyState == 4){
¡¡¡¡contentDiv = document.getElementById(dest);
¡¡¡¡if (request.status == 200){
¡¡¡¡¡¡response = request.responseText;
¡¡¡¡¡¡contentDiv.innerHTML = response;http://httpd.apache.org/download.cgi
¡¡¡¡}
¡¡}
}

function loadHTML(URL, destination){
...

¡¡¡¡µ± XML HTTP ¶ÔÏóµ½´ï״̬ 4 ʱ£¬ÄÚÈݾÍÒѾ­¾ÍÐ÷£¬¿ÉÒÔÌáÈ¡²¢ÔÚä¯ÀÀÆ÷µÄÔ¤ÆÚλÖÃÉÏÏÔʾ¡£Î»ÖÃÊÇ contentDiv£¬ÄÚÈÝ´ÓÎĵµÖмìË÷¡£Èç¹ûÇëÇóÊÇÕýÈ·µÄ£¬¶øÇÒÒ²°´ÕýÈ·µÄ˳Ðò¼ìË÷£¬ÄÇôÏìÓ¦µÄ״̬Ӧµ±ÊÇ 200¡£HTML ÏìÓ¦±£´æÔÚ request.responseText ÖУ¬°ÑËüÉèÖõ½ contentDiv.innerHTML£¬¾Í¿ÉÒÔÔÚä¯ÀÀÆ÷ÖÐÏÔʾËü¡£

¡¡¡¡Èç¹ûÔÚ´«Êä¹ý³ÌÖÐûÓз¢Éú´íÎó£¬Ò»ÇÐÕý³££¬ÄÇôÐÂÄÚÈݾͻáÔÚä¯ÀÀÆ÷ÖгöÏÖ£»·ñÔò£¬request.status ¾Í²»µÈÓÚ 200¡£Çë²ÎÔÄÇåµ¥ 5 Á˽â´íÎó´¦Àí´úÂë¡£

¡¡¡¡Çåµ¥ 5. ´íÎó´¦Àí

...
if (request.status == 200){
¡¡response = request.responseText;
¡¡contentDiv.innerHTML = response;
} else {
¡¡contentDiv.innerHTML = "Error: Status "+request.status;
}
...

¡¡¡¡Çåµ¥ 5 »á°ÑÓйش«Êä´íÎóµÄÐÅÏ¢·¢Ë͸øä¯ÀÀÆ÷¡£ÔÚʾÀýÓ¦ÓóÌÐòÖн«°ÑÕâ¸öº¯ÊýÓÃ×÷»Øµ÷º¯Êý¡£½ÓÏÂÀ´£¬Ñ§Ï° GET ºÍ POST µÄÎÊÌâºÍËüÃǵIJîÒì¡£

¡¡¡¡GET Óë POST

¡¡¡¡GET ºÍ POST ÊǽøÐÐ HTTP ÇëÇóºÍÔÚÇëÇóÖд«µÝ±äÁ¿µÄÁ½ÖÖ·½·¨¡£¿ª·¢ÈËÔ±²»Ó¦µ±ËæÒâÑ¡ÔñʹÓÃÄÄÖÖ·½·¨£¬ÒòΪÁ½ÖÖ·½·¨¶¼ÓÐʹÓÃÒâÒå¡£GET ÇëÇó°Ñ±äÁ¿Ç¶ÔÚ URL ÖУ¬ÕâÒâζ×ÅËüÃÇÊÇ¿ÉÒÔ¼ÓÊéÇ©µÄ¡£Èç¹û±äÁ¿¿ÉÄÜ»áÐÞ¸ÄÊý¾Ý¿â¡¢¹ºÂòÉÌÆ·»òÕß×öÆäËûÀàËÆ²Ù×÷£¬ÕâÖÖ·½·¨»áÓи±×÷Ó᣼ÙÉèżȻ¼ä¼ÓÁËÊéÇ©µÄÒ³ÃæÓÐÒ»¸ö¹ºÂòÉÌÆ·µÄ URL £¬ÀïÃæ°üº¬µØÖ·¡¢ÐÅÓÿ¨ºÅÒÔ¼° $100 µÄ²úÆ·£¬È«¶¼Ç¶ÔÚ URL ÖУ¬ÄÇÃ´ÖØÐ·ÃÎÊÕâ¸ö URL ¾ÍÒâζ׏ºÂòÕâ¼þÉÌÆ·¡£

¡¡¡¡ËùÒÔ£¬Ö»ÓÐÔÚ±äÁ¿Ã»Óи±×÷Ó㬿ÉÒÔ¾­³£ÖØÐÂÔØÈëÒ²²»»á·¢ÉúʲôµÄʱºò£¬²Å¿ÉÒÔ½øÐÐ GET ÇëÇó¡£ÊÊºÏ GET ÇëÇóµÄÒ»¸ö±äÁ¿¿ÉÄÜÊÇ·ÖÀà ID¡£¿ÉÒÔ·´¸´ÖØÐÂÔØÈ룬·ÖÀà»á·´¸´ÏÔʾ£¬µ«ÊÇûÓÐÈκÎÀÛ»ýµÄЧ¹û¡£

¡¡¡¡ÔÚÁíÒ»·½Ã棬µ±±äÁ¿¶ÔÔ´£¨ÀýÈçÊý¾Ý¿â£©ÓÐ×÷ÓÃʱ»òÕßΪÁ˸öÈËÐÅÏ¢°²È«£¬Ó¦µ±²ÉÓà POST ÇëÇó¡£±ÈÈçÔÚ¹ºÂòÒ»¼þ $100 µÄ²úƷʱ£¬Ó¦µ±Óà POST ÇëÇó¡£Èç¹û¸ø¸¶¿îÒ³Ãæ¼ÓÁËÊéÇ©£¬ÓÉÓÚ URL ÖÐûÓбäÁ¿£¬ËùÒÔʲôҲ²»»á·¢Éú£¬Ò²²»»áÒâÍâµØ¹ºÂòÁ˲»Ï빺ÂòµÄ¶«Î÷£¬»òÕßÔÚÒѾ­ÓµÓеÄÇé¿öÏÂÓÖÂòÁËÒ»´Î¡£

¡¡¡¡GET ºÍ POST µÄÒâÒåÔÚ Ajax ÖÐÓÐͬÑùµÄ×÷Óá£ÔÚ¹¹½¨±¾ÎĵÄÓ¦ÓóÌÐòºÍδÀ´µÄÓ¦ÓóÌÐòʱ£¬Àí½â GET ºÍ POST ÇëÇóµÄ²îÒìÊǺÜÖØÒªµÄ¡£Õâ»áÓÐÖúÓÚ±ÜÃâ Web Ó¦ÓóÌÐò¿ª·¢µÄ³£¼ûȱÏÝ¡£

¡¡¡¡±àÂë·½·¨

¡¡¡¡¶ÔÓÚͨ¹ý HTTP ´«ÊäµÄÊý¾Ý½øÐбàÂ룬ÓжàÖÖ·½·¨£¬¶ø XML Ö»½ÓÊÜÆäÖÐÉÙÊý¼¸ÖÖ¡£»¥²Ù×÷ÐÔ×î´óµÄÒ»ÖÖ±àÂë·½·¨ÊÇ UTF-8£¬ÒòΪËüÏòºó¼æÈÝÃÀ¹úÐÅÏ¢½»»»±ê×¼Â루ASCII£©¡£ÓÐÐí¶àÔÚÆäËû¹ú¼ÒʹÓõĹú¼Ê×Ö·ûµÄ±àÂ뷽ʽ²»Ïòºó¼æÈÝ ASCII £¬Èç¹û²»½øÐÐÇ¡µ±µÄ±àÂ룬¾Í²»ÊʺϷÅÔÚ XML ÎļþÖС£

¡¡¡¡ÀýÈ磬°Ñ×Ö·û´® ¡±Internationalization¡± ·ÅÔÚä¯ÀÀÆ÷ÖУ¬Óà UTF-8 ±àÂëµÄ»°£¬»á°ÑËü±ä³É I%F1t%EBrn%E2ti%F4n%E0liz%E6ti%F8n¡£¾­µä ASCII ×Ö·ûµÄ UTF-8 ±àÂëÓëÏàͬ×Ö·ûµÄ 7 λ ASCII Âë¶ÔÓ¦£¬Õâʹ UTF-8 ÊÇÒ»¸öÀíÏëµÄ±àÂë·½·¨Ñ¡Ôñ¡£

¡¡¡¡Á˽âÕâÒ»µãÊǺÜÖØÒªµÄ£¬ÒòΪÔÚͨ¹ý HTTP ´«ÊäºÍ½ÓÊÕÎĵµµÄ¹ý³ÌÖж¼Òª´¦Àí±àÂëÎÊÌ⣬ÔÚʹÓà Ajax ʱҲÊÇÒ»Ñù¡£Ê¹Óà Ajax ½øÐд«Êäʱ£¬Ò²Ó¦µ±Ê¹Óà UTF-8 ±àÂ룬ÒòΪ±ê×¼»¯¿ÉÒÔÌá¸ß»¥²Ù×÷ÐÔ¡£

TOP

¼òµ¥Ê¾Àý£ºAJAX½áºÏPHP´úÂëʵÏֵǼ
¸´ÖÆÄÚÈݵ½¼ôÌù°å
´úÂë:
javascript:tagshow(event, 'HTML');" href="javascript:;" target=_self>HTML²¿·Ö£º




function postRequest(strURL){
var xmlHttp;
if(window.XMLHttpRequest){ // For Mozilla, Safari, ...
var xmlHttp = new XMLHttpRequest();
}
else if(window.ActiveXObject){ // For Internet Explorer
var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlHttp.open('POST', strURL, true);
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlHttp.onreadystatechange = function(){
if (xmlHttp.readyState == 4){
updatepage(xmlHttp.responseText);
}
}
xmlHttp.send(strURL);
}

function updatepage(str){
if(str=="yes"){
alert("Welcome User");
}else{
alert("Invalid Login! Please try again!");
}
}

function call_login(){
var username = window.document.f1.username.value;
var password = window.document.f1.password.value;
var url = "login.php?username=" + username + "&password=" +password ;
postRequest(url);
}









Login


User
Name:



Password:












PHP½Å±¾²¿·Ölogin.php£º

$username=$_GET["username"];
$password=$_GET["password"];
if($username=="admin" && $password=="admin"){
echo "yes";
}else{
echo "No";
}
?>

TOP

»ùÓÚPHPµÄAJAX¼¼ÊõʵÏÖÎļþÒì²½ÉÏ´«

Òì²½µÄÎļþÉÏ´«ÊÇÔÚÏÖ´úµÄAJAXʵÏÖµÄWebÓ¦ÓÃÀïÃæ¾­³£ÒªÓöµ½£¬±ØÐë½â¾öµÄÎÊÌâ¡£µ«ÊDZê×¼µÄAJAXÀࣨXmlHttpRequest£©ÎÞ·¨ÊµÏÖ´«ÊäÎļþµÄ¹¦ÄÜ¡£Òò´Ë£¬ÕâÀïÌÖÂÛµÄÄÚÈݾÍÊÇÈçºÎÔÚAJAXµÄ¼¼ÊõµÄ»ù´¡Ö®ÉϹ¹½¨Òì²½µÄÎļþÉÏ´«¹¦ÄÜ¡£ÔÚÕâ¸ö¹¦Äܵ±ÖÐÐèҪʹÓõ½ÄÚÖõĿò¼°£¨IFRAME£©À´´«ÊäÎļþ¡£Õâ¸ö¹¦ÄÜʵÏÖµÄЧ¹ûÊÇÒ³ÃæÔÚÉÏ´«ÎļþµÄʱºò£¬Óû§»¹¿ÉÒÔʹÓøÃÒ³Ãæ²¢ÇÒÌîдÎļþÃèÊö¡£

¡¡¡¡Õâ¸öÀý×ÓÊÇÎÒÃÇÒýÓÃAJAXµÄ¾­µä°¸Àý½øÐзÖÎöµÄ¡£

¡¡¡¡ÏµÍ³»·¾³

¡¡¡¡¡¤ ½Ïа汾µÄä¯ÀÀÆ÷¡£ÀýÈçOpera£¬Firefox»òÕß Internet Explorer¡£

¡¡¡¡¡¤ PHP 4.3.0 »ò¸ü¸ß°æ±¾

¡¡¡¡¡¤ PHP 5 °æ±¾

¡¡¡¡¡¤ PHP ÖÐµÄ 'short_open_tag' Ñ¡ÏÆô(·ñÔò»á·¢Éú½âÎö´íÎó)¡£

¡¡¡¡¹¦ÄÜ·ÖÎö

¡¡¡¡Í¨¹ýÄÚÖõÄIFRAME£¨¿ò¼Ü£©½øÐÐÎļþÉÏ´«¡£¾ß±¸°üÀ¨Èý¸ö²¿·Ö×é³É¡£

¡¡¡¡¡¤ ÔÚÒ³ÃæÖмäÓÐÒ»¸ö¼òµ¥µÄ£¼form...±íµ¥£¬±íµ¥Ö»°üº¬ÁË£¼input type="file" ... £¾¿Ø¼þ¡£Õâ¸ö±íµ¥µÄÄ¿±êÁ´½Ó¾ÍÊÇÒ»¸öÒþ²ØµÃIFRAME(ͨ¹ý CSSµÄ·ç¸ñ" display: none;"ʵÏÖ)²¢ÇÒ±íµ¥ÀïÃæÎ¨Ò»Ò»¸ö¿Ø¼þµÄOnChangeʼþÓÃÀ´´¥·¢JavaScriptº¯Êý¡£Õâ¸öº¯ÊýµÄ×÷ÓÃÊǼì²éÓû§Ìá½»µÄÀ©Õ¹Ãû£¬È»ºóÌá½»±íµ¥¡£

¡¡¡¡¡¤ÔÚ·þÎñÆ÷¶ËÓÃPHP±àдÁËÒ»¸ö´¦Àí¹ý³Ì£¨ÓÃFILEFRAME×ø×¢ÊÍÁË£©¡£Õâ¸ö´¦Àí¹ý³ÌÓÃÀ´°Ñ´Ó¿Í»§¶ËÉÏ´«µÄÎļþ½øÐмì²éºó±£´æÔÚ·þÎñÆ÷£¬²¢ÇÒͨ¹ýJavascript´úÂëµÄÐÎʽ·µ»Ø¸øÓû§¡£·µ»Ø¸øÓû§µÄJavascript½Å±¾Í¨¹ý"parent.window.document"¸ü¸ÄÁËÓû§ÏÖÔÚÕýÔڲ鿴µÄÒ³Ãæ£¬ÉèÖÃÁËÎļþµÄÃû³Æ²¢ÆôÓÃÁËÈÃÓû§Ìá½»±íµ¥µÄ°´Å¥¡£ÆôÓð´Å¥µÄ²Ù×÷ÊÇͨ¹ýgetElementByIdº¯ÊýʵÏֵġ£

¡¡¡¡¡¤ ÔÚÖ÷Ò³Ãæ»¹ÓÐÒ»¸ö±íµ¥£¬Ëü°üº¬ÁËÓû§Ìá½»µÄÃèÊöºÍÒþ²ØµÄÎļþÃû¡£Óû§¿ÉÒÔÔÚÎļþÉÏ´«µÄͬʱÌîдÎļþµÄÃèÊö¡£µ±ÎļþÉÏ´«½áÊøÒÔºó£¬Óû§µã»÷°´Å¥£¬¾Í¿ÉÒÔ¿´ÉÏ´«ÒԺ󷵻ظøÓû§µÄÎļþÐÅÏ¢ÁË¡££¨Í¨¹ý·µ»ØÀ´µÄÎļþÃûºÍÓû§ÊäÈëµÄÃèÊö¹¹³ÉÎļþÐÅÏ¢£©¡£

¡¡¡¡¿ÉÄÜÄã»á˵Õâô²Ù×÷²»·ûºÏ³£Àí£ºÎļþÔÚÓû§È·ÈÏ֮ǰ¾ÍÒѾ­±»Ìá½»ÁË¡£Èç¹ûÓû§Ã»ÓÐÌá½»µÄ»°£¬Çé¿ö»áÈçºÎÄØ¡£Äã¿ÉÒÔ×Ô¼ºÔÚÀ©Õ¹´¦Àí±»Óû§·ÅÆúµÄÎļþ¡£

¡¡¡¡Õâ¸öÀý×Ó°ÑÎļþ´æ´¢ÔÚÒ»¸öÎļþϵͳµÄĿ¼Ï¡£ÄãÐèÒªÔڽű¾¿ªÊ¼ÔËÐеÄʱºòÅäÖÃÏÂÕâ¸öĿ¼£¬¾ßÌåµÄ°üº¬Õâ¸öĿ¼ÐÅÏ¢µÄ±äÁ¿ÊÇ$upload_dir ºÍ$web_upload_dir¡£ÕâÀïÓÐÒ»¸ö¶ÔĿ¼ÊÇ·ñ¿ÉдµÄȨÏÞ¼ì²é¡£

¡¡¡¡ÕâÀïÎÒÃÇÓõ½ÁËÒÔϼ¸¸öPHPº¯Êý£º

¡¡¡¡¡¤ move_uploaded_file - ×ªÒÆÒ»¾­ÉÏ´«µ½·þÎñÆ÷µÄÎļþ

¡¡¡¡¡¤ fopen - ´ò¿ªÎļþ

¡¡¡¡¡¤ fwrite - °ÑÄÚÈÝдÈëÎļþ

¡¡¡¡¡¤ fclose - ¹Ø±ÕÎļþ

¡¡¡¡¡¤ str_replace - Ìæ»»×Ö·û´®

¡¡¡¡¡¤ filesize - ·µ»ØÎļþ´óС

¡¡¡¡¡¤ filemtime - ·µ»Ø´¦Àíʱ¼ä

¡¡¡¡Äã¿ÉÒÔͨ¹ýÊÖ²á²éµ½ÕâЩº¯ÊýÈç¹ûʹÓá£Çë×¢ÒâÒª°ÑHTM(£¼, £¾, &)±ê¼ÇÌæ»»Îª(<, > ºÍ &).
   Ô´´úÂë


£¼?php
$upload_dir = "/var/www/anyexample/aeu"; // Îļþ´æ´¢µÄ·¾¶
$web_upload_dir = "/aeu"; // ÎļþÔÚWebĿ¼ÏµÄ·¾¶
$tf = $upload_dir.'/'.md5(rand()).".test";
$f = @fopen($tf, "w");
if ($f == false)
die("Fatal error! {$upload_dir} is not writable. Set 'chmod 777 {$upload_dir}'
or something like this");
fclose($f);
unlink($tf);

//´¦ÀíÉÏ´«µÄÎļþ
if (isset($_POST['fileframe']))
{
¡¡$result = 'ERROR';
¡¡$result_msg = 'No FILE field found';

¡¡if (isset($_FILES['file'])) // ´Óä¯ÀÀÆ÷½ÓÊÜÎļþ
¡¡{
¡¡¡¡if ($_FILES['file']['error'] == UPLOAD_ERR_OK) // ûÓдíÎó
¡¡¡¡{
¡¡¡¡¡¡$filename = $_FILES['file']['name']; // ÎļþÃû
¡¡¡¡¡¡move_uploaded_file($_FILES['file']['tmp_name'], $upload_dir.'/'.$filename);
¡¡¡¡¡¡// ´¦ÀíµÄÖ÷¹ý³Ì-×ªÒÆÎļþµ½ $upload_dir
¡¡¡¡¡¡$result = 'OK';
¡¡¡¡}
¡¡¡¡elseif ($_FILES['file']['error'] == UPLOAD_ERR_INI_SIZE)
¡¡¡¡¡¡$result_msg = 'The uploaded file exceeds the upload_max_filesize directive in php.ini';
¡¡¡¡else
¡¡¡¡¡¡$result_msg = 'Unknown error';
¡¡}

¡¡echo '£¼html£¾£¼head£¾£¼title£¾-£¼/title£¾£¼/head£¾£¼body£¾';
¡¡echo '£¼script language="JavaScript" type="text/javascript"£¾'."\n";
¡¡echo 'var parDoc = window.parent.document;';
¡¡'
¡¡if ($result == 'OK')
¡¡{
¡¡¡¡echo 'parDoc.getElementById("upload_status").value = "file successfully uploaded";';
¡¡¡¡echo 'parDoc.getElementById("filename").value = "'.$filename.'";';
¡¡¡¡echo 'parDoc.getElementById("filenamei").value = "'.$filename.'";';
¡¡¡¡echo 'parDoc.getElementById("upload_button").disabled = false;';
¡¡}
¡¡else
¡¡{
¡¡¡¡echo 'parDoc.getElementById("upload_status").value = "ERROR: '.$result_msg.'";';
¡¡}

¡¡echo "\n".'£¼/script£¾£¼/body£¾£¼/html£¾';
¡¡exit();
}

function safehtml($s)
{
¡¡$s=str_replace("&", "&", $s);
¡¡$s=str_replace("£¼", "<", $s);
¡¡$s=str_replace("£¾", ">", $s);
¡¡$s=str_replace("'", "'", $s);
¡¡$s=str_replace("\"", """, $s);
¡¡return $s;
}

if (isset($_POST['description']))
{
¡¡$filename = $_POST['filename'];
¡¡$size = filesize($upload_dir.'/'.$filename);
¡¡$date = date('r', filemtime($upload_dir.'/'.$filename));
¡¡$description = safehtml($_POST['description']);

¡¡$html =£¼£¼£¼END
¡¡£¼html£¾£¼head£¾£¼title£¾{$filename} [uploaded by IFRAME Async file uploader]£¼/title£¾£¼/head£¾
¡¡£¼body£¾
¡¡¡¡£¼h1£¾{$filename}£¼/h1£¾
¡¡¡¡£¼p£¾This is a file information page for your uploaded file. Bookmark it, or send to anyone...£¼/p£¾
¡¡¡¡£¼p£¾Date: {$date}£¼/p£¾
¡¡¡¡£¼p£¾Size: {$size} bytes£¼/p£¾
¡¡¡¡£¼p£¾Description:
¡¡¡¡£¼pre£¾{$description}£¼/pre£¾
¡¡¡¡£¼/p£¾
¡¡¡¡£¼p£¾£¼a href="{$web_upload_dir}/{$filename}" style="font-size: large;"£¾download file£¼/a£¾£¼br£¾
¡¡¡¡£¼a href="{$PHP_SELF}" style="font-size: small;"£¾back to file uploading£¼/a£¾£¼br£¾
¡¡¡¡£¼a href="{$web_upload_dir}/upload-log.html" style="font-size: small;"£¾upload-log£¼/a£¾£¼/p£¾
¡¡¡¡£¼br£¾£¼br£¾Example by £¼a href="http://www.anyexample.com/"£¾AnyExample£¼/a£¾
¡¡£¼/body£¾£¼/html£¾
¡¡END;
¡¡
¡¡$f = fopen($upload_dir.'/'.$filename.'-desc.html', "w");
¡¡fwrite($f, $html);
¡¡fclose($f);
¡¡$msg = "File {$filename} uploaded,
¡¡£¼a href='{$web_upload_dir}/{$filename}-desc.html'£¾see file information page£¼/a£¾";

¡¡$f = fopen($upload_dir."/upload-log.html", "a");
¡¡fwrite($f, "£¼p£¾$msg£¼/p£¾\n");
¡¡fclose($f);

¡¡setcookie('msg', $msg);
¡¡header("Location: http://".$_SERVER['HTTP_HOST'].$PHP_SELF);
¡¡exit();
}

if (isset($_COOKIE['msg']) && $_COOKIE['msg'] != '')
{
¡¡if (get_magic_quotes_gpc())
¡¡¡¡$msg = stripslashes($_COOKIE['msg']);
¡¡else
¡¡¡¡$msg = $_COOKIE['msg'];
¡¡¡¡setcookie('msg', '');
}
?£¾
£¼!-- Beginning of main page --£¾
£¼html£¾£¼head£¾
£¼title£¾IFRAME Async file uploader example£¼/title£¾
£¼/head£¾
£¼body£¾
£¼?php
¡¡if (isset($msg))
¡¡¡¡echo '£¼p style="font-weight: bold;"£¾'.$msg.'£¼/p£¾';
?£¾
£¼h1£¾Upload file:£¼/h1£¾
£¼p£¾File will begin to upload just after selection. £¼/p£¾
£¼p£¾You may write file description, while you file is being uploaded.£¼/p£¾

£¼form action="£¼?=$PHP_SELF?£¾" target="upload_iframe" method="post" enctype="multipart/form-data"£¾
¡¡£¼input type="hidden" name="fileframe" value="true"£¾
¡¡£¼!-- Target of the form is set to hidden iframe --£¾
¡¡£¼!-- From will send its post data to fileframe section of this PHP script (see above) --£¾

¡¡£¼label for="file"£¾text file uploader:£¼/label£¾£¼br£¾
¡¡£¼!-- JavaScript is called by OnChange attribute --£¾
¡¡£¼input type="file" name="file" id="file" £¾
£¼/form£¾
£¼script type="text/javascript"£¾
/* This function is called when user selects file in file dialog */
function jsUpload(upload_field)
{
¡¡// this is just an example of checking file extensions
¡¡// if you do not need extension checking, remove
¡¡// everything down to line
¡¡// upload_field.form.submit();
¡¡
¡¡var re_text = /\.txt|\.xml|\.zip/i;
¡¡var filename = upload_field.value;

¡¡/* Checking file type */
¡¡if (filename.search(re_text) == -1)
¡¡{
¡¡¡¡alert("File does not have text(txt, xml, zip) extension");
¡¡¡¡upload_field.form.reset();
¡¡¡¡return false;
¡¡}

¡¡upload_field.form.submit();
¡¡document.getElementById('upload_status').value = "uploading file...";
¡¡upload_field.disabled = true;
¡¡return true;
}
£¼/script£¾
£¼iframe name="upload_iframe" style="width: 400px; height: 100px; display: none;"£¾
£¼/iframe£¾
£¼!-- For debugging purposes, it's often useful to remove
"display: none" from style="" attribute --£¾

£¼br£¾
Upload status:£¼br£¾
£¼input type="text" name="upload_status" id="upload_status"
value="not uploaded" size="64" disabled£¾
£¼br£¾£¼br£¾

File name:£¼br£¾
£¼input type="text" name="filenamei" id="filenamei" value="none" disabled£¾

£¼form action="£¼?=$PHP_SELF?£¾" method="POST"£¾
¡¡£¼!-- one field is "disabled" for displaying-only. Other, hidden one is for sending data --£¾
¡¡£¼input type="hidden" name="filename" id="filename"£¾
¡¡£¼br£¾£¼br£¾

¡¡£¼label for="photo"£¾File description:£¼/label£¾£¼br£¾
¡¡£¼textarea rows="5" cols="50" name="description"£¾£¼/textarea£¾

¡¡£¼br£¾£¼br£¾
¡¡£¼input type="submit" id="upload_button" value="save file" disabled£¾
£¼/form£¾
£¼br£¾£¼br£¾
£¼a href="£¼?=$web_upload_dir?£¾/upload-log.html"£¾upload-log£¼/a£¾
£¼br£¾£¼br£¾£¼br£¾

Example by £¼a href="http://www.anyexample.com/"£¾AnyExample£¼/a£¾
£¼/body£¾
£¼/html£¾

¡¡¡¡ÒÔÉϵĽ²½â¾ÍÊÇÌṩһÖÖ˼·¹©´ó¼Ò²Î¿¼¡£´ó¼ÒÒ²¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄÐèÇó½øÐÐÏàÓ¦µÄÓÅ»¯¡£

TOP

php+ajaxÎļþÉÏ´«½ø¶ÈÌõ


  demo.php - ÉÏ´«¹ý³Ì´¦Àí
   
  PLAIN TEXTPHP:
¸´ÖÆÄÚÈݵ½¼ôÌù°å
´úÂë:
  <?php
   
  include 'UploadProgressMeter.class.php';
   
  fileWidget = new UploadProgressMeter();
   
  if (fileWidget->uploadComplete()) {
   // ÉÏ´«Íê±ÏµÄʱºò,´Óiframe·¢ËÍÒ»¸öjsµ½Ö÷´°¿Ú±íʾһÇÐok
   echo fileWidget->finalStatus();
   
   // ´¦ÀíÉÏ´«ºóµÄÎļþ...
   
   exit;
  }
  ?>
   
demoserver.php - AjaxµÄ·þÎñ¶Ëjs,ʹÓÃPear:HTML_AJAX,Ö±½Óµ÷ÓÃUploadProgressMeterStatusÀà
   
  PLAIN TEXTHTML:
   
¸´Ö