锘??xml version="1.0" encoding="utf-8" standalone="yes"?>中文精品一区二区三区,精品免费国产一区二区三区四区,亚洲精品国精品久久99热一http://www.aygfsteel.com/love-java/category/6146.html浜嬫儏鐨勭粨鏋滃敖綆¢噸瑕侊紝浣嗘槸鍋氫簨鎯呯殑榪囩▼鏇村姞閲嶈錛屽洜涓虹粨鏋滃ソ浜嗘垜浠細鏇村姞蹇箰錛屼絾榪囩▼浣挎垜浠殑鐢熷懡鍏呭疄錛?/description>zh-cnWed, 28 Feb 2007 03:33:41 GMTWed, 28 Feb 2007 03:33:41 GMT60[瀵煎叆]AJAX鍩虹鏁欑▼http://www.aygfsteel.com/love-java/archive/2005/12/19/24551.html闅愯鑰?/dc:creator>闅愯鑰?/author>Mon, 19 Dec 2005 01:34:00 GMThttp://www.aygfsteel.com/love-java/archive/2005/12/19/24551.htmlhttp://www.aygfsteel.com/love-java/comments/24551.htmlhttp://www.aygfsteel.com/love-java/archive/2005/12/19/24551.html#Feedback0http://www.aygfsteel.com/love-java/comments/commentRss/24551.htmlhttp://www.aygfsteel.com/love-java/services/trackbacks/24551.htmlAJAX鍩虹鏁欑▼

鏈枃鏉ユ簮浜?鏈夎兘澶熸彁渚涙渶鍒濈炕璇戣呯殑鏈嬪弸鍚楋紵)錛?BR>http://developer.mozilla.org/en/docs/AJAX:Getting_Started 


銆銆榪欑瘒鏂囩珷灝嗗甫鎮ㄦ祻瑙堟暣涓狝JAX鐨勫熀鏈璨?騫跺睍紺轟袱涓畝鍗曠殑渚嬪瓙璁╂偍杞繪澗涓婅礬.

銆銆浠涔堟槸 AJAX?
銆銆AJAX (寮傛 JavaScript 鍜?XML) 鏄釜鏂頒駭鐢熺殑鏈,涓撲負鎻忚堪JavaScript鐨勪袱欏瑰己澶фц兘.榪欎袱欏規ц兘鍦ㄥ騫存潵涓鐩磋緗戠粶寮鍙戣呮墍蹇界暐,鐩村埌鏈榪慓mail, Google suggest鍜実oogle Maps鐨勬í絀哄嚭涓栨墠浣夸漢浠紑濮嬫剰璇嗗埌鍏墮噸瑕佹?

銆銆榪欎袱欏硅蹇借鐨勬ц兘鏄?
銆銆鏃犻渶閲嶆柊瑁呰澆鏁翠釜欏甸潰渚胯兘鍚戞湇鍔″櫒鍙戦佽姹?
銆銆瀵筙ML鏂囨。鐨勮В鏋愬拰澶勭悊錛?BR>
姝ラ 1 – "璇?" --- 濡備綍鍙戦佷竴涓狧TTP璇鋒眰

銆銆涓轟簡鐢↗avaScript鍚戞湇鍔″櫒鍙戦佷竴涓狧TTP璇鋒眰, 闇瑕佷竴涓叿澶囪繖縐嶅姛鑳界殑綾誨疄渚? 榪欐牱鐨勭被棣栧厛鐢盜nternet Explorer浠ctiveX瀵硅薄寮曞叆, 琚О涓篨MLHTTP. 鍚庢潵Mozilla, Safari 鍜屽叾浠栨祻瑙堝櫒綰風悍浠挎晥, 鎻愪緵浜哫MLHttpRequest綾?瀹冩敮鎸佸井杞殑ActiveX瀵硅薄鎵鎻愪緵鐨勬柟娉曞拰灞炴?

銆銆鍥犳, 涓轟簡鍒涘緩涓涓法嫻忚鍣ㄧ殑榪欐牱鐨勭被瀹炰緥(瀵硅薄), 鍙互搴旂敤濡備笅浠g爜:

