锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 銆銆澶у閮界煡閬擄紝涓轟簡璁╃綉欏佃兘澶熻嚜鍔ㄥ湴閫傚簲鐢ㄦ埛璁劇疆鐨勫垎杈ㄧ巼錛屽湪緗戦〉鍒朵綔榪囩▼涓漢浠噰鐢ㄤ簡鐧懼垎姣旂殑璁劇疆鏂瑰紡錛屼粠鑰岄〉闈㈢殑鎵鏈夊厓绱犱粠鏂版帓鐗堬紝淇濊瘉鍘熸潵鐨勬牸寮忋備絾濡傛灉浣犲湪欏甸潰涓婁嬌鐢ㄤ簡灞傦紝浣犱細鍙戠幇褰撴祻瑙堝櫒澶у皬鏀瑰彉鏃訛紝灞傜殑浣嶇疆鍗存病鏈夋敼鍙橈紝緇撴灉瀹冨拰鍏朵粬鐨勫厓绱犱箣闂寸殑閰嶅悎鍑虹幇浜嗛敊浣嶇幇璞★紝欏甸潰鍙樺緱鏉備貢鏃犵珷浜嗐傝屾垜浠槸涓嶈兘澶熷己鍒剁敤鎴蜂嬌鐢ㄧ壒瀹氱殑鍒嗚鯨鐜囩殑錛岄偅涔堝氨鍙湁鎯沖姙娉曡灞傜殑浣嶇疆涔熻兘澶熻薄琛ㄦ牸涓鏍鋒牴鎹祻瑙堝櫒澶у皬鐨勬敼鍙樿岄噸鏂板畾浣嶏紝榪欏氨闇瑕佸悎鐞嗗湴浣跨敤鐩稿瀹氫綅鍜岀粷瀵瑰畾浣嶄簡銆?/p>
銆銆緇濆瀹氫綅錛坧osition:absolute錛夛細鍗沖眰榛樿鐨勫畾浣嶆柟寮忥紝緇濆浜庢祻瑙堝櫒宸︿笂瑙掔殑杈圭紭寮濮嬭綆楀畾浣嶆暟鍊箋?/p>
銆銆鐩稿瀹氫綅錛坧osition:relative錛夛細灞傜殑浣嶇疆鐩稿浜庢煇涓厓绱犺緗紝璇ュ厓绱犱綅緗敼鍙橈紝鍒欏眰鐨勪綅緗浉搴旀敼鍙樸?/p>
銆銆瀵規瘮涓ょ瀹氫綅鏂瑰紡錛屼笉闅懼彂鐜幫紝浣跨敤鐩稿瀹氫綅鐨勫眰鎵嶆槸鐪熸瀹炵幇璁捐鑰呮濇兂鐨勬柟寮忥紝浠庤屽畬鍏ㄦ帉鎻″眰鐨勬帓鐗堛? 銆銆閭d箞錛岀粷瀵瑰畾浣嶆湁娌℃湁鐢ㄥ憿錛熷綋鐒舵湁鐢ㄤ簡錛屽綋浣犵殑緗戦〉鍏ㄩ儴浣跨敤灞傛潵鎺掔増錛岃屼笖欏甸潰鏄嬌鐢ㄩ粯璁ょ殑灞呭乏鏀劇疆鐨勶紝閭d箞浣跨敤榛樿鐨勭粷瀵瑰畾浣嶆柟寮忓彲浠ユ柟渚跨殑鎺掔増錛屾彁楂樿璁$殑宸ヤ綔鏁堢巼銆?/p>
銆銆鍦―reamweaver涓紝鎻掑叆鐨勫眰铏界劧閮芥槸浣跨敤鐨勭粷瀵癸紙absolute錛夊畾浣嶆柟寮忥紝浣嗘槸鎻掑叆鐨勬柟寮忎笉鍚岋紝甯︽潵鐨勬晥鏋滄槸涓嶅悓鐨勩傚墠闈㈡垜浠凡緇忕煡閬擄紝浣跨敤鑿滃崟鎻掑叆鐨勫眰鏄病鏈夊畾浣嶇殑鍧愭爣鐨勶紝鍙湁褰撲綘浣跨敤榧犳爣鎷栧姩璇ュ眰鏀瑰彉鍏朵綅緗悗錛屾墠浼氬啓鍏ュ潗鏍囧箋傝屾嫋鎷夊嚭鏉ョ殑灞傜殑鍒濆浣嶇疆鍧愭爣灝辨槸榧犳爣寮濮嬪姩浣滄椂鐨勫潗鏍囥?/p>
銆銆璇鋒槑紜竴涓蹇碉細鐢盌reanweaver璧嬩簣鍧愭爣鍊肩殑灞傛槸緇濆浜庢祻瑙堝櫒杈圭紭瀹氫綅鐨勫眰銆備笉甯﹀潗鏍囧肩殑灞傚垯鏄浉瀵逛簬鏌愬厓绱犲畾浣嶇殑灞傦紒 銆銆鎵浠ワ紝鏈綆鍗曠殑璁劇疆鐩稿瀹氫綅灞傜殑鐨勬柟寮忓氨鏄細閫夊畾鎻掑叆灞傜殑浣嶇疆錛堜緥濡傛煇涓崟鍏冩牸鎴栬呴〉闈腑鏌愬錛夊皢鍏夋爣鍋滅暀鍦ㄨ浣嶇疆錛岀劧鍚庨夋嫨Insert-->Layer錛屽嵆鍙湪璇ヤ綅緗垱寤轟竴涓浐瀹氬ぇ灝忕殑灞傦紝榪欎釜灞傚氨鏄浉瀵逛簬璇ヤ綅緗畾浣嶇殑浜嗐傞渶瑕佹敞鎰忥紝閲囩敤榪欑鏂瑰紡鍒涘緩鐨勫眰錛屼綘鍙彲浠ヤ嬌鐢ㄩ紶鏍囪皟鏁村畠鐨勫ぇ灝忥紝緇濆涓嶅彲浠ョЩ鍔ㄥ畠鐨勪綅緗紒涔熷氨鏄錛屽湪灞炴ч潰鏉夸笂錛屽眰鐨勪綅緗爮涓紙Left Top錛夌粷瀵逛笉鍙互鏈夋暟鍊箋?/p>
銆銆寰堝鎯呭喌涓嬶紝鎻掑叆鐨勫眰鐨勪綅緗茍涓嶄竴瀹氬噯紜紝鐗瑰埆鏄疍reamweaver騫墮潪鐪熸鐨勬墍瑙佸嵆鎵寰楃殑杞歡錛岀綉欏電殑鎺掔増鍙湁鍒版祻瑙堝櫒涓樉紺烘墠鍙互鐪熸鐪嬪埌鎺掔増鐨勮〃鐜幫紝鎵浠ヤ笂闈㈡墍璇寸殑鏂規硶灝辨樉鐨勮繃浜庣畝鍗曡屽鏄撳嚭闂浜嗐傝繖涓椂鍊欙紝浣犻渶瑕佺粰灞備竴涓畾浣嶇殑鍙傜収鐗╋紝璁╁畠鐪熸鍦板仛鍒扮浉瀵圭殑瀹氫綅銆?/p>
銆銆綆鍗曠殑鍙傜収鐗╁彲浠ユ槸涓涓埗灞傦紝鍗沖厛鎻掑叆涓涓浉瀵瑰畾浣嶇殑絀虹櫧鐨勫眰錛屽湪姝ゅ眰涓彃鍏ヤ綘鐪熸闇瑕佺殑灞傦紝鑰岃繖涓眰鏄彲浠ラ殢鎰忔嫋鎷夋敼鍙樹綅緗殑銆備絾榪欐牱姣曠珶鍦ㄧ綉欏典腑澶氭彃鍏ヤ簡涓涓┖鐧界殑灞傦紝鎴戞兂瀹冧竴瀹氫笉鏄笓涓氱殑緗戦〉璁捐甯堟墍甯屾湜鐨勩備笅闈㈡垜浠粙緇嶄嬌鐢–SS鏉ュ疄鐜扮湡姝g殑鐩稿瀹氫綅鐨勫眰銆?/p>
銆銆鎴戜滑闇瑕佸厛璁劇疆涓涓?a >CSS Class錛屾潵瀹氫箟瀹氫綅鐨勬柟寮忎負鐩稿錛?/p>
銆銆.ceng { position: relative; } 銆銆鐒跺悗錛岃祴浜堜綘鎵闇瑕佺殑鍙傜収鐗╋紙鍙互鏄?a > table,tr,td... 錛変竴涓?a > Css灞炴т負榪欎釜綾匯傝繖鏍鋒祻瑙堝櫒灝變細浠ュ畠鐨勫乏涓婅涓哄師鐐癸紝寤虹珛鏂扮殑鍧愭爣緋匯傚啀鍦ㄨ繖涓弬鐓х墿鐨勪笅綰ф彃鍏ュ眰錛屽垯灞傜粷瀵逛簬璇ュ弬鐓х墿瀹氫綅錛屽鏋滀綘闇瑕佹敼鍙樺眰鐨勪綅緗紝浣犲彲浠ョ洿鎺ュ湪灞傜殑灞炴ч潰鏉夸笂杈撳叆Left Top鐨勬暟鍊鹼紙涓嶅彲浠ヤ嬌鐢ㄩ紶鏍囨嫋鎷夛級錛屽垏璁版鏁板肩殑鍧愭爣鍘熺偣鏄綘鎵鎸囧畾鐨勫弬鐓х墿錛岃屼笉鏄祻瑙堝櫒鐨勮竟緙橈紙鍦―reamweaver涓紪杈戞椂錛岃灞傜湅璧鋒潵璞℃槸緇濆浜庨〉闈㈣竟緙樺畾浣嶇殑錛屼絾鍦ㄦ祻瑙堝櫒涓紝瀹冩槸緇濆浜庝綘鎵鎸囧畾鐨勫弬鐓х墿鐨勶級銆?/p>
銆銆寰堝鏈嬪弸浣跨敤灞傛槸涓轟簡絳夊埌鍔ㄦ佺殑鏁堟灉錛屼緥濡備嬌鐢ㄦ椂闂寸嚎璁╂煇涓墿浣撹繍鍔ㄨ搗鏉ワ紝澧炲姞緗戦〉鐨勫姩鎰燂紝閭d箞鐩稿瀹氫綅鍚庣殑灞傝繕鍙互榪愬姩鍚楋紵鍥炵瓟褰撶劧鏄偗瀹氱殑銆傜敱浜庡畾涔?a >瀵硅薄鐨勪袱涓綅緗渶瑕佹嫋鍔ㄨ瀵硅薄鏀瑰彉浣嶇疆錛屾墍浠ヤ嬌鐢ㄧ畝鍗曠殑灞傚畾浣嶇殑鏂規硶鏄笉琛岀殑錛屼絾濡傛灉浣犱嬌鐢–SS鏉ヨ緗浉瀵瑰畾浣嶇殑鏁堟灉鐨勮瘽錛岄偅涔堝氨瀹屽叏鍙互瀹炵幇浜嗐傚彧鏄渶瑕佹敞鎰忥紝瀹氫箟榪愬姩鐨勫垵濮嬩綅緗拰緇撴潫浣嶇疆鏃訛紝浣犱粛鐒朵笉鍙互浣跨敤榧犳爣鎷栨媺錛岃屽彧鑳借嚜琛岃緭鍏eft鍜孴op鐨勬暟鍊箋?/p>
銆銆鏈潵灞傜殑浣跨敤騫朵笉鏄緢澶嶆潅鐨勶紝浣嗘垜鍗存妸瀹冨崟鐙綔涓轟竴涓珷鑺傦紝鍘熷洜灝辨槸灞傜殑瀹氫綅鏈変竴瀹氶毦搴︼紝甯屾湜鏈嬪弸浠湅榪囦互涓婄殑浠嬬粛鍚庯紝鍦―reamweaver涓瀹為獙鍑犳錛屽惁鍒欒繕鏄鏄撳嚭鐜伴棶棰樼殑銆?/p>
銆銆OK錛佸叧浜庡眰鐨勪嬌鐢ㄥ氨璇磋繖涔堝銆?/p>
銆銆鏈枃浠嬬粛涓縐嶆柟娉曪紝Ajax錛屼嬌鐢ㄥ畠鍙互鏋勫緩鏇翠負鍔ㄦ佸拰鍝嶅簲鏇寸伒鏁忕殑Web搴旂敤紼嬪簭銆傝鏂規硶鐨勫叧閿湪浜庡嫻忚鍣ㄧ鐨凧avaScript銆?DHTML鍜屼笌鏈嶅姟鍣ㄥ紓姝ラ氫俊鐨勭粍鍚堛傛湰鏂囦篃婕旂ず浜嗗惎鐢ㄨ繖縐嶆柟娉曟槸澶氫箞綆鍗曪細鍒╃敤涓涓狝jax妗嗘灦錛堟寚DWR錛夋瀯閫犱竴涓簲鐢ㄧ▼搴忥紝瀹冪洿鎺ヤ粠嫻忚鍣ㄤ笌鍚庣鏈嶅姟榪涜閫氫俊銆傚鏋滀嬌鐢ㄥ緱褰擄紝榪欑寮哄ぇ鐨勫姏閲忓彲浠ヤ嬌搴旂敤紼嬪簭鏇村姞鑷劧鍜屽搷搴旂伒鏁忥紝浠庤屾彁鍗囩敤鎴風殑嫻忚浣撻獙銆?/p>
銆銆璇ュ簲鐢ㄧ▼搴忎腑鎵浣跨敤鐨勭ず渚嬩唬鐮佸凡鎵撳寘涓哄崟鐙殑WAR鏂囦歡錛屽彲渚涗笅杞姐?/p>
綆浠?/strong> 銆銆鏈Ajax鐢ㄦ潵鎻忚堪涓緇勬妧鏈紝瀹冧嬌嫻忚鍣ㄥ彲浠ヤ負鐢ㄦ埛鎻愪緵鏇翠負鑷劧鐨勬祻瑙堜綋楠屻傚湪Ajax涔嬪墠錛學eb绔欑偣寮哄埗鐢ㄦ埛榪涘叆鎻愪氦/絳夊緟/閲嶆柊鏄劇ず鑼冧緥錛岀敤鎴風殑鍔ㄤ綔鎬繪槸涓庢湇鍔″櫒鐨?#8220;鎬濊冩椂闂?#8221;鍚屾銆侫jax鎻愪緵涓庢湇鍔″櫒寮傛閫氫俊鐨勮兘鍔涳紝浠庤屼嬌鐢ㄦ埛浠庤姹?鍝嶅簲鐨勫驚鐜腑瑙h劚鍑烘潵銆傚熷姪浜嶢jax錛屽彲浠ュ湪鐢ㄦ埛鍗曞嚮鎸夐挳鏃訛紝浣跨敤JavaScript鍜孌HTML绔嬪嵆鏇存柊UI錛屽茍鍚戞湇鍔″櫒鍙戝嚭寮傛璇鋒眰錛屼互鎵ц鏇存柊鎴栨煡璇㈡暟鎹簱銆傚綋璇鋒眰榪斿洖鏃訛紝灝卞彲浠ヤ嬌鐢?JavaScript鍜孋SS鏉ョ浉搴斿湴鏇存柊UI錛岃屼笉鏄埛鏂版暣涓〉闈€傛渶閲嶈鐨勬槸錛岀敤鎴風敋鑷充笉鐭ラ亾嫻忚鍣ㄦ鍦ㄤ笌鏈嶅姟鍣ㄩ氫俊錛歐eb绔欑偣鐪嬭搗鏉ユ槸鍗蟲椂鍝嶅簲鐨勩?/p>
銆銆铏界劧Ajax鎵闇鐨勫熀紜鏋舵瀯宸茬粡鍑虹幇浜嗕竴孌墊椂闂達紝浣嗙洿鍒版渶榪戝紓姝ヨ姹傜殑鐪熸濞佸姏鎵嶅緱鍒板埄鐢ㄣ傝兘澶熸嫢鏈変竴涓搷搴旀瀬鍏剁伒鏁忕殑Web绔欑偣紜疄嬋鍔ㄤ漢蹇冿紝鍥犱負瀹冩渶緇堝厑璁稿紑鍙戜漢鍛樺拰璁捐浜哄憳浣跨敤鏍囧噯鐨凥TML/CSS/JavaScript鍫嗘爤鍒涘緩“妗岄潰椋庢牸鐨勶紙desktop-like錛?#8221;鍙敤鎬с?/p>
銆銆閫氬父錛屽湪J2EE涓紝寮鍙戜漢鍛樿繃浜庡叧娉ㄦ湇鍔″拰鎸佷箙鎬у眰鐨勫紑鍙戯紝浠ヨ嚦浜庣敤鎴風晫闈㈢殑鍙敤鎬у凡緇忚惤鍚庛傚湪涓涓吀鍨嬬殑J2EE寮鍙戝懆鏈熶腑錛屽父甯鎬細鍚埌榪欐牱鐨勮瘽錛?#8220;鎴戜滑娌℃湁鍙姇鍏I鐨勬椂闂?#8221;鎴?#8220;涓嶈兘鐢℉TML瀹炵幇”銆備絾鏄紝浠ヤ笅Web绔欑偣璇佹槑錛岃繖浜涚悊鐢卞啀涔熺珯涓嶄綇鑴氫簡錛?/p>
銆銆鎵鏈夎繖浜沇eb绔欑偣閮藉憡璇夋垜浠紝Web搴旂敤紼嬪簭涓嶅繀瀹屽叏渚濊禆浜庝粠鏈嶅姟鍣ㄩ噸鏂拌澆鍏ラ〉闈㈡潵鍚戠敤鎴峰憟鐜版洿鏀廣備竴鍒囦技涔庡氨鍦ㄧ灛闂村彂鐢熴傜畝鑰岃█涔嬶紝鍦ㄦ秹鍙婂埌鐢ㄦ埛鐣岄潰鐨勫搷搴旂伒鏁忓害鏃訛紝鍩哄噯璁懼緱鏇撮珮浜嗐?/p>
瀹氫箟Ajax 銆銆Adaptive Path鍏徃鐨凧esse James Garrett榪欐牱瀹氫箟Ajax錛?/p>
銆銆Ajax涓嶆槸涓縐嶆妧鏈傚疄闄呬笂錛屽畠鐢卞嚑縐嶈摤鍕冨彂灞曠殑鎶鏈互鏂扮殑寮哄ぇ鏂瑰紡緇勫悎鑰屾垚銆侫jax鍖呭惈錛?/p>
銆銆榪欓潪甯稿ソ錛屼絾涓轟粈涔堣浠jax鍛藉悕鍛紵鍏跺疄鏈Ajax鏄敱Jesse James Garrett鍒涢犵殑錛屼粬璇村畠鏄?#8220;Asynchronous JavaScript + XML鐨勭畝鍐?#8221;銆?/p>
Ajax鐨勫伐浣滃師鐞?/strong> 銆銆Ajax鐨勬牳蹇冩槸JavaScript瀵硅薄XmlHttpRequest銆傝瀵硅薄鍦↖nternet Explorer 5涓嬈″紩鍏ワ紝瀹冩槸涓縐嶆敮鎸佸紓姝ヨ姹傜殑鎶鏈傜畝鑰岃█涔嬶紝XmlHttpRequest浣挎偍鍙互浣跨敤JavaScript鍚戞湇鍔″櫒鎻愬嚭璇鋒眰騫跺鐞嗗搷搴旓紝鑰屼笉闃誨鐢ㄦ埛銆?/p>
銆銆鍦ㄥ垱寤篧eb绔欑偣鏃訛紝鍦ㄥ鎴風鎵ц灞忓箷鏇存柊涓虹敤鎴鋒彁渚涗簡寰堝ぇ鐨勭伒媧繪с備笅闈㈡槸浣跨敤Ajax鍙互瀹屾垚鐨勫姛鑳斤細 銆銆涓鍒囩殕鏈夊彲鑳斤紒浣嗘効瀹冭兘澶熸縺鍙戞偍寮濮嬪紑鍙戣嚜宸辯殑鍩轟簬Ajax鐨勭珯鐐廣傜劧鑰岋紝鍦ㄥ紑濮嬩箣鍓嶏紝璁╂垜浠粙緇嶄竴涓幇鏈夌殑Web绔欑偣錛屽畠閬靛驚浼犵粺鐨勬彁浜?絳夊緟/閲嶆柊鏄劇ず鐨勮寖渚嬶紝鎴戜滑榪樺皢璁ㄨAjax濡備綍鎻愬崌鐢ㄦ埛浣撻獙銆?/p>
Ajax鍙敤浜庨偅浜涘満鏅紵鈥斺斾竴涓緥瀛愶細MSN Money欏甸潰 銆銆鍓嶅嚑澶╋紝鍦ㄦ祻瑙圡SN Money欏甸潰鐨勬椂鍊欙紝鏈変竴綃?a target=_blank>鍏充簬鎴垮湴浜ф姇璧勭殑鏂囩珷寮曡搗浜嗘垜鐨勫ソ濂囧績銆傛垜鍐沖畾浣跨敤绔欑偣鐨?#8220;Rate this article”錛堣瘎浠鋒湰鏂囷級鍔熻兘錛岄紦鍔卞叾浠栫殑鐢ㄦ埛鑺變竴鐐規椂闂存潵闃呰榪欑瘒鏂囩珷銆傚湪鎴戝崟鍑籿ote鎸夐挳騫剁瓑寰呬簡涓浼氬効涔嬪悗錛屾暣涓〉闈㈣鍒鋒柊錛屽湪鍘熸潵鎶曠エ闂鎵鍦ㄧ殑鍦版柟鍑虹幇浜嗕竴涓紓浜殑鎰熻阿鐢婚潰銆?/p>
銆銆鑰孉jax鑳藉浣跨敤鎴風殑浣撻獙鏇村姞鎰夊揩錛屽畠鍙互鎻愪緵鍝嶅簲鏇村姞鐏墊晱鐨刄I錛屽茍娑堥櫎欏甸潰鍒鋒柊鎵甯︽潵鐨勯棯鐑併傜洰鍓嶏紝鐢變簬瑕佸埛鏂版暣涓〉闈紝闇瑕佷紶閫佸ぇ閲忕殑鏁版嵁錛屽洜涓哄繀欏婚噸鏂板彂閫佹暣涓〉闈€傚鏋滀嬌鐢ˋjax錛屾湇鍔″櫒鍙互榪斿洖涓涓寘鍚簡鎰熻阿淇℃伅鐨?00瀛楄妭鐨勬秷鎭紝鑰屼笉鏄彂閫?6,813瀛楄妭鐨勬秷鎭潵鍒鋒柊鏁翠釜欏甸潰銆傚嵆浣夸嬌鐢ㄧ殑鏄珮閫烮nternet錛屼紶閫?6K鍜?/2K鐨勫樊鍒篃闈炲父澶с傚悓鏍烽噸瑕佺殑鏄紝鍙渶瑕佸埛鏂頒笌鎶曠エ鐩稿叧鐨勪竴灝忚妭錛岃屼笉鏄埛鏂版暣涓睆騫曘?/p>
銆銆璁╂垜浠埄鐢ˋjax瀹炵幇鑷繁鐨勫熀鏈姇紲ㄧ郴緇熴?/p>
鍘熷鐨凙jax錛氱洿鎺ヤ嬌鐢╔mlHttpRequest 銆銆濡備笂鎵榪幫紝Ajax鐨勬牳蹇冩槸JavaScript瀵硅薄XmlHttpRequest銆備笅闈㈢殑紺轟緥鏂囩珷璇勪環緋葷粺灝嗗甫鎮ㄧ啛鎮堿jax鐨勫簳灞傚熀鏈煡璇嗭細http://tearesolutions.com/ajax-demo/raw-ajax.html銆傛敞錛氬鏋滄偍宸茬粡鍦ㄦ湰鍦癢ebLogic瀹瑰櫒涓畨瑁呬簡ajax-demo.war錛屽彲浠ュ鑸埌http://localhost:7001/ajax-demo/raw-ajax.html錛?/p>
銆銆嫻忚搴旂敤紼嬪簭錛屽弬涓庢姇紲紝騫朵翰鐪肩湅瀹冨浣曡繍杞傜啛鎮変簡璇ュ簲鐢ㄧ▼搴忎箣鍚庯紝緇х畫闃呰錛岃繘涓姝ヤ簡瑙e叾宸ヤ綔鍘熺悊緇嗚妭銆?/p>
銆銆棣栧厛錛屾偍鎷ユ湁涓浜涚畝鍗曠殑瀹氫綅鐐規爣璁幫紝瀹冭繛鎺ュ埌涓涓狫avaScriptcastVote(rank)鍑芥暟銆?
銆銆璇ュ嚱鏁頒負鎮ㄦ兂瑕佷笌涔嬮氫俊鐨勬湇鍔″櫒璧勬簮鍒涘緩涓涓猆RL騫惰皟鐢ㄥ唴閮ㄥ嚱鏁癳xecuteXhr錛屾彁渚涗竴涓洖璋僇avaScript鍑芥暟錛屼竴鏃︽湇鍔″櫒鍝嶅簲鍙敤錛岃鍑芥暟灝辮鎵ц銆傜敱浜庢垜甯屾湜瀹冭繍琛屽湪涓涓畝鍗曠殑Apache鐜涓紝“cast vote URL”鍙槸涓涓畝鍗曠殑HTML欏甸潰銆傚湪瀹為檯鎯呭喌涓紝琚皟鐢ㄧ殑URL灝嗚褰曠エ鏁板茍鍔ㄦ佸湴鍛堢幇鍖呭惈鎶曠エ鎬繪暟鐨勫搷搴斻?/p>
銆銆涓嬩竴姝ユ槸鍙戝嚭涓涓猉mlHttpRequest璇鋒眰錛?
銆銆濡傛偍鎵瑙侊紝鎵ц涓涓猉mlHttpRequest騫朵笉綆鍗曪紝浣嗛潪甯哥洿瑙傘傚拰騫沖父涓鏍鳳紝鍦↗avaScript棰嗗煙錛屽ぇ閮ㄥ垎鐨勫伐浣滈噺閮借姳鍦ㄧ‘淇濇祻瑙堝櫒鍏煎鏂歸潰銆傚湪榪欑鎯呭喌涓嬶紝棣栧厛瑕佺‘瀹歑mlHttpRequest鏄惁鍙敤銆傚鏋滀笉鑳界敤錛屽緢鍙兘瑕佷嬌鐢↖nternet Explorer錛岃繖鏍峰氨瑕佷嬌鐢ㄦ墍鎻愪緵鐨凙ctiveX瀹炵幇銆?/p>
executeXhr()鏂規硶涓渶鍏抽敭鐨勯儴鍒嗘槸榪欎袱琛岋細 銆銆絎竴琛屽畾涔変簡JavaScript鍥炶皟鍑芥暟錛屾偍甯屾湜涓鏃﹀搷搴斿氨緇畠灝辮嚜鍔ㄦ墽琛岋紝鑰宺eq.open()鏂規硶涓墍鎸囧畾鐨?#8220;true”鏍囧織璇存槑鎮ㄦ兂瑕佸紓姝ユ墽琛岃璇鋒眰銆?/p>
銆銆涓鏃︽湇鍔″櫒澶勭悊瀹孹mlHttpRequest騫惰繑鍥炵粰嫻忚鍣紝浣跨敤req.onreadystatechange鎸囨淳鎵璁劇疆鐨勫洖璋冩柟娉曞皢琚嚜鍔ㄨ皟鐢ㄣ?
銆銆璇ヤ唬鐮佺浉褰撶畝媧侊紝騫朵笖浣跨敤浜嗗嚑涓夠鏁幫紝榪欎嬌寰楅毦浠ヤ竴涓嬪瓙鐪嬪嚭鍙戠敓浜嗕粈涔堛備負浜嗗紕娓呮榪欎竴鐐癸紝涓嬮潰鐨勮〃鏍鹼紙寮曠敤鑷?a target=_blank>http://developer.apple.com/internet/webcontent/xmlhttpreq.html錛夊垪涓句簡甯哥敤鐨刋mlHttpRequest瀵硅薄灞炴с?/p>
灞炴?/strong> 鎻忚堪 onreadystatechange 姣忔鐘舵佹敼鍙樻墍瑙﹀彂浜嬩歡鐨勪簨浠跺鐞嗙▼搴?/p>
readyState 瀵硅薄鐘舵佸鹼細 responseText 浠庢湇鍔″櫒榪涚▼榪斿洖鐨勬暟鎹殑瀛楃涓插艦寮?/p>
responseXML 浠庢湇鍔″櫒榪涚▼榪斿洖鐨凞OM鍏煎鐨勬枃妗f暟鎹璞?/p>
status 浠庢湇鍔″櫒榪斿洖鐨勬暟瀛椾唬鐮侊紝姣斿404錛堟湭鎵懼埌錛夋垨200錛堝氨緇級 statusText 浼撮殢鐘舵佺爜鐨勫瓧絎︿覆淇℃伅 銆銆鐜板湪processVoteResponse()鍑芥暟寮濮嬫樉紺哄嚭鍏舵剰涔変簡銆傚畠棣栧厛媯鏌mlHttpRequest鐨勬暣浣撶姸鎬佷互淇濊瘉瀹冨凡緇忓畬鎴愶紙readyStatus == 4錛夛紝鐒跺悗鏍規嵁鏈嶅姟鍣ㄧ殑璁懼畾璇㈤棶璇鋒眰鐘舵併傚鏋滀竴鍒囨甯革紙status == 200錛?灝變嬌鐢╥nnerHTML灞炴ч噸鍐橠OM鐨?#8220;votes”鑺傜偣鐨勫唴瀹廣?/p>
銆銆鏃㈢劧鎮ㄤ翰鐪肩湅鍒頒簡XmlHttpRequest瀵硅薄鏄浣曞伐浣滅殑錛屽氨璁╂垜浠埄鐢ㄤ竴涓棬鍦ㄧ畝鍖朖avaScript涓嶫ava搴旂敤紼嬪簭涔嬮棿鐨勫紓姝ラ氫俊鐨勬鏋舵潵瀵瑰叿浣撶殑緇嗚妭榪涜鎶借薄銆?/p>
Ajax: DWR鏂瑰紡 銆銆鎸夌収涓庢枃绔犺瘎浠風郴緇熺浉鍚岀殑嫻佺▼錛屾垜浠皢浣跨敤Direct Web Remoting錛圖WR錛夋鏋跺疄鐜板悓鏍風殑鍔熻兘銆?/p>
銆銆鍋囧畾鏂囩珷鍜屾姇紲ㄧ粨鏋滃瓨鍌ㄥ湪涓涓暟鎹簱涓紝浣跨敤鏌愮瀵硅薄/鍏崇郴鏄犲皠鎶鏈潵瀹屾垚鎶藉彇宸ヤ綔銆備負浜嗛儴緗茶搗鏉ュ敖鍙兘鍦扮畝鍗曪紝鎴戜滑涓嶄細浣跨敤鏁版嵁搴撹繘琛屾寔涔呮у瓨鍌ㄣ傛澶栵紝涓轟嬌搴旂敤紼嬪簭灝藉彲鑳介氱敤錛屼篃涓嶄嬌鐢╓eb妗嗘灦銆傜浉鍙嶏紝搴旂敤紼嬪簭灝嗕粠涓涓潤鎬丠TML鏂囦歡寮濮嬶紝鍙互璁や負瀹冪敱鏈嶅姟鍣ㄥ姩鎬佸湴鍛堢幇銆傞櫎浜嗚繖浜涚畝鍖栨帾鏂斤紝搴旂敤紼嬪簭榪樺簲璇ヤ嬌鐢⊿pring Framework鍏寵仈涓鍒囷紝浠ヤ究杞繪澗鐪嬪嚭濡備綍鍦ㄤ竴涓?#8220;鐪熷疄鐨?#8221;搴旂敤紼嬪簭涓嬌鐢―WR銆?/p>
銆銆鐜板湪搴旇涓嬭澆紺轟緥搴旂敤紼嬪簭騫剁啛鎮夊畠銆傝搴旂敤紼嬪簭琚帇緙╀負鏍囧噯鐨刉AR鏂囦歡錛屽洜姝ゆ偍鍙互鎶婂畠鏀劇疆鍒頒換浣曚竴涓猈eb瀹瑰櫒涓斺旀棤闇榪涜閰嶇疆銆傞儴緗插畬姣曚箣鍚庯紝灝卞彲浠ュ鑸埌http://localhost:7001/ajax_demo/dwr-ajax.html鏉ヨ繍琛岀▼搴忋?/p>
鍥?. 鍙敤鐨勬湇鍔?/p>
銆銆鍗曞嚮ajaxSampleSvc閾炬帴錛屾煡鐪嬫湁鍏沖浣曞湪HTML欏甸潰鍐呯洿鎺ヤ嬌鐢ㄦ湇鍔$殑紺轟緥瀹炵幇銆傚叾涓寘鍚殑涓や釜JavaScript鏂囦歡瀹屾垚浜嗗ぇ閮ㄥ垎鐨勫姛鑳斤細
ajaxSampleSvc.js鏄姩鎬佺敓鎴愮殑錛?/p>
銆銆鐜板湪鍙互浣跨敤JavaScript瀵硅薄ajaxSampleSvc鏇挎崲鎵鏈夌殑XmlHttpRequest浠g爜錛屼粠鑰岄噸鏋剅aw-ajax.html鏂囦歡銆傚彲浠ュ湪dwr-ajax.html鏂囦歡涓湅鍒版敼鍔ㄧ殑緇撴灉錛涗笅闈㈡槸鏂扮殑JavaScript鍑芥暟錛?/p>
Thanks for Voting! Current ranking: " + data.voteAverage
+ " out of 5 Number of votes placed: "
+ data.numberOfVotes + " 銆銆鎯婁漢鍦扮畝鍗曪紝涓嶆槸鍚楋紵鐢盿jaxSampleSvc瀵硅薄榪斿洖鐨凙rticle鍩熷璞″簭鍒楀寲涓轟竴涓狫avaScript瀵硅薄錛屽厑璁稿湪瀹冧笂闈㈣皟鐢ㄨ濡俷umberOfVotes()鍜寁oteAverage()涔嬬被鐨勬柟娉曘傚湪鍔ㄦ佺敓鎴愬茍鎻掑叆鍒癉IV鍏冪礌“votes”涓殑HTML浠g爜鍐呬嬌鐢ㄨ繖浜涙暟鎹?/p>
涓嬩竴姝ュ伐浣?/strong> 銆銆銆鍦ㄥ悗緇枃绔犱腑錛屾垜灝嗙戶緇湁鍏矨jax鐨勮瘽棰橈紝娑夊強涓嬮潰榪欎簺鏂歸潰錛?/p>
銆銆鍍忚澶氭妧鏈竴鏍鳳紝Ajax鏄竴鎶婂弻鍒冨墤銆傚浜庝竴浜涚敤渚嬶紝鍏跺簲鐢ㄧ▼搴忓叾瀹炴病鏈夊繀瑕佷嬌鐢ˋjax錛屼嬌鐢ㄤ簡鍙嶈屾湁鎹熷彲鐢ㄦс傛垜灝嗕粙緇嶄竴浜涗笉閫傚悎浣跨敤鐨勬ā寮忥紝紿佸嚭璇存槑Ajax鐨勪竴浜涙秷鏋佹柟闈紝騫跺睍紺轟竴浜涙湁鍔╀簬緙撳拰榪欎簺娑堟瀬鏂歸潰鐨勬満鍒躲備緥濡傦紝瀵?a >Netflix鐢靛獎嫻忚鍣?/a>鏉ヨ錛孉jax鏄悎閫傜殑瑙e喅鏂規鍚楋紵鎴栬咃紝濡備綍鎻愮ず鐢ㄦ埛紜疄鍑轟簡涓浜涢棶棰橈紝鑰屽啀嬈″崟鍑繪寜閽篃鏃犳祹浜庝簨錛?/p>
銆銆鍦ㄤ嬌鐢ˋjax鏃訛紝鏈鍒濈殑鏂囨。DOM浼氬彂鐢熶竴浜涘彉鍖栵紝騫朵笖鏈夊ぇ閲忕殑欏甸潰鐘舵佷俊鎭瓨鍌ㄥ湪瀹㈡埛绔彉閲忎腑銆傚綋鐢ㄦ埛璺熻釜涓涓摼鎺ュ埌搴旂敤紼嬪簭涓殑鍙︿竴涓〉闈㈡椂錛岀姸鎬佸氨涓㈠け浜嗐傚綋鐢ㄦ埛鎸夌収鎯緥鍗曞嚮Back鎸夐挳鏃訛紝鍛堢幇緇欎粬浠殑鏄紦瀛樹腑鐨勫垵濮嬮〉闈€傝繖浼氫嬌鐢ㄦ埛鎰熷埌闈炲父榪鋒儜錛?/p>
銆銆浣跨敤JavaScript鍦ㄥ鎴風鎵ц鏇村鐨勫伐浣滄椂錛屽鏋滀簨鎯呬笉鎸夐鏈熸柟寮忚繘琛岋紝灝遍渶瑕佷竴浜涜皟璇曞伐鍏鋒潵甯姪寮勬竻鍑虹幇浜嗕粈涔堥棶棰樸?/p>
緇撴潫璇?/strong> 銆銆鏈枃浠嬬粛浜咥jax鏂規硶錛屽茍灞曠ず浜嗗浣曚嬌鐢ㄥ畠鏉ュ垱寤轟竴涓姩鎬佷笖鍝嶅簲鐏墊晱鐨刉eb搴旂敤紼嬪簭銆傞氳繃浣跨敤DWR妗嗘灦錛屽彲浠ヨ交鏉懼湴鎶夾jax铻嶅悎鍒扮珯鐐逛腑錛岃屾棤闇鎷呭績鎵鏈夊繀欏繪墽琛岀殑瀹為檯綆¢亾宸ヤ綔銆?/p>
銆銆鐗瑰埆鎰熻阿Getahead IT鍜ㄨ鍏徃鐨凧oe Walker鍜屼粬鐨勫洟闃熷紑鍙戝嚭DWR榪欐牱紲炲鐨勫伐鍏楓傛劅璋綘浠笌涓栫晫鍏變韓瀹冿紒 銆銆Java浜嬩歡澶勭悊 銆銆浠庢蹇典笂璁詫紝浜嬩歡鏄竴縐嶅湪"婧愬璞?鍜?鐩戝惉鑰呭璞?涔嬮棿錛屾煇縐嶇姸鎬佸彂鐢熷彉鍖栫殑浼犻掓満鍒躲備簨浠舵湁璁稿涓嶅悓鐨勭敤閫旓紝渚嬪鍦╓indows緋葷粺涓父瑕佸鐞嗙殑榧犳爣浜嬩歡銆佺獥鍙h竟鐣屾敼鍙樹簨浠躲侀敭鐩樹簨浠剁瓑銆傚湪Java涓垯鏄畾涔変簡涓涓櫘閫氱殑銆佸彲鎵╁厖鐨勪簨浠舵満鍒訛紝榪欑鏈哄埗鑳藉錛?/p>
銆銆瀵逛簨浠剁被鍨嬪拰浼犻掔殑妯″瀷鐨勫畾涔夊拰鎵╁厖鎻愪緵涓涓叕鍏辨鏋訛紝騫墮傚悎浜庡箍娉涚殑搴旂敤銆?/p>
銆銆銆涓嶫ava璇█鍜岀幆澧冩湁杈冮珮鐨勯泦鎴愬害銆?/p>
銆銆銆浜嬩歡鑳借鎻忚堪鐜鎹曡幏鍜岃Е鍙戙?/p>
銆銆銆鑳戒嬌鍏跺畠鏋勯犲伐鍏烽噰鍙栨煇縐嶆妧鏈湪璁捐鏃剁洿鎺ユ帶鍒朵簨浠訛紝浠ュ強浜嬩歡婧愬拰浜嬩歡鐩戝惉鑰呬箣闂寸殑鑱旂郴銆?/p>
銆銆銆浜嬩歡鏈哄埗鏈韓涓嶄緷璧栦簬澶嶆潅鐨勫紑鍙戝伐鍏楓?/p>
銆銆浜嬩歡浠庝簨浠舵簮鍒扮洃鍚呯殑浼犻掓槸閫氳繃瀵圭洰鏍囩洃鍚呭璞$殑Java鏂規硶璋冪敤榪涜鐨勩傚姣忎釜鏄庣‘鐨勪簨浠剁殑鍙戠敓錛岄兘鐩稿簲鍦板畾涔変竴涓槑紜殑Java鏂規硶銆傝繖浜涙柟娉曢兘闆嗕腑瀹氫箟鍦ㄤ簨浠剁洃鍚咃紙EventListener錛夋帴鍙d腑錛岃繖涓帴鍙h緇ф壙 java.util.EventListener銆傚疄鐜頒簡浜嬩歡鐩戝惉鑰呮帴鍙d腑涓浜涙垨鍏ㄩ儴鏂規硶鐨勭被灝辨槸浜嬩歡鐩戝惉鑰呫備即闅忕潃浜嬩歡鐨勫彂鐢燂紝鐩稿簲鐨勭姸鎬侀氬父閮藉皝瑁呭湪浜嬩歡鐘舵佸璞′腑錛岃瀵硅薄蹇呴』緇ф壙鑷猨ava.util.EventObject銆備簨浠剁姸鎬佸璞′綔涓哄崟鍙備紶閫掔粰搴斿搷搴旇浜嬩歡鐨勭洃鍚呮柟娉曚腑銆傚彂鍑烘煇縐嶇壒瀹氫簨浠剁殑浜嬩歡婧愮殑鏍囪瘑鏄細閬典粠瑙勫畾鐨勮璁℃牸寮忎負浜嬩歡鐩戝惉鑰呭畾涔夋敞鍐屾柟娉曪紝騫舵帴鍙楀鎸囧畾浜嬩歡鐩戝惉鑰呮帴鍙e疄渚嬬殑寮曠敤銆傛湁鏃訛紝浜嬩歡鐩戝惉鑰呬笉鑳界洿鎺ュ疄鐜頒簨浠剁洃鍚呮帴鍙o紝鎴栬呰繕鏈夊叾瀹冪殑棰濆鍔ㄤ綔鏃訛紝灝辮鍦ㄤ竴涓簮涓庡叾瀹冧竴涓垨澶氫釜鐩戝惉鑰呬箣闂存彃鍏ヤ竴涓簨浠墮傞厤鍣ㄧ被鐨勫疄渚嬶紝鏉ュ緩绔嬪畠浠箣闂寸殑鑱旂郴銆?/p>
銆銆浜嬩歡鐘舵佸璞★紙Event State Object錛?br>銆 public class MouseMovedExampleEvent extends java銆倁til銆侲ventObject 浜嬩歡鐩戝惉鑰呮帴鍙o紙EventListener Interface錛変笌浜嬩歡鐩戝惉鑰?/p>
銆銆鐢變簬Java浜嬩歡妯″瀷鏄熀浜庢柟娉曡皟鐢紝鍥犺岄渶瑕佷竴涓畾涔夊茍緇勭粐浜嬩歡鎿嶇旱鏂規硶鐨勬柟寮忋備簨浠舵搷綰墊柟娉曢兘琚畾涔夊湪緇ф壙浜唈ava銆倁til銆?EventListener綾葷殑EventListener鎺ュ彛涓紝鎸夎瀹氾紝EventListener鎺ュ彛鐨勫懡鍚嶈浠istener緇撳熬銆備換浣曚竴涓被濡傛灉鎯蟲搷綰靛湪EventListener鎺ュ彛涓畾涔夌殑鏂規硶閮藉繀欏諱互瀹炵幇榪欎釜鎺ュ彛鏂瑰紡榪涜銆傝繖涓被涔熷氨鏄簨浠剁洃鍚呫備緥濡傦細 /*鍏堝畾涔変簡涓涓紶鏍囩Щ鍔ㄤ簨浠跺璞?/ 銆銆鍦ㄦ帴鍙d腑鍙畾涔夋柟娉曞悕錛屾柟娉曠殑鍙傛暟鍜岃繑鍥炲肩被鍨嬨傚錛氫笂闈㈡帴鍙d腑鐨刴ouseMoved鏂規硶鐨勫叿浣撳疄鐜版槸鍦ㄤ笅闈㈢殑ArbitraryObject綾諱腑瀹氫箟鐨勩?/p>
class ArbitraryObject implements MouseMovedExampleListener { 銆銆ArbitraryObject灝辨槸MouseMovedExampleEvent浜嬩歡鐨勭洃鍚呫?/p>
銆銆浜嬩歡鐩戝惉鑰呯殑娉ㄥ唽涓庢敞閿 銆銆涓轟簡鍚勭鍙兘鐨勪簨浠剁洃鍚呮妸鑷繁娉ㄥ唽鍏ュ悎閫傜殑浜嬩歡婧愪腑錛屽緩绔嬫簮涓庝簨浠剁洃鍚呴棿鐨勪簨浠舵祦錛屼簨浠舵簮蹇呴』涓轟簨浠剁洃鍚呮彁渚涙敞鍐屽拰娉ㄩ攢鐨勬柟娉曘傚湪鍓嶉潰鐨刡ound灞炴т粙緇嶄腑宸茬湅鍒頒簡榪欑浣跨敤榪囩▼錛屽湪瀹為檯涓紝浜嬩歡鐩戝惉鑰呯殑娉ㄥ唽鍜屾敞閿瑕佷嬌鐢ㄦ爣鍑嗙殑璁捐鏍煎紡錛?/p>
public void add< ListenerType>(< ListenerType> listener)錛?br>public void remove< ListenerType>(< ListenerType> listener)錛?/p>
銆銆棣栧厛瀹氫箟浜嗕竴涓簨浠剁洃鍚呮帴鍙o細 public interface ModelChangedListener extends java銆倁til銆侲ventListener { 銆銆鎺ョ潃瀹氫箟浜嬩歡婧愮被錛?/p>
public abstract class Model { public synchronized void addModelChangedListener(ModelChangedListener mcl) 銆銆protected void notifyModelChanged() {/**浜嬩歡婧愪嬌鐢ㄦ湰鏂規硶閫氱煡鐩戝惉鑰呭彂鐢熶簡modelChanged浜嬩歡*/ 銆銆鍦ㄧ▼搴忎腑鍙浜嬩歡婧怣odel綾繪樉寮忓湴璋冪敤浜嗘帴鍙d腑鐨刴odelChanged鏂規硶錛屽疄闄呮槸鎶婁簨浠剁姸鎬佸璞浣滀負鍙傛暟錛屼紶閫掔粰浜嗙洃鍚呯被涓殑modelChanged鏂規硶銆?/p>
銆銆閫傞厤綾?/p>
銆銆閫傞厤綾繪槸Java浜嬩歡妯″瀷涓瀬鍏墮噸瑕佺殑涓閮ㄥ垎銆傚湪涓浜涘簲鐢ㄥ満鍚堬紝浜嬩歡浠庢簮鍒扮洃鍚呬箣闂寸殑浼犻掕閫氳繃閫傞厤綾繪潵"杞彂"銆備緥濡傦細褰撲簨浠舵簮鍙戝嚭涓涓簨浠訛紝鑰屾湁鍑犱釜浜嬩歡鐩戝惉鑰呭璞¢兘鍙帴鏀惰浜嬩歡錛屼絾鍙湁鎸囧畾瀵硅薄鍋氬嚭鍙嶅簲鏃訛紝灝辮鍦ㄤ簨浠舵簮涓庝簨浠剁洃鍚呬箣闂存彃鍏ヤ竴涓簨浠墮傞厤鍣ㄧ被錛岀敱閫傞厤鍣ㄧ被鏉ユ寚瀹氫簨浠跺簲璇ユ槸鐢卞摢浜涚洃鍚呮潵鍝嶅簲銆傞傞厤綾繪垚涓轟簡浜嬩歡鐩戝惉鑰咃紝浜嬩歡婧愬疄闄呮槸鎶婇傞厤綾諱綔涓虹洃鍚呮敞鍐屽叆鐩戝惉鑰呴槦鍒椾腑錛岃岀湡姝g殑浜嬩歡鍝嶅簲鑰呭茍鏈湪鐩戝惉鑰呴槦鍒椾腑錛屼簨浠跺搷搴旇呭簲鍋氱殑鍔ㄤ綔鐢遍傞厤綾誨喅瀹氥傜洰鍓嶇粷澶у鏁扮殑寮鍙戝伐鍏峰湪鐢熸垚浠g爜鏃訛紝浜嬩歡澶勭悊閮芥槸閫氳繃閫傞厤綾繪潵榪涜鐨勩?/p>
C#浜嬩歡澶勭悊 銆銆鍦ㄣ?NET搴旂敤紼嬪簭寮鍙戜腑錛屼笉綆℃槸WEB Forms錛圓SP銆侼ET錛夎繕鏄疻indows Forms錛岄兘娑夊強鍒板ぇ閲忓璞$殑浜嬩歡鍝嶅簲鍙婂鐞嗭紝姣斿瀹㈡埛鍦ㄧ嚎鎻愪氦涓浠借鍗曘佹垨鏄湪Windows紿楀彛涓婄Щ鍔ㄩ紶鏍囩瓑閮藉皢鏈変簨浠跺彂鐢熴傞偅涔堝湪C#涓紝鏄庢牱澹版槑浜嬩歡騫朵負浜嬩歡娣誨姞鍝嶅簲鏂規硶鐨勫憿錛?/p>
銆銆鍦–#涓紝浜嬩歡(Events)鎴愬憳灝辨槸鐢ㄦ潵澹版槑涓涓被浜嬩歡鐨勩傚湪綾諱腑澹版槑涓涓簨浠舵垚鍛樹竴鑸噰鐢ㄥ涓嬬殑璇硶褰㈠紡錛?/p>
銆銆public event 浠h〃鍚?浜嬩歡鍚嶃?/p>
銆銆濡傚湪Control綾諱腑澹版槑浜嗕竴涓狢lick浜嬩歡鎴愬憳錛屽叾璇硶濡備笅錛?/p>
銆銆public event EventHandler Click; 銆銆鍦–#涓紝澧炲姞浜嗕竴涓柊鐨勬暟鎹被鍨媎elegate鏉ヨВ鍐充簨浠跺鐞嗛棶棰樸備唬琛ㄦ暟鎹被鍨嬮潪甯哥被浼間簬C璇█涓殑鎸囬拡錛屽叾涓庢寚閽堜笉鍚岀殑鏄紝鍏舵槸浠g爜鏄畨鍏ㄧ殑錛屽彲綆$悊鐨勩傜敱浜嶤#鏈韓鐨勭畝鏄撴э紝瀵逛簬娌℃湁浣跨敤榪嘋鍙婃寚閽堢殑紼嬪簭鏉ヨ錛岀悊瑙elegate涔熸槸闈炲父瀹規槗鐨勩?/p>
銆銆鍦–#涓紝閫氳繃浣跨敤delegate錛屼綘鍙互閫氳繃"+="鎿嶄綔絎﹂潪甯稿鏄撳湴涓恒侼et瀵硅薄涓殑涓涓簨浠舵坊鍔犱竴涓敋鑷沖涓搷搴旀柟娉曪紱榪樺彲浠ラ氳繃闈炲父綆鍗曠殑"-="鎿嶄綔絎﹀彇娑堣繖浜涘搷搴旀柟娉曘傚涓嬮潰涓簍emp鎸夐挳娣誨姞Click浜嬩歡鐨勮鍙ワ細 temp銆侰lick+=new System.EventHandler(this.Test);//涓簍est娣誨姞浜嬩歡澶勭悊鏂規硶 銆銆鍦ㄤ笂闈㈠0鏄庝簨浠剁殑璇彞涓紝Eventhandler鏄竴涓猟elegate(浠h〃)綾誨瀷錛屽叾鍦ㄣ侼et綾誨簱涓涓嬪0鏄庣殑錛?/p>
public delegate void EventHandler(object sender錛孍ventArgs e); 銆銆榪欐牱錛屾墍鏈夊艦濡?void 鍑藉▌鍚?object 鍙傛暟鍚嶏紝EventArgs 鍙傛暟鍚?;鐨勫嚱鏁伴兘鍙互浣滀負Control綾葷殑Click浜嬩歡鍝嶅簲鏂規硶浜嗐傚涓嬮潰鎵瀹氫箟鐨勪竴涓簨浠跺搷搴旀柟娉曪細 private void button1_Click(object sender錛?System.EventArgs e) 銆銆鐢變簬鏄氳繃delegate鏉ュ鐞嗕簨浠訛紝鍥犳錛屽彲鑳介氳繃绱姞浣夸竴涓簨浠跺叿鏈夊涓搷搴旀柟娉曪紱涓庢鍚屾椂錛岃繕鍙互浣夸竴涓柟娉曚綔涓哄涓簨浠剁殑鍝嶅簲鏂規硶(娉ㄦ剰錛氬湪 C#璇█綾諱腑鐨別vent鎴愬憳鍚庨潰鍙兘鍑虹幇"+="涓?-="涓や釜琛ㄧず娣誨姞涓庡彇娑堜簨浠跺搷搴斿嚱鏁扮殑鎿嶄綔絎?銆備笉綆℃槸ASP銆侼et榪樻槸涓鑸殑Windows Forms 緙栫▼錛屽湪C#涓紝鍩烘湰涓婃垜浠亣鍒扮殑浜嬩歡鍝嶅簲鏂規硶閮芥槸璇存槑鎴愬涓嬬殑褰㈠紡錛?/p>
private void button1_Click(object sender錛?System銆侲ventArgs e) 銆銆閭d箞錛屼竴涓簨浠跺搷搴旀柟娉曠殑瀛樺彇鏉冮檺銆佽繑鍥炲肩被鍨嬨佸弬鏁板強綾誨瀷鐢氳嚦鏂規硶鍚嶇О絳夋槸鍚﹂兘蹇呴』鍥哄畾涓嶅彉鍛紵絳旀鏄細涓嶆槸錛?/p>
銆銆涓鑸儏鍐典笅錛屼簨浠剁殑鍝嶅簲鏂規硶涓兘鏈変袱涓弬鏁幫紝鍏朵腑涓涓唬琛ㄥ紩鍙戜簨浠剁殑瀵硅薄鍗硈ender錛岀敱浜庡紩鍙戜簨浠剁殑瀵硅薄涓嶅彲棰勭煡鐨勶紝鍥犳鎴戜滑鎶婂叾澹版槑鎴愪負 object綾誨瀷錛屾墍鏈夌殑瀵硅薄閮介傜敤銆傜浜屼釜鍙傛暟浠h〃寮曞彂浜嬩歡鐨勫叿浣撲俊鎭紝鍚勭綾誨瀷鐨勪簨浠朵腑鍙兘涓嶅悓錛岃繖瑕佹牴鎹被涓簨浠舵垚鍛樼殑璇存槑鍐沖畾銆?/p>
銆銆鎴戜滑鐭ラ亾錛屼簨浠舵槸閫氳繃delegate鏉ュ鐞嗙殑銆傚亣璁懼皢瑕佽〃紺轟簨浠惰鏄庢垚濡備笅褰㈠紡錛?/p>
delegate int MyEventHandler(object sender錛?ToolBarButtonClickEventArgs e); 銆銆鍒欏綋娑夊強涓婇潰鐨勪簨浠跺搷搴斿嚱鏁板0鏄庢椂錛屽氨欏昏澹版槑鎴愬涓嬬殑褰㈠紡錛?/p>
private int MyTest(object sender錛孴oolBarButtonClickEventArgs e) {} 銆銆鍦ㄧ粰瀵硅薄娣誨姞浜嬩歡鍝嶅簲鏂規硶鏃跺氨鍙互鐢ㄥ涓嬬殑浠g爜瀹炵幇錛?/p>
Control銆侲vent+=new MyEventHandler(MyTest); 銆銆鎬葷殑鏉ヨ錛孞ava浜嬩歡澶勭悊鏇寸洿鎺ワ紝綆鍗曘傝孋#浜嬩歡澶勭悊鐢變簬寮曠敤浠g悊錛屼嬌寰楃▼搴忔洿鐏墊椿錛屾洿浣撶幇紼嬪簭涔嬮棿鐨勬澗钘曞悎鎬с傜編鍥界楦燂紙Stryon http://www.stryon.com.cn錛夊叕鍙稿甯冨湪Java寮鍙戝鉤鍙頒笂瀹炵幇寰蔣鐨?NET錛屽懡鍚嶄負iNET銆傚茍浜庤繎鏈熸帹鍑篿NET鐨?Beta3鐗堟湰錛屽叾涓氨鍖呮嫭鐢↗ava瀹炵幇浜咰#鐨勪笁綰т簨浠跺鐞嗘満鍒躲?/p>
涓銆侀澶囩煡璇嗏旂▼搴忕殑鍐呭瓨鍒嗛厤 浼間簬閾捐〃錛屽懙鍛點?br>3銆佸叏灞鍖猴紙闈欐佸尯錛夛紙static錛夆斿叏灞鍙橀噺鍜岄潤鎬佸彉閲忕殑瀛樺偍鏄斁鍦ㄤ竴鍧楃殑錛屽垵濮嬪寲鐨勫叏灞鍙橀噺鍜岄潤鎬佸彉閲忓湪涓鍧楀尯鍩燂紝鏈垵濮嬪寲鐨勫叏灞鍙橀噺 鍜屾湭鍒濆鍖栫殑闈欐佸彉閲忓湪鐩擱偦鐨勫彟涓鍧楀尯鍩熴傜▼搴忕粨鏉熷悗鐢辯郴緇熼噴鏀俱?br>4銆佹枃瀛楀父閲忓尯鈥斿父閲忓瓧絎︿覆灝辨槸鏀懼湪榪欓噷鐨勩傜▼搴忕粨鏉熷悗鐢辯郴緇熼噴鏀俱?br>5銆佺▼搴忎唬鐮佸尯鈥斿瓨鏀懼嚱鏁頒綋鐨勪簩榪涘埗浠g爜銆?/p>
澶у鏁扮郴緇燂紝浼氬湪榪欏潡鍐呭瓨絀洪棿涓殑棣栧湴鍧澶勮褰曟湰嬈″垎閰嶇殑澶у皬錛岃繖鏍鳳紝浠g爜涓殑delete璇彞鎵嶈兘姝g‘鐨勯噴鏀炬湰鍐呭瓨絀洪棿銆傚彟澶栵紝鐢變簬鎵懼埌 鐨勫爢緇撶偣鐨勫ぇ灝忎笉涓瀹氭濂界瓑浜庣敵璇風殑澶у皬錛岀郴緇熶細鑷姩鐨勫皢澶氫綑鐨勯偅閮ㄥ垎閲嶆柊鏀懼叆絀洪棽閾捐〃涓?/p>
2.3鐢寵澶у皬鐨勯檺鍒?br>鏍堬細鍦╓indows涓?鏍堟槸鍚戜綆鍦板潃鎵╁睍鐨勬暟鎹粨鏋勶紝鏄竴鍧楄繛緇殑鍐呭瓨鐨勫尯鍩熴傝繖鍙ヨ瘽鐨勬剰鎬濇槸鏍堥《鐨勫湴鍧鍜屾爤鐨勬渶澶у閲忔槸緋葷粺棰勫厛瑙勫畾濂界殑 錛屽湪WINDOWS涓嬶紝鏍堢殑澶у皬鏄?M錛堜篃鏈夌殑璇存槸1M錛屾諱箣鏄竴涓紪璇戞椂灝辯‘瀹氱殑甯告暟錛夛紝濡傛灉鐢寵鐨勭┖闂磋秴榪囨爤鐨勫墿浣欑┖闂存椂錛屽皢鎻愮ずoverflow銆?/p>
鍥犳錛岃兘浠庢爤鑾峰緱鐨勭┖闂磋緝灝忋?br>鍫嗭細鍫嗘槸鍚戦珮鍦板潃鎵╁睍鐨勬暟鎹粨鏋勶紝鏄笉榪炵畫鐨勫唴瀛樺尯鍩熴傝繖鏄敱浜庣郴緇熸槸鐢ㄩ摼琛ㄦ潵瀛樺偍鐨勭┖闂插唴瀛樺湴鍧鐨勶紝鑷劧鏄笉榪炵畫鐨勶紝鑰岄摼琛ㄧ殑閬嶅巻 鏂瑰悜鏄敱浣庡湴鍧鍚戦珮鍦板潃銆傚爢鐨勫ぇ灝忓彈闄愪簬璁$畻鏈虹郴緇熶腑鏈夋晥鐨勮櫄鎷熷唴瀛樸傜敱姝ゅ彲瑙侊紝鍫嗚幏寰楃殑絀洪棿姣旇緝鐏墊椿錛屼篃姣旇緝澶с?/p>
璧鋒潵鏈涓嶆柟渚褲備絾鏄熷害蹇紝涔熸渶鐏墊椿銆?/p>
2.5鍫嗗拰鏍堜腑鐨勫瓨鍌ㄥ唴瀹?br>鏍堬細鍦ㄥ嚱鏁拌皟鐢ㄦ椂錛岀涓涓繘鏍堢殑鏄富鍑芥暟涓悗鐨勪笅涓鏉℃寚浠わ紙鍑芥暟璋冪敤璇彞鐨勪笅涓鏉″彲鎵ц璇彞錛夌殑鍦板潃錛岀劧鍚庢槸鍑芥暟鐨勫悇涓弬鏁幫紝鍦ㄥぇ澶?/p>
鏁扮殑C緙栬瘧鍣ㄤ腑錛屽弬鏁版槸鐢卞彸寰宸﹀叆鏍堢殑錛岀劧鍚庢槸鍑芥暟涓殑灞閮ㄥ彉閲忋傛敞鎰忛潤鎬佸彉閲忔槸涓嶅叆鏍堢殑銆?br>褰撴湰嬈″嚱鏁拌皟鐢ㄧ粨鏉熷悗錛屽眬閮ㄥ彉閲忓厛鍑烘爤錛岀劧鍚庢槸鍙傛暟錛屾渶鍚庢爤欏舵寚閽堟寚鍚戞渶寮濮嬪瓨鐨勫湴鍧錛屼篃灝辨槸涓誨嚱鏁頒腑鐨勪笅涓鏉℃寚浠わ紝紼嬪簭鐢辮鐐圭戶緇?/p>
榪愯銆?br>鍫嗭細涓鑸槸鍦ㄥ爢鐨勫ご閮ㄧ敤涓涓瓧鑺傚瓨鏀懼爢鐨勫ぇ灝忋傚爢涓殑鍏蜂綋鍐呭鐢辯▼搴忓憳瀹夋帓銆?/p>
2.6瀛樺彇鏁堢巼鐨勬瘮杈?/p>
char s1[]="aaaaaaaaaaaaaaa"; 鎵熬宸ヤ綔錛屼粬鐨勫ソ澶勬槸蹇嵎錛屼絾鏄嚜鐢卞害灝忋?br>浣跨敤鍫嗗氨璞℃槸鑷繁鍔ㄦ墜鍋氬枩嬈㈠悆鐨勮彍鑲達紝姣旇緝楹葷儲錛屼絾鏄瘮杈冪鍚堣嚜宸辯殑鍙e懗錛岃屼笖鑷敱搴﹀ぇ銆?/p>
function castVote(rank) {
var url = "/ajax-demo/static-article-ranking.html";
var callback = processAjaxResponse;
executeXhr(callback, url);
}
function executeXhr(callback, url) {
// branch for native XMLHttpRequest object
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.onreadystatechange = callback;
req.open("GET", url, true);
req.send(null);
} // branch for IE/Windows ActiveX version
else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req) {
req.onreadystatechange = callback;
req.open("GET", url, true);
req.send();
}
}
}
req.onreadystatechange = callback;
req.open("GET", url, true);
function processAjaxResponse() {
// only if req shows "loaded"
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
$('votes').innerHTML = req.responseText;
} else {
alert("There was a problem retrieving the XML data:\n" +
req.statusText);
}
}
}

