浠涔堟槸AHAH?
AHAH:(Asychronous HTML and HTTP)
綆鍗曟潵璇達紝AHAH鏄竴縐嶅埄鐢↗avaScript鍔ㄦ佹洿鏂皐eb欏甸潰鐨勬妧鏈?浠栭氳繃XMLHTTPRequest鏉ヨ幏寰楀姩鎬佺殑html錛屽~鍏呭埌 web欏甸潰涓?/P>
鍜孉JAX鐨勫叧緋?
AHAH琚涓烘槸涓縐嶆瘮AJAX(Asynchronous JavaScript and XML)鏇寸畝鍗曠殑web寮鍙戞柟寮?涓ユ牸鎰忎箟涓婃潵璇碅HAH鏄疉JAX鐨勪竴涓瓙闆?鍥犱負(X)HTML鏈韓鍙婃椂涓涓壒孌婂艦寮忕殑XML錛屼絾鏄渶涓哄瓙闆嗙殑AHAH鍗存湁鐗規畩鐨勫拰鏈夌敤鐨勭壒鎬?
1.鏃犻渶瀹氫箟XML schemas鍙互浣胯璁℃椂闂村ぇ騫呭噺灝?/P>
2.浣跨敤宸叉湁鐨凥TML欏甸潰浠庤岄伩鍏嶅繀欏繪彁渚涚壒孌婄殑Web鏈嶅姟
3.鎵鏈夌殑鏁版嵁閫氳繃嫻忚鍣ㄥ彲璇嗗埆鐨凥TML浼犺緭錛屼粠鑰屽彲浠ュ緢瀹規槗鐨勮皟璇曞拰嫻嬭瘯
4.HTML鐩存帴鍖呭惈鍦ㄩ〉闈㈢殑DOM瀵硅薄涓紝鏃犻渶瑙f瀽
5.HTML璁捐鑰呭彲浠ヤ嬌鐢–SS鏉ユ牸寮忓寲鏄劇ず錛屾棤闇紼嬪簭鍛樹嬌鐢╔SLT杞崲
6.鎵鏈夌殑澶勭悊閮藉湪鏈嶅姟鍣ㄧ瀹屾垚錛屽鎴風涓嶉渶瑕佺紪鍐欎換浣曠▼搴?/P>
瀹炰簨涓婏紝浠諱綍鍐呭鐨勬渶緇堥兘鏄杞寲鎴愭祻瑙堝櫒鍙瘑鍒粨鏋滐紝灞曠幇鍦ㄦ祻瑙堝櫒涓娿傚緢闅炬兂璞″嚭杞寲鎴愯嚜瀹氫箟鐨刋ML鏍煎紡姣擧TML鏈変粈涔堜紭鐐?BR>
鍙傝?A >ahah.js 鍜?nbsp;jah.js
Send AHAH Request
1 function ahah(url,target) {
2 // native XMLHttpRequest object
3 document.getElementById(target).innerHTML = 'sending
';
4 if (window.XMLHttpRequest) {
5 req = new XMLHttpRequest();
6 req.onreadystatechange = function() {ahahDone(target);};
7 req.open("GET", url, true);
8 req.send(null);
9 // IE/Windows ActiveX version
10 } else if (window.ActiveXObject) {
11 req = new ActiveXObject("Microsoft.XMLHTTP");
12 if (req) {
13 req.onreadystatechange = function() {ahahDone(target);};
14 req.open("GET", url, true);
15 req.send();
16 }
17 }
18 }
Receive AHAH Request
1 function ahahDone(target) {
2 // only if req is "loaded"
3 if (req.readyState == 4) {
4 // only if "OK"
5 if (req.status == 200 || req.status == 304) {
6 results = req.responseText;
7 document.getElementById(target).innerHTML = results;
8 } else {
9 document.getElementById(target).innerHTML="ahah error:\n" +
10 req.statusText;
11 }
12 }
13 }
Executing Javascript
鐢變簬嫻忚鍣ㄥ湪鎻掑叆HTML鐨勬椂鍊欏茍涓嶄細鎵ц<script>鏍囩涓殑浠g爜,鎵浠ヤ綘鍙互鍒╃敤涓嬮潰鐨勬柟娉曟潵瑙e喅 document.getElementById(target):
1 var bSaf = (navigator.userAgent.indexOf('Safari') != -1);
2 var bOpera = (navigator.userAgent.indexOf('Opera') != -1);
3 var bMoz = (navigator.appName == 'Netscape');
4 function execJS(node) {
5 var st = node.getElementsByTagName('SCRIPT');
6 var strExec;
7 for(var i=0;i<st.length; i++) {
8 if (bSaf) {
9 strExec = st[i].innerHTML;
10 }
11 else if (bOpera) {
12 strExec = st[i].text;
13 }
14 else if (bMoz) {
15 strExec = st[i].textContent;
16 }
17 else {
18 strExec = st[i].text;
19 }
20 try {
21 eval(strExec);
22 } catch(e) {
23 alert(e);
24 }
25 }
26 }
27
娉ㄦ剰:
1.鐢變簬IE榪斿洖鐨則ag鏍囧織閮芥槸澶у啓,鎵浠ヤ綘蹇呴』鎼滅儲SCRIPT鑰屼笉鏄痵cript.鍦╢irefox涓篃淇濈暀澶у啓鐨勫艦寮?
2.涓嶈鐢?/鐨勬敞閲婃柟寮?鐢?**/鐨勬柟寮忔潵浠f浛,鍦ㄦ瘡涓涓0鏄庡彞鍚庨潰鍔?;'
(鏈畬..)
]]>