if (window.XMLHttpRequest) { // Mozilla, Safari, ...
    http_request = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
    http_request = new ActiveXObject("Microsoft.XMLHTTP");
}

銆銆(涓婁緥瀵逛唬鐮佸仛浜嗕竴瀹氱畝鍖?榪欐槸涓轟簡瑙i噴濡備綍鍒涘緩XMLHTTP綾誨疄渚? 瀹為檯鐨勪唬鐮佸疄渚嬪彲鍙傞槄鏈瘒姝ラ3.)

銆銆濡傛灉鏈嶅姟鍣ㄧ殑鍝嶅簲娌℃湁XML mime-type header,鏌愪簺Mozilla嫻忚鍣ㄥ彲鑳芥棤娉曟甯稿伐浣? 涓轟簡瑙e喅榪欎釜闂, 濡傛灉鏈嶅姟鍣ㄥ搷搴旂殑header涓嶆槸text/xml,鍙互璋冪敤鍏跺畠鏂規硶淇敼璇eader.

http_request = new XMLHttpRequest();
http_request.overrideMimeType('text/xml');

銆銆鎺ヤ笅鏉ヨ鍐沖畾褰撴敹鍒版湇鍔″櫒鐨勫搷搴斿悗,闇瑕佸仛浠涔?榪欓渶瑕佸憡璇塇TTP璇鋒眰瀵硅薄鐢ㄥ摢涓涓狫avaScript鍑芥暟澶勭悊榪欎釜鍝嶅簲.鍙互灝嗗璞$殑onreadystatechange灞炴ц緗負瑕佷嬌鐢ㄧ殑JavaScript鐨勫嚱鏁板悕,濡備笅鎵紺?

http_request.onreadystatechange = nameOfTheFunction;

銆銆娉ㄦ剰:鍦ㄥ嚱鏁板悕鍚庢病鏈夋嫭鍙?涔熸棤闇浼犻掑弬鏁?鍙﹀榪樻湁涓縐嶆柟娉?鍙互鍦ㄦ墘欏?fly)涓畾涔夊嚱鏁板強鍏跺鍝嶅簲瑕侀噰鍙栫殑琛屼負,濡備笅鎵紺?

http_request.onreadystatechange = function(){
    // do the thing
};

銆銆鍦ㄥ畾涔変簡濡備綍澶勭悊鍝嶅簲鍚?灝辮鍙戦佽姹備簡.鍙互璋冪敤HTTP璇鋒眰綾葷殑open()鍜宻end()鏂規硶, 濡備笅鎵紺?

http_request.open('GET', 'http://www.example.org/some.file', true);
http_request.send(null);

銆銆open()鐨勭涓涓弬鏁版槸HTTP璇鋒眰鏂瑰紡 – GET, POST, HEAD 鎴栦換浣曟湇鍔″櫒鎵鏀寔鐨勬偍鎯寵皟鐢ㄧ殑鏂瑰紡. 鎸夌収HTTP瑙勮寖,璇ュ弬鏁拌澶у啓;鍚﹀垯,鏌愪簺嫻忚鍣?濡侳irefox)鍙兘鏃犳硶澶勭悊璇鋒眰.鏈夊叧HTTP璇鋒眰鏂規硶鐨勮緇嗕俊鎭彲鍙傝僪ttp://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html W3C specs
銆銆絎簩涓弬鏁版槸璇鋒眰欏甸潰鐨刄RL.鐢變簬鑷韓瀹夊叏鐗規х殑闄愬埗,璇ラ〉闈笉鑳戒負絎笁鏂瑰煙鍚嶇殑欏甸潰.鍚屾椂涓瀹氳淇濊瘉鍦ㄦ墍鏈夌殑欏甸潰涓兘浣跨敤鍑嗙‘鐨勫煙鍚?鍚﹀垯璋冪敤open()浼氬緱鍒?permission denied"鐨勯敊璇彁紺?涓涓父瑙佺殑閿欒鏄闂珯鐐規椂浣跨敤domain.tld,鑰屽綋璇鋒眰欏甸潰鏃?鍗翠嬌鐢╳ww.domain.tld.
銆銆絎笁涓弬鏁拌緗姹傛槸鍚︿負寮傛妯″紡.濡傛灉鏄疶RUE, JavaScript鍑芥暟灝嗙戶緇墽琛?鑰屼笉絳夊緟鏈嶅姟鍣ㄥ搷搴?榪欏氨鏄?AJAX"涓殑"A".
銆銆濡傛灉絎竴涓弬鏁版槸"POST",send()鏂規硶鐨勫弬鏁板彲浠ユ槸浠諱綍鎯抽佺粰鏈嶅姟鍣ㄧ殑鏁版嵁. 榪欐椂鏁版嵁瑕佷互瀛楃涓茬殑褰㈠紡閫佺粰鏈嶅姟鍣?濡備笅鎵紺?

