锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 2. 灝介噺鍦ㄤ竴涓鍙ヤ腑鍋氬畾涔夊彉閲忓拰璧嬪箋?/p>
3. 鐪佺暐涓嶅繀瑕佺殑鍙橀噺瀹氫箟銆?br> 濡傛灉鍙橀噺鐨勫畾涔夊彲浠ヨ涓涓父閲忔浛浠o紝灝辯洿鎺ヤ嬌鐢ㄥ父閲忋?/p>
4. 浣跨敤Object璇硶瀵瑰璞¤祴鍊箋?br> Object鐨勮祴鍊艱娉曞湪鎿嶄綔澶嶆潅瀵硅薄鏃舵晥鐜囨洿楂樸?br> 渚嬪錛屽彲浠ュ皢涓嬮潰鐨勪唬鐮侊細 鏇挎崲鎴愶細 2. 緙撳瓨鍒涘緩鏃墮棿杈冮暱鐨勫璞°?br> 鑷畾涔夐珮綰у璞″拰Date銆丷egExp瀵硅薄鍦ㄦ瀯閫犳椂閮戒細娑堣楀ぇ閲忔椂闂淬傚鏋滃彲浠ュ鐢紝搴旈噰鐢ㄧ紦瀛樼殑鏂瑰紡銆?/p>
4.2.3 瀛楃涓叉搷浣?/strong> 2. 榪炴帴澶ч噺鐨勫瓧絎︿覆錛屽簲浣跨敤Array鐨刯oin鏂規硶銆?br> 濡傛灉鏄敹闆嗗瓧絎︿覆錛屾渶濂戒嬌鐢↗avaScript鏁扮粍緙撳瓨錛屾渶鍚庝嬌鐢╦oin鏂規硶榪炴帴璧鋒潵錛屽涓嬶細 2. 鑷畾涔夌殑瀵硅薄錛屾帹鑽愬畾涔夊拰浣跨敤toString()鏂規硶鏉ヨ繘琛岀被鍨嬭漿鎹€?br> 瀵逛簬鑷畾涔夌殑瀵硅薄錛屽鏋滃畾涔変簡toString()鏂規硶鏉ヨ繘琛岀被鍨嬭漿鎹㈢殑璇濓紝鎺ㄨ崘鏄懼紡璋冪敤toString()銆傚洜涓哄唴閮ㄧ殑鎿嶄綔鍦ㄥ皾璇曟墍鏈夊彲鑳芥т箣鍚庯紝浼氬皾璇曞璞$殑toString()鏂規硶灝濊瘯鑳藉惁杞寲涓篠tring錛屾墍浠ョ洿鎺ヨ皟鐢ㄨ繖涓柟娉曟晥鐜囦細鏇撮珮銆?/p>
4.2.5 寰幆鐨勪紭鍖?br> 1. 灝藉彲鑳藉皯浣跨敤for(in)寰幆銆?br> 鍦↗avaScript涓紝鎴戜滑鍙互浣跨敤for(;;),while(),for(in)涓夌寰幆錛屼簨瀹炰笂錛岃繖涓夌寰幆涓璮or(in)鐨勬晥鐜囨瀬宸紝鍥犱負浠栭渶瑕佹煡璇㈡暎鍒楅敭錛屽彧瑕佸彲浠ュ氨搴旇灝介噺灝戠敤銆?/p>
2. 棰勫厛璁$畻collection鐨刲ength銆?br> 濡傦細灝?br> for (var i = 0; i < collection.length; i++) 3. 灝介噺鍑忓皯寰幆鍐呯殑鎿嶄綔銆?br> 寰幆鍐呯殑姣忎釜鎿嶄綔錛岄兘浼氳鏀懼ぇ涓哄驚鐜鏁扮殑鍊嶆暟銆傛墍浠ワ紝澶у驚鐜唴寰皬鐨勬敼榪涳紝鍦ㄦц兘鐨勬暣浣撴彁鍗囦笂閮芥槸鍙鐨勩?/p>
4. 浣跨敤寰幆鏇夸唬閫掑綊銆?br>鐩告瘮寰幆錛岄掑綊鐨勬晥鐜囨洿宸竴浜涖傞掑綊鐨勪紭鐐規槸鍦ㄥ艦寮忎笂鏇磋嚜鐒朵竴浜涖傛墍浠ワ紝鍦ㄤ笉褰卞搷浠g爜鐨勭淮鎶ゆх殑鍓嶆彁涓嬶紝鐢ㄥ驚鐜浛浠i掑綊銆?/p>
4.2.6 鍏跺畠鏂歸潰 2. 灝介噺涓嶈浣跨敤eval銆?br>浣跨敤eval錛岀浉褰撲簬鍦ㄨ繍琛屾椂鍐嶆璋冪敤瑙i噴寮曟搸錛屽浼犲叆鐨勫唴瀹硅В閲婅繍琛岋紝闇瑕佹秷鑰楀ぇ閲忔椂闂淬?/p>
3. 浣跨敤prototype浠f浛closure銆?br> 浣跨敤closure鍦ㄦц兘鍜屽唴瀛樻秷鑰椾笂閮芥槸涓嶅埄鐨勩傚鏋渃losure浣跨敤閲忚繃澶э紝榪欏氨浼氭垚涓轟竴涓棶棰樸傛墍浠ワ紝灝介噺灝嗭細 4. 閬垮厤浣跨敤with璇彞銆?br> With璇彞涓存椂鎵╁睍瀵硅薄鏌ユ壘鐨勮寖鍥達紝鑺傜渷浜嗘枃瀛楃殑褰曞叆鏃墮棿錛屼絾浠樺嚭浜嗘洿澶氱殑鎵ц鏃墮棿銆傚洜涓烘瘡涓粰鍑虹殑鍚嶇О閮借鍦ㄥ叏灞鑼冨洿鏌ユ壘銆傛墍浠ワ紝鍙互灝嗕笅闈㈢殑浠g爜錛?/p>
鍙樻洿涓猴細 4.3.2 紱葷嚎鎿嶄綔澶у瀷鐨凞OM鏍?br> 鍦ㄦ坊鍔犱竴涓鏉傜殑DOM鏍戞椂錛屽彲浠ュ厛鏋勯狅紝鏋勯犵粨鏉熷悗鍐嶅皢鍏舵坊鍔犲埌DOM鏁扮殑閫傚綋鑺傜偣銆傝繖鑳藉鑺傜渷鐣岄潰鍒鋒柊鐨勬椂闂淬?/p>
鍚屾牱錛屽湪鍑嗗緙栬緫涓涓鏉傜殑鏍戞椂錛屽彲浠ュ厛灝嗘爲浠嶥OM鏍戜笂鍒犻櫎錛岀瓑緙栬緫緇撴潫鍚庡啀娣誨姞鍥炴潵銆?br> 2. 緙撳啿欏甸潰杈撳嚭 3. 浣跨敤Server.Transfer閲嶅畾鍚戣姹?br> 浣跨敤Server.Transfer鏂規硶閲嶅畾鍚戣姹備紭浜嶳esponse.Redirect鏂規硶銆傚師鍥犳槸Response.Redirect浼氬悜Broswer鍥為佷竴涓搷搴斿ご錛屽湪鍝嶅簲澶翠腑鎸囧嚭閲嶅畾鍚戠殑URL錛屼箣鍚嶣rower浣跨敤鏂扮殑URL閲嶆柊鍙戝嚭璇鋒眰銆傝孲erver.Transfer鏂規硶鐩存帴鏄竴涓畝鍗曠殑鏈嶅姟绔皟鐢紝瀹屽叏娌℃湁榪欎簺寮閿錛?br> 闇瑕佹敞鎰廠erver.Transfer鏈夊眬闄愭э細絎竴錛屽畠浼氳煩榪囧畨鍏ㄦ鏌ワ紱絎簩錛屽彧閫傜敤浜庡湪鍚屼竴Web搴旂敤鍐呯殑欏甸潰闂磋煩杞?br> 2. 鑰冭檻緇欎笉闇瑕佽繑鍥炲肩殑Web鏂規硶鎴栬繙紼嬪璞$殑鏂規硶娣誨姞OneWay灞炴?br> 榪欑妯″紡鑳借Web Server璋冪敤涔嬪悗灝辯珛鍗寵繑鍥炪傚彲鏍規嵁瀹為檯鎯呭喌鍐沖畾鏄惁浣跨敤榪欑鏂規硶銆?/p>
3. 浣跨敤宸ヤ綔闃熷垪 2. 涓嶈渚濊禆綰跨▼鏁版嵁妲芥垨綰跨▼闈欐佸彉閲?br> 鐢變簬鎵ц璇鋒眰鐨勭嚎紼嬫槸ASP.NET thread pool涓殑宸ヤ綔綰跨▼錛屽悓涓涓狢lient鐨勪袱嬈¤姹備笉涓瀹氱敱鐩稿悓鐨勭嚎紼嬫潵澶勭悊銆? 3. 閬垮厤闃誨澶勭悊璇鋒眰鐨勭嚎紼?br>鍙傝?閬垮厤闃誨鍜岄暱鏃墮棿鐨勪綔涓?灝忚妭銆?/p>
4. 閬垮厤寮傛璋冪敤 浣跨敤@Page寮鍏蟲墦寮欏甸潰杈撳嚭緙撳啿鏈哄埗錛?br> <%@ Page Buffer = "true" %> 浣跨敤Web.config鎴朚achine.config閰嶇疆鏂囦歡鐨?lt;pages>鑺傜偣錛?br> <pages buffer="true" …> 2. 鍦ㄦ伆褰撶殑鏃墮棿鐐瑰垵濮嬪寲鎺т歡灞炴?br> ASP.NET鐨勬帶浠跺湪鎵ц鏋勯犲嚱鏁般佸垵濮嬪寲鐨勬湡闂磋緗殑灞炴т笉浼氳璺熻釜鍙樺寲錛涜屽湪鍒濆鍖栭樁孌典箣鍚庡灞炴х殑淇敼閮戒細琚窡韙紝騫舵渶緇堣褰曞埌IE欏甸潰鐨刜_VIEWSTATE涔嬩腑銆傛墍浠ワ紝閫夋嫨鍚堢悊鐨勫垵濮嬪寲鎺т歡灞炴х殑鎵ц鐐癸紝鑳芥湁鏁堢殑鍑忓皬欏甸潰灝哄銆?/p>
3. 璋ㄦ厧閫夋嫨鏀懼埌ViewState涓殑鍐呭 榪欓噷寮鴻皟涓涓嬪湪鏂規硶涔嬮棿浼犻掕繛鎺ョ殑鍗卞錛氭浘緇忓湪鍘嬪姏嫻嬭瘯涓亣鍒拌繃涓涓祴璇曟渚嬶紝褰撳澶х敤鎴鋒暟鐨勬椂鍊欙紝榪欎釜妗堜緥瑕佹瘮鍒殑妗堜緥鏃╁緢涔呭氨鐢ㄦ帀榪炴帴姹犱腑鐨勬墍鏈夎繛鎺ャ傜粡鍒嗘瀽錛屽氨鏄洜涓篈鏂規硶鎶婁竴涓墦寮鐨勮繛鎺ヤ紶閫掑埌浜咮鏂規硶錛岃孊鏂規硶鍙堣皟鐢ㄤ簡涓涓嚜琛屾墦寮鍜屽叧闂繛鎺ョ殑C鏂規硶銆傚湪A鏂規硶鐨勬暣涓繍琛屾湡闂達紝瀹冭嚦灝戦渶瑕佸崰鐢ㄤ袱鏉¤繛鎺ユ墠鑳藉鎴愬姛宸ヤ綔錛屽茍涓斿叾涓殑涓鏉¤繛鎺ュ崰鐢ㄦ椂闂磋繕鐗瑰埆闀匡紝鎵浠ラ犳垚榪炴帴姹犺祫婧愮揣寮狅紝褰卞搷浜嗘暣涓郴緇熺殑鍙幾緙╂э紒
4.1 JScript鎬ц兘浼樺寲鐨勫熀鏈師鍒?/strong>
1. 灝藉彲鑳藉皯鍦板噺灝戞墽琛屾鏁般傛瘯绔熷瑙i噴璇█鏉ヨ錛屾瘡涓涓墽琛屾楠わ紝閮介渶瑕佸拰瑙i噴寮曟搸鍋氫竴嬈′氦浜掋?br> 2. 灝藉彲鑳戒嬌鐢ㄨ璦鍐呯疆鐨勫姛鑳斤紝姣斿涓查摼鎺ャ?br> 3. 灝藉彲鑳戒嬌鐢ㄧ郴緇熸彁渚涚殑API鏉ヨ繘琛屼紭鍖栥傚洜涓鴻繖浜汚PI鏄紪璇戝ソ鐨勪簩榪涘埗浠g爜錛屾墽琛屾晥鐜囧緢楂樸?br> 4. 涔﹀啓鏈姝g‘鐨勪唬鐮併傚閿欏姛鑳芥槸瑕佷粯鍑烘ц兘浠d環鐨勩?br>
4.2 JScript璇█鏈韓鐨勪紭鍖?/strong>
4.2.1 鍙橀噺
1. 灝介噺浣跨敤灞閮ㄥ彉閲忋?br> 鍥犱負鍏ㄥ眬鍙橀噺鍏跺疄鏄叏灞瀵硅薄鐨勬垚鍛橈紝鑰屽眬閮ㄥ彉閲忓湪鏍堜笂瀹氫箟錛屼紭鍏堟煡鎵撅紝鎬ц兘鐩稿浜庡叏灞鍙橀噺瑕侀珮銆?/p>
car = new Object();
car.make = "Honda";
car.model = "Civic";
car.transmission = "manual";
car.miles = 100000;
car.condition = "needs work";
car =
{
make: "Honda",
model: "Civic",
transmission: "manual",
miles: 100000,
condition: "needs work"
}
4.2.2 瀵硅薄緙撳瓨
1. 緙撳瓨瀵硅薄鏌ユ壘鐨勪腑闂寸粨鏋溿?br> 鍥犱負JavaScript鐨勮В閲婃э紝鎵浠.b.c.d.e錛岄渶瑕佽繘琛岃嚦灝?嬈℃煡璇㈡搷浣滐紝鍏堟鏌鍐嶆鏌涓殑b錛屽啀媯鏌涓殑c錛屽姝ゅ線涓嬨傛墍浠ュ鏋滆繖鏍風殑琛ㄨ揪寮忛噸澶嶅嚭鐜幫紝鍙鍙兘錛屽簲璇ュ敖閲忓皯鍑虹幇榪欐牱鐨勮〃杈懼紡錛屽彲浠ュ埄鐢ㄥ眬閮ㄥ彉閲忥紝鎶婂畠鏀懼叆涓涓復鏃剁殑鍦版柟榪涜鏌ヨ銆?/p>
1. 浣跨敤"+=" 榪藉姞瀛楃涓詫紝浣跨敤"+"鏉ヨ繛鎺ュ瓧絎︿覆銆?br> 濡傛灉鏄拷鍔犲瓧絎︿覆錛屾渶濂戒嬌鐢╯+=anotherStr鎿嶄綔錛岃屼笉鏄浣跨敤s=s+anotherStr銆?br> 濡傛灉瑕佽繛鎺ュ涓瓧絎︿覆錛屽簲璇ヤ嬌鐢?+"錛屽錛?br> s+=a;
s+=b;
s+=c;
搴旇鍐欐垚
s+=a + b + c錛?/p>
var buf = new Array();
for (var i = 0; i < 100; i++)
{
buf.push(i.toString());
}
var all = buf.join("");
4.2.4 綾誨瀷杞崲
1. 浣跨敤Math.floor()鎴栬匨ath.round()灝嗘誕鐐規暟杞崲鎴愭暣鍨嬨?br> 嫻偣鏁拌漿鎹㈡垚鏁村瀷錛岃繖涓洿瀹規槗鍑洪敊錛屽緢澶氫漢鍠滄浣跨敤parseInt()錛屽叾瀹瀙arseInt()鏄敤浜庡皢瀛楃涓茶漿鎹㈡垚鏁板瓧錛岃屼笉鏄誕鐐規暟鍜屾暣鍨嬩箣闂寸殑杞崲錛屾垜浠簲璇ヤ嬌鐢∕ath.floor()鎴栬匨ath.round()銆?br>瀵硅薄鏌ユ壘涓殑闂涓嶄竴鏍鳳紝Math鏄唴閮ㄥ璞★紝鎵浠ath.floor()鍏跺疄騫舵病鏈夊灝戞煡璇㈡柟娉曞拰璋冪敤鐨勬椂闂達紝閫熷害鏄渶蹇殑銆?/p>
鏇挎崲鎴愶細
for (var i = 0, len = collection.length; i < len; i++)
鏁堟灉浼氭洿濂斤紝灝ゅ叾鏄湪澶у驚鐜腑銆?/p>
1. 灝介噺浣跨敤璇█鍐呯疆鐨勮娉曘?br> "var arr = […];"鍜?var arr = new Array(…);"鏄瓑鏁堢殑錛屼絾鏄墠鑰呯殑鏁堣兘浼樹簬鍚庤呫傚悓鏍鳳紝"var foo = {};"鐨勬柟寮忎篃姣?var foo = new Object();"蹇紱"var reg = /../;"瑕佹瘮"var reg=new RegExp()"蹇?/p>
this.methodFoo = function()
鏇挎崲鎴愶細
MyClass.protoype.methodFoo = function()
鍜宑losure瀛樺湪浜庡璞″疄渚嬩箣涓笉鍚岋紝prototype瀛樺湪浜庣被涓紝琚綾葷殑鎵鏈夌殑瀵硅薄瀹炰緥鍏變韓銆?/p>
with (document.formname)
{
field1.value = "one";
field2.value = "two";
}
var form = document.formname;
form.field1.value = "one";
form.field2.value = "two";
4.3 DOM鐩稿叧
4.3.1 鍒涘緩DOM鑺傜偣
鐩告瘮杈冮氳繃document.write鏉ョ粰欏甸潰鐢熸垚鍐呭錛屾壘涓涓鍣ㄥ厓绱狅紙姣斿鎸囧畾涓涓猟iv鎴栬卻pan錛夊茍璁劇疆浠栦滑鐨刬nnerHTML鏁堢巼鏇撮珮銆?br> 鑰岃緗甶nnerHTML鐨勬柟寮忔瘮閫氳繃createElement鏂規硶鍒涘緩鑺傜偣鐨勬晥鐜囨洿楂樸備簨瀹炰笂錛岃緗厓绱犵殑innerHTML鏄垱寤鴻妭鐐規晥鐜囨渶楂樼殑涓縐嶆柟寮忋?br> 濡傛灉蹇呴』浣跨敤createElement鏂規硶錛岃屽鏋滄枃妗d腑瀛樺湪鐜版垚鐨勬牱鏉胯妭鐐癸紝搴旇鏄敤cloneNode()鏂規硶銆傚洜涓轟嬌鐢╟reateElement()鏂規硶涔嬪悗錛屼綘闇瑕佽緗嬈″厓绱犵殑灞炴э紝浣跨敤cloneNode()鍒欏彲浠ュ噺灝戝睘鎬х殑璁劇疆嬈℃暟銆傚悓鏍鳳紝濡傛灉闇瑕佸垱寤哄緢澶氬厓绱狅紝搴旇鍏堝噯澶囦竴涓牱鏉胯妭鐐廣?/p>
4.3.3 瀵硅薄鏌ヨ
浣跨敤[""]鏌ヨ瑕佹瘮.item()鏇村揩銆傝皟鐢?item()澧炲姞浜嗕竴嬈℃煡璇㈠拰鍑芥暟鐨勮皟鐢ㄣ?br>
4.3.4 瀹氭椂鍣?br> 濡傛灉閽堝鐨勬槸涓嶆柇榪愯鐨勪唬鐮侊紝涓嶅簲璇ヤ嬌鐢╯etTimeout錛岃屽簲璇ョ敤setInterval銆俿etTimeout姣忔瑕侀噸鏂拌緗竴涓畾鏃跺櫒銆?br>
4.4 鍏朵粬
1. 灝介噺鍑忓皬鏂囦歡灝哄銆?br> 灝咼Script鏂囦歡涓棤鍏崇殑絀鴻銆佺┖鏍箋佹敞閲婂幓鎺夛紝鏈夊姪浜庡噺灝廕S鏂囦歡鐨勫昂瀵革紝鎻愰珮涓嬭澆鐨勬椂闂淬傦紙鍙互閫氳繃宸ュ叿鏉ユ敮鎸佷唬鐮佸彂甯冿級
2. 灝介噺涓嶈鍦ㄥ悓涓涓狿age鍐呭悓鏃跺紩鐢↗Script鍜孷BScript寮曟搸
3. 灝哖age鍐呯殑JScript縐誨叆鍒板崟鐙殑JS鏂囦歡涓?br> 4. 灝哖age鍐呯殑JScript鏀劇疆鍦≒age鐨勬渶涓嬮潰錛屾湁鍔╀簬鎻愰珮欏甸潰鐨勫搷搴旈熷害銆?br> 5. 鍒╃敤cache錛屽噺灝慗Script鏂囦歡鐨勪笅杞芥鏁?br> 6. 鍦℉TML鍐呬功鍐橨Script鏂囦歡鐨刄RL鏃訛紝娉ㄦ剰緇熶竴澶у皬鍐欍傝繖鏍峰彲浠ュ埄鐢ㄥ墠闈RL緙撳瓨鐨勬枃浠躲?br> 7. 鎺ㄨ崘浣跨敤JScript Lint媯鏌avascript浠g爜銆傛瘯绔燂紝瀵笿Script寮曟搸鏉ヨ錛屾渶瀹規槗鐞嗚В鐨凧Script浠g爜錛屾墽琛岀殑鏁堢巼涔熷氨鏈楂樸?br>
]]>
浣跨敤涓嬮潰鐨勬柟娉曞彲浠ュ噺灝慦eb鏈嶅姟鍣ㄥ拰Browser涔嬮棿鐨勫線榪旇紼嬶細
1. 涓築rowser鍚敤緙撳瓨
濡傛灉鍛堢幇鐨勫唴瀹規槸闈欐佺殑鎴栧彉鍖栧懆鏈熻緝闀匡紝搴斿惎鐢˙rowser緙撳瓨錛岄伩鍏嶅彂鍑哄啑浣欑殑http璇鋒眰銆?/p>
濡傛灉鍙兘錛屽垯灝介噺緙撳啿欏甸潰杈撳嚭錛屽鐞嗙粨鏉熷悗鍐嶄竴嬈′紶閫佸埌瀹㈡埛绔紝榪欏彲浠ラ伩鍏嶉綣佷紶閫掑皬鍧楀唴瀹規墍閫犳垚鐨勫嬈$綉緇滀氦浜掋傜敱浜庤繖縐嶆柟寮忓湪欏甸潰澶勭悊緇撴潫涔嬪墠瀹㈡埛绔棤娉曠湅鍒伴〉闈㈠唴瀹癸紝鍥犳濡傛灉涓涓〉闈㈢殑灝哄杈冨ぇ鐨勮瘽錛屽彲鑰冭檻浣跨敤Response.Flush鏂規硶銆傝鏂規硶寮哄埗杈撳嚭榪勪粖涓烘鍦ㄧ紦鍐插尯涓殑鍐呭錛屼綘搴斿綋閲囩敤鍚堢悊鐨勭畻娉曟帶鍒惰皟鐢≧esponse.Flush鏂規硶鐨勬鏁般?/p>
3.2 閬垮厤闃誨鍜岄暱鏃墮棿鐨勪綔涓?br> 濡傛灉闇瑕佽繍琛岄樆濉炴垨闀挎椂闂磋繍琛岀殑鎿嶄綔錛屽彲浠ヨ冭檻浣跨敤寮傛璋冪敤鐨勬満鍒訛紝浠ヤ究Web鏈嶅姟鍣ㄨ兘澶熺戶緇鐞嗗叾瀹冪殑璇鋒眰銆?br> 1. 浣跨敤寮傛鏂瑰紡璋冪敤Web鏈嶅姟鍜岃繙紼嬪璞?br> 鍙鏈夊彲鑳藉氨瑕侀伩鍏嶅湪璇鋒眰鐨勫鐞嗚繃紼嬩腑瀵筗eb鏈嶅姟鍜岃繙紼嬪璞$殑鍚屾璋冪敤錛屽洜涓哄畠鍗犵敤鐨勬槸鐨凙SP.NET 綰跨▼姹犱腑鐨勫伐浣滅嚎紼嬶紝榪欏皢鐩存帴褰卞搷Web鏈嶅姟鍣ㄥ搷搴斿叾瀹冭姹傜殑鑳藉姏銆?/p>
灝嗕綔涓氭彁浜ゅ埌鏈嶅姟鍣ㄤ笂鐨勫伐浣滈槦鍒椾腑銆傚鎴風閫氳繃鍙戦佽姹傛潵杞浣滀笟鐨勬墽琛岀粨鏋溿?br>
3.3 浣跨敤緙撳瓨
緙撳瓨鑳藉湪寰堝ぇ紼嬪害涓婂喅瀹欰SP.NET搴旂敤鐨勬渶緇堟ц兘銆侫sp.net鏀寔欏甸潰杈撳嚭緙撳瓨鍜岄〉闈㈤儴鍒嗙紦瀛橈紝騫舵彁渚汣ache API錛屼緵搴旂敤紼嬪簭緙撳瓨鑷繁鐨勬暟鎹傛槸鍚︿嬌鐢ㄧ紦瀛樺彲鑰冭檻涓嬮潰鐨勮鐐癸細
1. 璇嗗埆鍒涘緩涓庤闂唬浠瘋緝澶х殑鏁版嵁
2. 璇勪及闇瑕佺紦瀛樻暟鎹殑鏄撳彉鎬?br> 3. 璇勪及鏁版嵁鐨勪嬌鐢ㄩ嬈?br> 4. 灝嗚緙撳瓨鏁版嵁涓槗鍙樻暟鎹拰涓嶅彉鏁版嵁鍒嗙錛屽彧緙撳瓨涓嶅彉鏁版嵁
5. 閫夋嫨鍚堥傜殑緙撳瓨鏈哄埗錛堥櫎Asp.net Cache澶栵紝Application state鍜孲ession state涔熷彲浠ヤ綔涓虹紦瀛樹嬌鐢級
3.4 澶氱嚎紼?br> 1. 閬垮厤鍦ㄨ姹傚鐞嗚繃紼嬩腑鍒涘緩綰跨▼
鍦ㄦ墽琛岃姹傜殑榪囩▼涓垱寤虹嚎紼嬫槸涓縐嶄唬浠瘋緝澶х殑鎿嶄綔錛屼細涓ラ噸褰卞搷Web Server鐨勬ц兘銆傚鏋滃悗緇殑鎿嶄綔蹇呴』鐢ㄧ嚎紼嬪畬鎴愶紝寤鴻閫氳繃thread pool鏉ュ垱寤?綆$悊綰跨▼銆?/p>
榪欏拰1鐨勬儏鍐電被浼箋傚紓姝ヨ皟鐢ㄤ細瀵艱嚧鍒涘緩鏂扮殑綰跨▼錛屽鍔犳湇鍔″櫒鐨勮礋鎷呫傛墍浠ワ紝濡傛灉娌℃湁騫跺彂鐨勪綔涓氳鎵ц錛屽氨涓嶈鎵ц寮傛璋冪敤銆?br>
3.5 緋葷粺璧勬簮
1. 鑰冭檻瀹炵幇璧勬簮姹犱互鎻愬崌鎬ц兘
2. 鏄庣‘鍦拌皟鐢―ispose鎴朇lose閲婃斁緋葷粺璧勬簮
3. 涓嶈緙撳瓨鎴栭暱鏃墮棿鍗犵敤璧勬簮姹犱腑鐨勮祫婧?br> 4. 灝藉彲鑳芥櫄鐨勭敵璇鳳紝灝藉彲鑳芥棭鐨勯噴鏀?br>
3.6 欏甸潰澶勭悊
1. 灝介噺鍑忓皬Page鐨勫昂瀵?br> 鍖呮嫭緙╃煭鎺т歡鐨勫悕縐般丆SS鐨刢lass鐨勫悕縐般佸幓鎺夋棤璋撶┖琛屽拰絀烘牸銆佺鐢ㄤ笉闇瑕佺殑ViewState
2. 鍚敤欏甸潰杈撳嚭鐨勭紦鍐插尯錛圔uffer錛?br> 濡傛灉Buffer鐨勬満鍒惰鍏抽棴錛屽彲浠ョ敤涓嬮潰鐨勬柟娉曟墦寮銆?br> 浣跨敤紼嬪簭鎵撳紑欏甸潰杈撳嚭緙撳瓨錛?br> Response.BufferOutput = true;
3. 鍒╃敤Page.IsPostBack浼樺寲欏甸潰杈撳嚭
4. 閫氳繃鍒嗙欏甸潰鐨勪笉鍚岀殑鍐呭錛屾潵鎻愰珮緙撳瓨鏁堢巼鍜屽噺灝戝憟鐜扮殑鏃墮棿
5. 浼樺寲澶嶆潅鍜屼唬浠瘋緝澶х殑寰幆
6. 鍚堢悊鍒╃敤瀹㈡埛绔殑璁$畻璧勬簮錛屽皢涓浜涙搷浣滆漿縐誨埌瀹㈡埛绔繘琛?br>
3.7 ViewState
ViewState鏄疉sp.net涓烘湇鍔$鎺т歡鍦ㄩ〉闈㈠洖浼犱箣闂磋窡韙姸鎬佷俊鎭岃璁$殑涓縐嶆満鍒躲?br> 1. 鍏抽棴ViewState
濡傛灉涓嶉渶瑕佽窡韙〉闈㈢姸鎬侊紝渚嬪欏甸潰涓嶄細 鍥炰紶錛圥ostBack錛夈佷笉闇瑕佸鐞嗘湇鍔$鎺т歡浜嬩歡鎴栬呮瘡嬈¢〉闈㈠埛鏂版椂閮戒細閲嶆柊璁$畻鎺т歡鍐呭錛岄偅涔堝氨涓嶉渶瑕佺敤ViewState鏉ヨ褰曢〉闈㈢姸鎬佷簡銆傚彲浠ュ鐗瑰畾鐨刉ebControl璁劇疆EnableViewState灞炴э紝涔熷彲浠ュ湪欏甸潰涓綰ц緗細
<%@ Page EnableViewState="false" %>
鏀懼埌ViewState涓殑鍐呭浼氳搴忓垪鍖?鍙嶅簭鍒楀寲錛孉sp.net涓篠tring銆両nteger銆丅oolean絳夊熀鏈被鍨嬬殑搴忓垪鍖栧仛浜嗕紭鍖栵紝濡傛灉Array銆丄rrayList銆丠ashTable瀛樺偍鐨勬槸鍩烘湰綾誨瀷鏁堢巼涔熻緝楂橈紝浣嗗叾瀹冪被鍨嬪垯闇瑕佹彁渚涚被鍨嬭漿鎹㈠櫒錛圱ype Converter錛夛紝鍚﹀垯灝嗕嬌鐢ㄤ唬浠鋒槀璐電殑浜岃繘鍒跺簭鍒楀寲紼嬪簭銆?br>
]]>
2.1 搴旂敤Ado.net鐨勪竴浜涙濊冨師鍒?/strong>
1. 鏍規嵁鏁版嵁浣跨敤鐨勬柟寮忔潵璁捐鏁版嵁璁塊棶灞?br> 2. 緙撳瓨鏁版嵁錛岄伩鍏嶄笉蹇呰鐨勬搷浣?br> 3. 浣跨敤鏈嶅姟甯愭埛榪涜榪炴帴
4. 蹇呰鏃剁敵璇鳳紝灝芥棭閲婃斁
5. 鍏抽棴鍙叧闂殑璧勬簮
6. 鍑忓皯寰榪?br> 7. 浠呰繑鍥為渶瑕佺殑鏁版嵁
8. 閫夋嫨閫傚綋鐨勪簨鍔$被鍨?br> 9. 浣跨敤瀛樺偍榪囩▼
2.2 Connection
鏁版嵁搴撹繛鎺ユ槸涓縐嶅叡浜祫婧愶紝騫朵笖鎵撳紑鍜屽叧闂殑寮閿杈冨ぇ銆侫do.net榛樿鍚敤浜嗚繛鎺ユ睜鏈哄埗錛屽叧闂繛鎺ヤ笉浼氱湡鐨勫叧闂墿鐞嗚繛鎺ワ紝鑰屽彧鏄妸榪炴帴鏀懼洖鍒拌繛鎺ユ睜涓傚洜涓烘睜涓叡浜殑榪炴帴璧勬簮濮嬬粓鏄湁闄愮殑錛屽鏋滃湪浣跨敤榪炴帴鍚庝笉灝藉揩鍏抽棴榪炴帴錛岄偅涔堝氨鏈夊彲鑳藉鑷寸敵璇瘋繛鎺ョ殑綰跨▼琚樆濉炰綇錛屽獎鍝嶆暣涓郴緇熺殑鎬ц兘琛ㄧ幇銆?br> 2.2.1 鍦ㄦ柟娉曚腑鎵撳紑鍜屽叧闂繛鎺?/strong>
榪欎釜鍘熷垯鏈夊嚑灞傚惈涔夛細
1. 涓昏鐩殑鏄負浜嗗仛鍒板繀瑕佹椂鐢寵鍜屽敖鏃╅噴鏀?br> 2. 涓嶈鍦ㄧ被鐨勬瀯閫犲嚱鏁頒腑鎵撳紑榪炴帴銆佸湪鏋愭瀯鍑芥暟涓噴鏀捐繛鎺ャ傚洜涓鴻繖灝嗕緷璧栦簬鍨冨溇鍥炴敹錛岃屽瀮鍦懼洖鏀跺彧鍙楀唴瀛樺獎鍝嶏紝鍥炴敹鏃舵満涓嶅畾
3. 涓嶈鍦ㄦ柟娉曚箣闂翠紶閫掕繛鎺ワ紝榪欏線寰瀵艱嚧榪炴帴淇濇寔鎵撳紑鐨勬椂闂磋繃闀?/p>
2.2.2 鏄懼紡鍏抽棴榪炴帴
Connection瀵硅薄鏈韓鍦ㄥ瀮鍦懼洖鏀舵椂鍙互琚叧闂紝鑰屼緷璧栧瀮鍦懼洖鏀舵槸寰堜笉濂界殑絳栫暐銆傛帹鑽愪嬌鐢╱sing璇彞鏄懼紡鍏抽棴榪炴帴錛屽涓嬩緥錛?nbsp;using (SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
} // Dispose is automatically called on the conn variable here
2.2.3 紜繚榪炴帴姹犲惎鐢?br> Ado.net鏄負姣忎釜涓嶅悓鐨勮繛鎺ヤ覆寤虹珛榪炴帴姹狅紝鍥犳搴旇紜繚榪炴帴涓蹭笉浼氬嚭鐜頒笌鍏蜂綋鐢ㄦ埛鐩稿叧鐨勪俊鎭傚彟澶栵紝瑕佹敞鎰忚繛鎺ヤ覆鏄ぇ灝忓啓鏁忔劅鐨勩?br> 2.2.4 涓嶈緙撳瓨榪炴帴
渚嬪錛屾妸榪炴帴緙撳瓨鍒癝ession鎴朅pplication涓傚湪鍚敤榪炴帴姹犵殑鎯呭喌涓嬶紝榪欑鍋氭硶娌℃湁浠諱綍鎰忎箟銆?br> 2.3 Command
2.3.1 浣跨敤ExecuteScalar鍜孍xecuteNonQuery
濡傛灉鎯寵繑鍥炲儚Count(*)銆丼um(Price)鎴朅vg(Quantity)閭f牱鐨勫崟鍊鹼紝鍙互浣跨敤ExecuteScalar鏂規硶銆侲xecuteScalar榪斿洖絎竴琛岀涓鍒楃殑鍊鹼紝灝嗙粨鏋滈泦浣滀負鏍囬噺鍊艱繑鍥炪傚洜涓哄崟鐙竴姝ュ氨鑳藉畬鎴愶紝鎵浠xecuteScalar涓嶄粎綆鍖栦簡浠g爜錛岃繕鎻愰珮浜嗘ц兘銆?br> 浣跨敤涓嶈繑鍥炶鐨凷QL璇彞鏃訛紝渚嬪淇敼鏁版嵁錛圛NSERT銆乁PDATE鎴朌ELETE錛夋垨浠呰繑鍥炶緭鍑哄弬鏁版垨榪斿洖鍊鹼紝璇蜂嬌鐢‥xecuteNonQuery銆傝繖閬垮厤浜嗙敤浜庡垱寤虹┖DataReader鐨勪換浣曚笉蹇呰澶勭悊銆?br> 2.3.2 浣跨敤Prepare
褰撻渶瑕侀噸澶嶆墽琛屽悓涓SQL璇彞澶氭錛屽彲鑰冭檻浣跨敤Prepare鏂規硶鎻愬崌鏁堢巼銆傞渶瑕佹敞鎰忕殑鏄紝濡傛灉鍙槸鎵ц涓嬈℃垨涓ゆ錛屽垯瀹屽叏娌℃湁蹇呰銆備緥濡傦細cmd.CommandText = "insert into Table1 ( Col1, Col2 ) values ( @val1, @val2 )";
cmd.Parameters.Add( "@val1", SqlDbType.Int, 4, "Col1" );
cms.Parameters.Add( "@val2", SqlDbType.NChar, 50, "Col2");
cmd.Parameters[0].Value = 1;
cmd.Parameters[1].Value = "XXX";
cmd.Prepare();
cmd.ExecuteNonQuery();
cmd.Parameters[0].Value = 2;
cmd.Parameters[1].Value = "YYY";
cmd.ExecuteNonQuery();
cmd.Parameters[0].Value = 3;
cmd.Parameters[1].Value = "ZZZ";
cmd.ExecuteNonQuery();
2.3.3 浣跨敤緇戝畾鍙橀噺 鈽?br> SQL璇彞闇瑕佸厛琚紪璇戞垚鎵ц璁″垝錛岀劧鍚庡啀鎵ц銆傚鏋滀嬌鐢ㄧ粦瀹氬彉閲忕殑鏂瑰紡錛岄偅涔堣繖涓墽琛岃鍒掑氨鍙互琚悗緇墽琛岀殑SQL璇彞鎵澶嶇敤銆傝屽鏋滅洿鎺ユ妸鍙傛暟鍚堝茍鍒頒簡SQL璇彞涓紝鐢變簬鍙傛暟鍊煎崈鍙樹竾鍖栵紝鎵ц璁″垝灝遍毦浠ヨ澶嶇敤浜嗐備緥濡備笂闈repare涓鑺傜粰鍑虹殑紺轟緥錛屽鏋滄妸鍙傛暟鍊肩洿鎺ュ啓鍒癷nsert璇彞涓紝閭d箞涓婇潰鐨勫洓嬈¤皟鐢ㄥ皢闇瑕佺紪璇戝洓嬈℃墽琛岃鍒掋?br> 涓洪伩鍏嶈繖縐嶆儏鍐甸犳垚鎬ц兘鎹熷け錛岃姹備竴寰嬩嬌鐢ㄧ粦瀹氬彉閲忔柟寮忋?br> 2.4 DataReader
DataReader鏈閫傚悎浜庤闂彧璇葷殑鍗曞悜鏁版嵁闆嗐備笌DataSet涓嶅悓錛屾暟鎹泦騫朵笉鍏ㄩ儴鍦ㄥ唴瀛樹腑錛岃屾槸闅忎笉鏂彂鍑虹殑read璇鋒眰錛屼竴鏃﹀彂鐜版暟鎹紦鍐插尯涓殑鏁版嵁鍧囪璇誨彇錛屽垯浠庢暟鎹簮浼犺緭涓涓暟鎹紦鍐插尯澶у皬鐨勬暟鎹潡榪囨潵銆傚彟澶栵紝DataReader淇濇寔榪炴帴錛孌ataSet鍒欎笌榪炴帴鏂紑銆?br> 2.4.1 鏄懼紡鍏抽棴DataReader
涓庤繛鎺ョ被浼鹼紝涔熼渶瑕佹樉寮忓叧闂璂ataReader銆傚彟澶栵紝濡傛灉涓嶥ataReader鍏寵仈鐨凜onnection浠呬負DataReader鏈嶅姟鐨勮瘽錛屽彲鑰冭檻浣跨敤Command瀵硅薄鐨凟xecuteReader(CommandBehavior.CloseConnection)鏂瑰紡銆傝繖鍙互淇濊瘉褰揇ataReader鍏抽棴鏃訛紝鍚屾椂鑷姩鍏抽棴Connection銆?br> 2.4.2 鐢ㄧ儲寮曞彿璁塊棶浠f浛鍚嶇О绱㈠紩鍙瘋闂睘鎬?br> 浠嶳ow涓闂煇鍒楀睘鎬э紝浣跨敤绱㈠紩鍙風殑鏂瑰紡姣斾嬌鐢ㄥ悕縐版柟寮忔湁緇嗗井鎻愰珮銆傚鏋滀細琚綣佽皟鐢紝渚嬪鍦ㄥ驚鐜腑錛岄偅涔堝彲鑰冭檻姝ょ被浼樺寲銆傜ず渚嬪涓嬶細cmd.CommandText = "select Col1, Col2 from Table1" ;
SqlDataReader dr = cmd.ExecuteReader();
int col1 = dr.GetOrdinal("Col1");
int col2 = dr.GetOrdinal("Col2");
while (dr.Read())
{
Console.WriteLine( dr[col1] + "_" + dr[col2]);
}
2.4.3 浣跨敤綾誨瀷鍖栨柟娉曡闂睘鎬?br> 浠嶳ow涓闂煇鍒楀睘鎬э紝鐢℅etString銆丟etInt32榪欑鏄懼紡鎸囨槑綾誨瀷鐨勬柟娉曪紝鍏舵晥鐜囪緝閫氱敤鐨凣etValue鏂規硶鏈夌粏寰彁楂橈紝鍥犱負涓嶉渶瑕佸仛綾誨瀷杞崲銆?br> 2.4.4 浣跨敤澶氭暟鎹泦
閮ㄥ垎鍦烘櫙鍙互鑰冭檻涓嬈¤繑鍥炲鏁版嵁闆嗘潵闄嶄綆緗戠粶浜や簰嬈℃暟錛屾彁鍗囨晥鐜囥傜ず渚嬪涓嬶細cmd.CommandText = "StoredProcedureName"; // The stored procedure returns multiple result sets.
SqlDataReader dr = cmd.ExecuteReader();
while (dr.read())
// read first result set
dr.NextResult();
while (dr.read())
//
2.5 DataSet
2.5.1 鍒╃敤绱㈠紩鍔犲揩鏌ユ壘琛岀殑鏁堢巼
濡傛灉闇瑕佸弽澶嶆煡鎵捐錛屽緩璁鍔犵儲寮曘傛湁涓ょ鏂瑰紡錛?br> 1. 璁劇疆DataTable鐨凱rimaryKey
閫傜敤浜庢寜PrimaryKey鏌ユ壘琛岀殑鎯呭喌銆傛敞鎰忔鏃跺簲璋冪敤DataTable.Rows.Find鏂規硶錛屼竴鑸儻鐢ㄧ殑Select鏂規硶涓嶈兘鍒╃敤绱㈠紩銆?br> 2. 浣跨敤DataView
閫傜敤浜庢寜Non-PrimaryKey鏌ユ壘琛岀殑鎯呭喌銆傚彲涓篋ataTable鍒涘緩涓涓狣ataView錛屽茍閫氳繃SortOrder鍙傛暟鎸囩ず寤虹珛绱㈠紩銆傛鍚庝嬌鐢‵ind鎴朏indRows鏌ユ壘琛屻?br>
]]>
]]>
鐢≒ing鍛戒護浣滅ず渚嬶紝璇存槑C#涓嬫墽琛屽懡浠よ鎴朌OS鍐呴儴鍛戒護鐨勪竴縐嶆柟娉曪紝騫惰幏鍙栫浉搴旂殑緇撴灉銆傛墽琛屾椂鍙互璁╄繖浜涚▼搴忕殑鎵ц榪囩▼涓嶆樉紺哄嚭鏉ワ紝璋冪敤澶栭儴紼嬪簭灝卞彲浠ュ垎鏋愭墽琛岀粨鏋溿?br>
using System;
// 瑕佺敤浣跨敤Process綾繪潵鍒涘緩鐙珛鐨勮繘紼?瀵煎叆
using System.Diagnostics;
namespace Cmd
{
class CmdConsole
{
[STAThread]
static void Main(string[] args)
{
Console.Write("Please Input IP Address: ");
string ip = Console.ReadLine();
string strRst = CmdPing(ip);
Console.WriteLine(strRst);
Console.ReadLine();
}
private static
string CmdPing(string strIp)
{
// 瀹炰緥涓涓狿rocess綾?鍚姩涓涓嫭绔嬭繘紼?/span>
Process p = new Process();
// 璁懼畾紼嬪簭鍚?/span>
p.StartInfo.FileName = "cmd.exe";
// 鍏抽棴Shell鐨勪嬌鐢?/span>
p.StartInfo.UseShellExecute = false;
// 閲嶅畾鍚戞爣鍑嗚緭鍏?/span>
p.StartInfo.RedirectStandardInput = true;
// 閲嶅畾鍚戞爣鍑嗚緭鍑?/span>
p.StartInfo.RedirectStandardOutput = true;
//閲嶅畾鍚戦敊璇緭鍑?/span>
p.StartInfo.RedirectStandardError = true;
// 璁劇疆涓嶆樉紺虹獥鍙?/span>
p.StartInfo.CreateNoWindow = true;
// 鍚姩榪涚▼
string pingrst;
p.Start();
p.StandardInput.WriteLine("ping -n 1 " + strIp);
p.StandardInput.WriteLine("exit");
// 浠庤緭鍑烘祦鑾峰彇鍛戒護鎵ц緇撴灉
string strRst = p.StandardOutput.ReadToEnd();
if (strRst.IndexOf("( 0% loss )") != -1)
pingrst = "榪炴帴";
else if (strRst.IndexOf("Destination host unreachable.") != -1)
pingrst = "鏃犳硶鍒拌揪鐩殑涓繪満";
else if (strRst.IndexOf("Request timed out.") != -1)
pingrst = "瓚呮椂";
else if (strRst.IndexOf("Unknown host") != -1)
pingrst = "鏃犳硶瑙f瀽涓繪満";
else
pingrst = strRst;
// if end
p.Close();
return pingrst;
}
}
}
]]>
鍏充簬涓嶅悓欏甸潰涔嬮棿浼犻掑弬鏁幫紝涓鑸父瑙勭敤娉曟槸錛?nbsp;
1銆侀氳繃URL鍚庡甫鐨勫弬鏁?nbsp;
榪欑鏂規硶鍙楅檺鍒跺緢澶氾紝涓鏄皢鍙傛暟鏆撮湶鍑烘潵錛屽鏄撳甫鏉ヤ竴浜涘畨鍏ㄦ柟闈㈢殑闅愭偅錛屼簩鏄墍甯﹀弬鏁板鏋滄暟閲忚緝澶氾紝鎺у埗璧鋒潵涔熷緢楹葷儲錛?nbsp;
2銆侀氳繃甯歌琛ㄥ崟涓殑POST鎻愪氦
榪欑鏂規硶鏈甯哥敤錛屼絾鍦ˋSP.NET欏甸潰涓殑FROM鎺т歡鏃犳硶璞′竴鑸現ORM閭f牱灝嗗弬鏁頒紶鍒板彟涓欏甸潰錛岄渶瑕侀氳繃鐗瑰畾鐨勬柟寮忥紝鍚﹀垯鍜岀涓縐嶆柟寮忔棤寮傘?nbsp;
3銆丼ession鏂瑰紡
浼犵粺鏂瑰紡涔嬩竴錛屽浜庣壒瀹氱殑鐜鏈夊埄錛岄噴鏀句篃姣旇緝瀹規槗
4銆侀氳繃鎺ュ彛鎴栫被鐨勬柟寮忓疄鐜般傛垜浠富瑕佽璁轟竴涓嬭繖涓柟娉曘?nbsp;
鍩轟簬WEB鏂瑰紡錛屼嬌鐢ㄥ彉閲忎紶閫掑繀欏昏浣跨敤縐佹湁鍙橀噺錛屽洜涓哄緢綆鍗曪紝濡傛灉浣犱嬌鐢ㄥ叕鏈夋垨闈欐佸彉閲忥紝閭d細鍑虹幇鏋佸ぇ鐨勬販涔憋紝鏈嬪弸浠彲浠ヨ冭檻涓涓嬩負浠涔堬紵
濡傛灉鐢ㄧ被鐨勫睘鎬э紝涓涓棶棰樻槸瀵硅薄鐨勭敓瀛樻椂闂村拰鑼冨洿闄愬埗鎴戜滑涓嶈兘浠ョ鏈夌殑鏂瑰紡鏉ヨ繘琛屼紶閫掋?nbsp;
涓嬮潰鏄粨鍚堜竴浜汼DK涓殑涓浜涙柟娉曞啓鐨勪竴涓緥瀛愶紝渚涘弬鑰冿細
璇存槑錛氫負浜嗚繘琛屾洿澶ф暟閲忓拰綾誨瀷鐨勫弬鏁扮殑浼犻掞紝涔熸槸chequan鏈嬪弸鐨勯棶棰橈紝鑰冭檻浣跨敤緇撴瀯鏉ュ疄鐜般傜粨鏋勬湁鍏跺ソ澶勶紝鍚堢悊浣跨敤錛屽簲璇ヤ笉浼氶犳垚澶ぇ鐨勮祫婧愬崰鐢紝鐗瑰埆鏄湪榪欑浼犻掍笂銆傛湁鎯蟲硶鐨勬湅鍙嬩篃鍙互涓璧瘋璁轟竴涓嬬粨鏋勭殑浣跨敤銆?nbsp;
渚嬪瓙錛?nbsp;
鍋氫竴涓被鏂囦歡錛屼負Trancfer.cs錛屽唴瀹瑰涓嬶細
using System;
namespace WEBLOG.Class
{
/// <summary>
/// 瀹氫箟涓涓粨鏋勶紝闇瑕佷紶閫掔殑鍐呭鍙互鐢辮嚜宸辨潵瀹氫箟錛屽彲浠ュ畾涔夊涓粨鏋勶紝浠ラ傚悎鑷繁鐨勯渶瑕?nbsp;
/// </summary>
public struct NormalUserRegInfo
{
public string UserName;
public string UserPassWord;
public string Quesion;
public string Answer;
public string UserEmail;
public string UserClass;
}
/// <summary>
/// 姝ゆ帴鍙e畾涔変簡涓涓繑鍥炴墍闇浼犻掑璞$殑灞炴?nbsp;
/// 鍙戦佸璞$殑欏甸潰蹇呴』瀹炵幇姝ゆ帴鍙?nbsp;
/// </summary>
public interface ITransferface
{
TrancferClass TranceferObject{get;set;}
}
/// <summary>
/// Trancfer 鐨勬憳瑕佽鏄庛?nbsp;
/// </summary>
public class TrancferClass
{
public TrancferClass()
{
//
// TOD 鍦ㄦ澶勬坊鍔犳瀯閫犲嚱鏁伴昏緫
//
}
private NormalUserRegInfo _strMessage;
public NormalUserRegInfo TranceferMessage
{
get
{
return this._strMessage;
}
set
{
this._strMessage = value;
}
}
}
}
鏈変簡榪欎釜綾伙紝灝卞彲浠ュ湪欏甸潰涓繘琛屾搷浣滀簡錛?nbsp;
鍋囪鎴戜滑鏈変竴涓〉闈紝鍚嶄負Set.aspx錛岄氳繃涓涓狟utton灝嗕竴浜涘弬鏁板彂鍒癎et.aspx欏甸潰涓紝
榪欎袱涓〉闈㈢殑鐩稿叧浠g爜濡備笅錛?nbsp;
====================
Set.aspx.cs
====================
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using WEBLOG.Class;
namespace WEBLOG
{
/// <summary>
/// Set 鐨勬憳瑕佽鏄庛?nbsp;
/// </summary>
public class Set : System.Web.UI.Page,ITransferface
{
protected System.Web.UI.WebControls.Button Button1;
private TrancferClass _temptrancefer;
private void Page_Load(object sender, System.EventArgs e)
{
// 鍦ㄦ澶勬斁緗敤鎴蜂唬鐮佷互鍒濆鍖栭〉闈?nbsp;
_temptrancefer = new TrancferClass();
}
#region Web 紿椾綋璁捐鍣ㄧ敓鎴愮殑浠g爜
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 璇ヨ皟鐢ㄦ槸 ASP.NET Web 紿椾綋璁捐鍣ㄦ墍蹇呴渶鐨勩?nbsp;
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 璁捐鍣ㄦ敮鎸佹墍闇鐨勬柟娉?- 涓嶈浣跨敤浠g爜緙栬緫鍣ㄤ慨鏀?nbsp;
/// 姝ゆ柟娉曠殑鍐呭銆?nbsp;
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
//瀹炵幇ITransferface鎺ュ彛
public TrancferClass TranceferObject
{
get
{
return this._temptrancefer;
}
set
{
this._temptrancefer = value;
}
}
private void Button1_Click(object sender, System.EventArgs e)
{
//瀹氫箟涓涓粨鏋勶紝浼犻掕繖涓粨鏋?nbsp;
NormalUserRegInfo temptest = new NormalUserRegInfo();
temptest.Answer="AAAAAAAAAAAAAAAA";
temptest.Quesion="BBBBBBBBBBBBB";
temptest.UserName="CCCCCCCCCCCCCCCCC";
temptest.UserPassWord="DDDDDDDDDDDDDDDDDDDDDDDDD";
this.TranceferObject.TranceferMessage = temptest;
//璋冪敤Server.Transfer()錛岃漿鍚戞墽琛孏et.aspx
Server.Transfer("Get.aspx");
}
}
}
====================
Get.aspx.cs
====================
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using WEBLOG.Class;
namespace WEBLOG
{
/// <summary>
/// Receiver 鐨勬憳瑕佽鏄庛?nbsp;
/// </summary>
public class Get : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
ITransferface mySender;
if(!IsPostBack)
{
//鍒ゆ柇褰撳墠欏甸潰鐨凥ttpHandler錛屽鏋滃疄鐜頒簡ITransferface鎺ュ彛
//灝辮漿鎹㈡垚ITransferface
if(Context.Handler is ITransferface)
{
mySender = (ITransferface)Context.Handler;
NormalUserRegInfo tempreceive =mySender.TranceferObject.TranceferMessage;
Response.Write(tempreceive.Answer + "<BR>");
Response.Write(tempreceive.Quesion + "<BR>");
Response.Write(tempreceive.UserName + "<BR>");
Response.Write(tempreceive.UserPassWord + "<BR>");
}
else
{
Response.Write("娌℃湁鎺ユ敹鍒頒換浣曞弬鏁?);
}
}
}
#region Web 紿椾綋璁捐鍣ㄧ敓鎴愮殑浠g爜
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 璇ヨ皟鐢ㄦ槸 ASP.NET Web 紿椾綋璁捐鍣ㄦ墍蹇呴渶鐨勩?nbsp;
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 璁捐鍣ㄦ敮鎸佹墍闇鐨勬柟娉?- 涓嶈浣跨敤浠g爜緙栬緫鍣ㄤ慨鏀?nbsp;
/// 姝ゆ柟娉曠殑鍐呭銆?nbsp;
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
]]>