<script type='text/javascript'
src='/ajax-demo/dwr/interface/ajaxSampleSvc.js'></script>
<script type='text/javascript'
src='/ajax-demo/dwr/engine.js'></script>
function ajaxSampleSvc() { }
ajaxSampleSvc.castVote = function(callback, p0)
{
DWREngine._execute(callback, '/ajax-demo/dwr',
'ajaxSampleSvc', 'castVote', p0);
}
function castVote(rank) {
ajaxSampleSvc.castVote(processResponse, rank);
}
function processResponse(data) {
var voteText = "
]]>
銆銆涓庝簨浠跺彂鐢熸湁鍏崇殑鐘舵佷俊鎭竴鑸兘灝佽鍦ㄤ竴涓簨浠剁姸鎬佸璞′腑錛岃繖縐嶅璞℃槸java銆倁til銆侲ventObject鐨勫瓙綾匯傛寜璁捐涔犳儻錛岃繖縐嶄簨浠剁姸鎬佸璞$被鐨勫悕搴斾互Event緇撳熬銆備緥濡傦細
{ protected int x錛?y錛?br>/*銆鍒涘緩涓涓紶鏍囩Щ鍔ㄤ簨浠禡ouseMovedExampleEvent */
銆MouseMovedExampleEvent(java.awt.Component source錛?Point location) {
super(source);
x = location.x;
y = location.y;
}
/* 鑾峰彇榧犳爣浣嶇疆*/
public Point getLocation() {
return new Point(x, y);
}}
銆銆public class MouseMovedExampleEvent extends java銆倁til銆侲ventObject {
銆銆 // 鍦ㄦ綾諱腑鍖呭惈浜嗕笌榧犳爣縐誨姩浜嬩歡鏈夊叧鐨勭姸鎬佷俊鎭?br>銆銆銆銆 ...
銆銆}
銆銆/*瀹氫箟浜嗛紶鏍囩Щ鍔ㄤ簨浠剁殑鐩戝惉鑰呮帴鍙?/
銆銆interface MouseMovedExampleListener extends java銆倁til銆侲ventListener {
/*鍦ㄨ繖涓帴鍙d腑瀹氫箟浜嗛紶鏍囩Щ鍔ㄤ簨浠剁洃鍚呮墍搴旀敮鎸佺殑鏂規硶*/
void mouseMoved(MouseMovedExampleEvent mme);
}
銆銆銆public void mouseMoved(MouseMovedExampleEvent mme)
銆 { ... }
锝?/p>
void modelChanged(EventObject e);
}
private Vector listeners = new Vector(); // 瀹氫箟浜嗕竴涓偍瀛樹簨浠剁洃鍚呯殑鏁扮粍
/*涓婇潰璁捐鏍煎紡涓殑< ListenerType>鍦ㄦ澶勫嵆鏄笅闈㈢殑ModelChangedListener*/
銆銆{ listeners.addElement(mcl); }//鎶婄洃鍚呮敞鍐屽叆listeners鏁扮粍涓?br>public synchronized void removeModelChangedListener(ModelChangedListener mcl)
銆銆銆銆{ listeners.removeElement(mcl); file://鎶婄洃鍚呬粠listeners涓敞閿
銆銆銆銆锝?br>銆銆/*浠ヤ笂涓や釜鏂規硶鐨勫墠闈㈠潎鍐犱互synchronized錛屾槸鍥犱負榪愯鍦ㄥ綰跨▼鐜鏃訛紝鍙兘鍚屾椂鏈夊嚑涓璞″悓鏃惰榪涜娉ㄥ唽鍜屾敞閿鎿嶄綔錛屼嬌鐢╯ynchronized鏉ョ‘淇濆畠浠箣闂寸殑鍚屾銆傚紑鍙戝伐鍏鋒垨紼嬪簭鍛樹嬌鐢ㄨ繖涓や釜鏂規硶寤虹珛婧愪笌鐩戝惉鑰呬箣闂寸殑浜嬩歡嫻?/
銆銆銆 Vector l;
銆銆銆銆EventObject e = new EventObject(this);
銆銆銆銆/* 棣栧厛瑕佹妸鐩戝惉鑰呮嫹璐濆埌l鏁扮粍涓紝鍐葷粨EventListeners鐨勭姸鎬佷互浼犻掍簨浠躲傝繖鏍鋒潵紜繚鍦ㄤ簨浠朵紶閫掑埌鎵鏈夌洃鍚呬箣鍓嶏紝宸叉帴鏀朵簡浜嬩歡鐨勭洰鏍囩洃鍚呯殑瀵瑰簲鏂規硶鏆備笉鐢熸晥銆?/
銆銆銆銆synchronized(this) {
銆銆銆銆銆銆l = (Vector)listeners.clone();
銆銆銆銆}
銆銆銆銆for (int i = 0; i < l.size(); i++) {
銆銆銆銆 /* 渚濇閫氱煡娉ㄥ唽鍦ㄧ洃鍚呴槦鍒椾腑鐨勬瘡涓洃鍚呭彂鐢熶簡modelChanged浜嬩歡錛?br>銆銆銆銆 騫舵妸浜嬩歡鐘舵佸璞浣滀負鍙傛暟浼犻掔粰鐩戝惉鑰呴槦鍒椾腑鐨勬瘡涓洃鍚?/
((ModelChangedListener)l.elementAt(i)).modelChanged(e);
銆銆銆銆}
銆銆銆 }
銆銆銆锝?/p>
]]>
]]>
涓涓敱c/C++緙栬瘧鐨勭▼搴忓崰鐢ㄧ殑鍐呭瓨鍒嗕負浠ヤ笅鍑犱釜閮ㄥ垎
1銆佹爤鍖猴紙stack錛夆旂敱緙栬瘧鍣ㄨ嚜鍔ㄥ垎閰嶉噴鏀撅紝瀛樻斁鍑芥暟鐨勫弬鏁板鹼紝灞閮ㄥ彉閲忕殑鍊肩瓑銆傚叾鎿嶄綔鏂瑰紡綾諱技浜庢暟鎹粨鏋勪腑鐨勬爤銆?br>2銆佸爢鍖猴紙heap錛夆斾竴鑸敱紼嬪簭鍛樺垎閰嶉噴鏀撅紝鑻ョ▼搴忓憳涓嶉噴鏀撅紝紼嬪簭緇撴潫鏃跺彲鑳界敱OS鍥炴敹銆傛敞鎰忓畠涓庢暟鎹粨鏋勪腑鐨勫爢鏄袱鍥炰簨錛屽垎閰嶆柟寮忓掓槸綾?/p>
浜屻佷緥瀛愮▼搴?br>榪欐槸涓涓墠杈堝啓鐨勶紝闈炲父璇︾粏
//main.cpp
int a=0; //鍏ㄥ眬鍒濆鍖栧尯
char *p1; //鍏ㄥ眬鏈垵濮嬪寲鍖?br> main()
{
intb;鏍?br> char s[]="abc"; //鏍?br> char *p2; //鏍?br> char *p3="123456"; //123456\0鍦ㄥ父閲忓尯錛宲3鍦ㄦ爤涓娿?br> static int c=0錛?nbsp; //鍏ㄥ眬錛堥潤鎬侊級鍒濆鍖栧尯
p1 = (char*)malloc(10);
p2 = (char*)malloc(20); //鍒嗛厤寰楁潵寰?0鍜?0瀛楄妭鐨勫尯鍩熷氨鍦ㄥ爢鍖恒?br> strcpy(p1,"123456"); //123456\0鏀懼湪甯擱噺鍖猴紝緙栬瘧鍣ㄥ彲鑳戒細灝嗗畠涓巔3鎵鍚?123456"浼樺寲鎴愪竴涓湴鏂廣?br>}
浜屻佸爢鍜屾爤鐨勭悊璁虹煡璇?br>2.1鐢寵鏂瑰紡
stack:
鐢辯郴緇熻嚜鍔ㄥ垎閰嶃備緥濡傦紝澹版槑鍦ㄥ嚱鏁頒腑涓涓眬閮ㄥ彉閲廼nt b;緋葷粺鑷姩鍦ㄦ爤涓負b寮杈熺┖闂?br>heap:
闇瑕佺▼搴忓憳鑷繁鐢寵錛屽茍鎸囨槑澶у皬錛屽湪c涓璵alloc鍑芥暟
濡俻1=(char*)malloc(10);
鍦–++涓敤new榪愮畻絎?br>濡俻2=(char*)malloc(10);
浣嗘槸娉ㄦ剰p1銆乸2鏈韓鏄湪鏍堜腑鐨勩?/p>
2.2
鐢寵鍚庣郴緇熺殑鍝嶅簲
鏍堬細鍙鏍堢殑鍓╀綑絀洪棿澶т簬鎵鐢寵絀洪棿錛岀郴緇熷皢涓虹▼搴忔彁渚涘唴瀛橈紝鍚﹀垯灝嗘姤寮傚父鎻愮ず鏍堟孩鍑恒?br>鍫嗭細棣栧厛搴旇鐭ラ亾鎿嶄綔緋葷粺鏈変竴涓褰曠┖闂插唴瀛樺湴鍧鐨勯摼琛紝褰撶郴緇熸敹鍒扮▼搴忕殑鐢寵鏃訛紝
浼氶亶鍘嗚閾捐〃錛屽鎵劇涓涓┖闂村ぇ浜庢墍鐢寵絀洪棿鐨勫爢緇撶偣錛岀劧鍚庡皢璇ョ粨鐐逛粠絀洪棽緇撶偣閾捐〃涓垹闄わ紝騫跺皢璇ョ粨鐐圭殑絀洪棿鍒嗛厤緇欑▼搴忥紝鍙﹀錛屽浜?/p>
2.4鐢寵鏁堢巼鐨勬瘮杈冿細
鏍?鐢辯郴緇熻嚜鍔ㄥ垎閰嶏紝閫熷害杈冨揩銆備絾紼嬪簭鍛樻槸鏃犳硶鎺у埗鐨勩?br>鍫?鏄敱new鍒嗛厤鐨勫唴瀛橈紝涓鑸熷害姣旇緝鎱紝鑰屼笖瀹規槗浜х敓鍐呭瓨紕庣墖,涓嶈繃鐢ㄨ搗鏉ユ渶鏂逛究.
鍙﹀錛屽湪WINDOWS涓嬶紝鏈濂界殑鏂瑰紡鏄敤Virtual Alloc鍒嗛厤鍐呭瓨錛屼粬涓嶆槸鍦ㄥ爢錛屼篃涓嶆槸鍦ㄦ爤,鑰屾槸鐩存帴鍦ㄨ繘紼嬬殑鍦板潃絀洪棿涓繚鐣欎竴鍧楀唴瀛橈紝铏界劧鐢?/p>
char *s2="bbbbbbbbbbbbbbbbb";
aaaaaaaaaaa鏄湪榪愯鏃跺埢璧嬪肩殑錛?br>鑰宐bbbbbbbbbb鏄湪緙栬瘧鏃跺氨紜畾鐨勶紱
浣嗘槸錛屽湪浠ュ悗鐨勫瓨鍙栦腑錛屽湪鏍堜笂鐨勬暟緇勬瘮鎸囬拡鎵鎸囧悜鐨勫瓧絎︿覆(渚嬪鍫?蹇?br>姣斿錛?br>#include
voidmain()
{
char a=1;
char c[]="1234567890";
char *p="1234567890";
a = c[1];
a = p[1];
return;
}
瀵瑰簲鐨勬眹緙栦唬鐮?br>10:a=c[1];
004010678A4DF1movcl,byteptr[ebp-0Fh]
0040106A884DFCmovbyteptr[ebp-4],cl
11:a=p[1];
0040106D8B55ECmovedx,dwordptr[ebp-14h]
004010708A4201moval,byteptr[edx+1]
004010738845FCmovbyteptr[ebp-4],al
絎竴縐嶅湪璇誨彇鏃剁洿鎺ュ氨鎶婂瓧絎︿覆涓殑鍏冪礌璇誨埌瀵勫瓨鍣╟l涓紝鑰岀浜岀鍒欒鍏堟妸鎸囬拡鍊艱鍒癳dx涓紝鍦ㄦ牴鎹甧dx璇誨彇瀛楃錛屾樉鐒舵參浜嗐?/p>
2.7灝忕粨錛?br>鍫嗗拰鏍堢殑鍖哄埆鍙互鐢ㄥ涓嬬殑姣斿柣鏉ョ湅鍑猴細
浣跨敤鏍堝氨璞℃垜浠幓楗閲屽悆楗紝鍙鐐硅彍錛堝彂鍑虹敵璇鳳級銆佷粯閽便佸拰鍚冿紙浣跨敤錛夛紝鍚冮ケ浜嗗氨璧幫紝涓嶅繀鐞嗕細鍒囪彍銆佹礂鑿滅瓑鍑嗗宸ヤ綔鍜屾礂紕椼佸埛閿呯瓑