name=value&anothername=othervalue&so=on 


姝ラ 2 – "鏀跺埌!" --- 澶勭悊鏈嶅姟鍣ㄧ殑鍝嶅簲

銆銆褰撳彂閫佽姹傛椂,瑕佹彁渚涙寚瀹氬鐞嗗搷搴旂殑JavaScript鍑芥暟鍚?

http_request.onreadystatechange = nameOfTheFunction; 

銆銆鎴戜滑鏉ョ湅鐪嬭繖涓嚱鏁扮殑鍔熻兘鏄粈涔?棣栧厛鍑芥暟浼氭鏌ヨ姹傜殑鐘舵?濡傛灉鐘舵佸兼槸4,灝辨剰鍛崇潃涓涓畬鏁寸殑鏈嶅姟鍣ㄥ搷搴斿凡緇忔敹鍒頒簡,鎮ㄥ皢鍙互澶勭悊璇ュ搷搴?

if (http_request.readyState == 4) {
    // everything is good, the response is received
} else {
    // still not ready
}

銆銆readyState鐨勫彇鍊煎涓?
銆銆0 (鏈垵濮嬪寲)
銆銆1 (姝e湪瑁呰澆)
銆銆2 (瑁呰澆瀹屾瘯)
銆銆3 (浜や簰涓?
銆銆4 (瀹屾垚)

銆銆鎺ョ潃,鍑芥暟浼氭鏌TTP鏈嶅姟鍣ㄥ搷搴旂殑鐘舵佸? 瀹屾暣鐨勭姸鎬佸彇鍊煎彲鍙傝 W3C site. 鎴戜滑鐫閲嶇湅鍊間負200 OK鐨勫搷搴?

if (http_request.status == 200) {
    // perfect!
} else {
    // there was a problem with the request,
    // for example the response may be a 404 (Not Found)
    // or 500 (Internal Server Error) response codes
}

銆銆鍦ㄦ鏌ュ畬璇鋒眰鐨勭姸鎬佸煎拰鍝嶅簲鐨凥TTP鐘舵佸煎悗, 鎮ㄥ氨鍙互澶勭悊浠庢湇鍔″櫒寰楀埌鐨勬暟鎹簡.鏈変袱縐嶆柟寮忓彲浠ュ緱鍒拌繖浜涙暟鎹?

http_request.responseText – 浠ユ枃鏈瓧絎︿覆鐨勬柟寮忚繑鍥炴湇鍔″櫒鐨勫搷搴?nbsp;
http_request.responseXML – 浠MLDocument瀵硅薄鏂瑰紡榪斿洖鍝嶅簲.澶勭悊XMLDocument瀵硅薄鍙互鐢↗avaScript DOM鍑芥暟 


姝ラ 3 – "涓囦簨淇卞!" - 綆鍗曞疄渚?/B>

銆銆鎴戜滑鐜板湪灝嗘暣涓繃紼嬪畬鏁村湴鍋氫竴嬈?鍙戦佷竴涓畝鍗曠殑HTTP璇鋒眰. 鎴戜滑鐢↗avaScript璇鋒眰涓涓狧TML鏂囦歡, test.html, 鏂囦歡鐨勬枃鏈唴瀹逛負"I'm a test.".鐒跺悗鎴戜滑"alert()"test.html鏂囦歡鐨勫唴瀹?

<script type="text/javascript" language="javascript">
    var http_request = false;
    function makeRequest(url) {

        http_request = false;

        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                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) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        http_request.onreadystatechange = alertContents;
        http_request.open('GET', url, true);
        http_request.send(null);

    }

    function alertContents() {

        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
                alert(http_request.responseText);
            } else {
                alert('There was a problem with the request.');
            }
        }

    }
</script>
<span
    style="cursor: pointer; text-decoration: underline"
    onclick="makeRequest('test.html')">
        Make a request
</span>


銆銆鏈緥涓?
銆銆鐢ㄦ埛鐐瑰嚮嫻忚鍣ㄤ笂鐨?璇鋒眰"閾炬帴;
銆銆鎺ョ潃鍑芥暟makeRequest()灝嗚璋冪敤.鍏跺弬鏁?– HTML鏂囦歡test.html鍦ㄥ悓涓鐩綍涓?
銆銆榪欐牱灝卞彂璧蜂簡涓涓姹?onreadystatechange鐨勬墽琛岀粨鏋滀細琚紶閫佺粰alertContents();
銆銆alertContents()灝嗘鏌ユ湇鍔″櫒鐨勫搷搴旀槸鍚︽垚鍔熷湴鏀跺埌,濡傛灉鏄?灝變細"alert()"test.html鏂囦歡鐨勫唴瀹?

姝ラ 4 – "X-鏂囨。" --- 澶勭悊XML鍝嶅簲

銆銆鍦ㄥ墠闈㈢殑渚嬪瓙涓?褰撴湇鍔″櫒瀵笻TTP璇鋒眰鐨勫搷搴旇鏀跺埌鍚?鎴戜滑浼氳皟鐢ㄨ姹傚璞$殑reponseText灞炴?璇ュ睘鎬у寘鍚簡test.html鏂囦歡鐨勫唴瀹?鐜板湪鎴戜滑鏉ヨ瘯璇時esponseXML灞炴?

銆銆棣栧厛,鎴戜滑鏂板緩涓涓湁鏁堢殑XML鏂囦歡,鍚庨潰鎴戜滑灝嗕嬌鐢ㄨ繖涓枃浠?璇ユ枃浠?test.xml)婧愪唬鐮佸涓嬫墍紺?

<?xml version="1.0" ?>
<root>
    I'm a test.
</root>

銆銆鍦ㄨ鑴氭湰涓?鎴戜滑鍙渶淇敼璇鋒眰閮ㄥ垎:

...
onclick="makeRequest('test.xml')">
...

銆銆鎺ョ潃,鍦╝lertContents()涓?鎴戜滑灝哸lert()鐨勪唬鐮乤lert(http_request.responseText);鎹㈡垚:

銆銆var xmldoc = http_request.responseXML;
銆銆var root_node = xmldoc.getElementsByTagName('root').item(0);
銆銆alert(root_node.firstChild.data);


銆銆榪欓噷,鎴戜滑浣跨敤浜唕esponseXML鎻愪緵鐨刋MLDocument瀵硅薄騫剁敤DOM鏂規硶鑾峰彇瀛樹簬XML鏂囦歡涓殑鍐呭.

鏂囩珷鏉ユ簮:http://java.mblogger.cn/love_java/posts/20112.aspx

]]>
主站蜘蛛池模板: 德格县| 韩城市| 柘荣县| 新巴尔虎左旗| 云浮市| 吉安县| 富裕县| 雅江县| 通河县| 焦作市| 淮滨县| 开江县| 康马县| 青海省| 布尔津县| 浦城县| 阜阳市| 莆田市| 安徽省| 萝北县| 辽中县| 新源县| 台安县| 开江县| 徐州市| 乌恰县| 黎川县| 班戈县| 蓬莱市| 且末县| 乐安县| 达州市| 西吉县| 辽阳市| 济阳县| 宁德市| 仙居县| 宜春市| 天长市| 垦利县| 三门峡市|