公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

15種ASP技巧

admin
2011年2月16日 10:31 本文熱度 3218
*技巧1:給應(yīng)用層文件使用GLOBAL.ASA
將文件加載GLOBAL.ASA中的一個應(yīng)用層數(shù)組中,而不是通過使用ASP文件系統(tǒng)對像在頁面上讀取文件。
GLOBAL.ASA可用于指定事件腳本,也可用于聲明擁有session或應(yīng)用程序范圍的對象。它不直接顯示給用戶,而是存儲應(yīng)用層事件的信息和對象。然后通過頁面就可以指向存有數(shù)據(jù)的應(yīng)用層數(shù)組。這就意味著每有一個服務(wù)器端請求就讀一次文件,不是每個用戶每頁讀一次。你可以運行一個獨立的ASP文件去刷新應(yīng)用層數(shù)組的內(nèi)容,同時你也可以考慮使用dictionary對像(見技巧9)。
這個技巧可以大大加快你的系統(tǒng)速度。
那么將如何實現(xiàn)該技巧呢?
如果你是一個腳本編寫人員,必須使用文件系統(tǒng)對像讀取文件放入一個數(shù)組或一個dictionary對像中。然后在GLOBAL.ASA中讀取文件并且把數(shù)組(放有你讀取的文件內(nèi)容)或dictionary對像放到應(yīng)用層聲明中。這樣就可讓用戶在數(shù)組或dictionary對像中存取信息,而不必每次通過一個ASP請求去提交信息。
但也許你會想"如果緩存中的內(nèi)容需要更新又該怎么辦呢?我敢打賭不會用到。"其實不然。如果緩存中的內(nèi)容需要更新,你可以調(diào)用一個包含有可執(zhí)行應(yīng)用程序鎖定命令腳本的僅管理員可存取的ASP文件,在數(shù)組或dictionary對像中更新緩存信息,最后執(zhí)行應(yīng)用程序鎖定命令。


*技巧2:從產(chǎn)品源代碼中移去HTML注釋(IIS3.0適用)
不錯,難寫的肯定也難懂。開個玩笑,這不代表要你把所有的HTML注釋去掉(腳本注釋就挺好的),大范圍的HTML文本都能成批的拷貝到客戶端。這樣的話,你的腳本在IIS3.0上會運行得更快(在IIS4.0中,HTML注釋不再會導(dǎo)致執(zhí)行速度的降低)。


*技巧3:多個Response.write聲明
如果你是在代碼中的好幾個地方用格式書寫輸出結(jié)果,那么考慮一下把這些結(jié)果合到一塊,用一個Response.write語句寫出來。然后你再看看你的HTML代碼和vbscript腳本的組成。不要把HTML和vbscript腳本散布得太開,盡量寫成成塊的HTML和vbscript腳本。


*技巧4:使用<OBJECT>標志例示對像
如果你需要指向那些也許用不著的對象,那么就用<OBJECT>標志例示,而不是用Server.createobject.用Server.createobject將立刻生成該對象,如果你以后都用不著它的話,就等于浪費資源。


*技巧5:盡可能的使用本地(局部)變量
(以下的新技巧將取代較早前發(fā)布的"在一行內(nèi)定義變量",其中包含有一些錯誤觀點):
局部變量是在子程序和函數(shù)中定義的(也就是常說局部范圍的變量),這些變量被編譯成數(shù)字指向并放入一張表中。這些局部變量的指向可以通過一次編譯完成。而全局變量則是在運行時被執(zhí)行的。這就意味著局部變量的存取要比全局變量快好幾倍。而且,多維全局變量是其中最慢的,當?shù)谝淮问褂靡粋€多維全局變量時,在新的對象產(chǎn)生之前,就要在整個對象模型中搜索一遍同名的對象。
以下是一個非常常見的例子:
Foo.bar.blah.baz = Foo.bar.blah.qaz(1)
If Foo.bar.blah.zaq = Foo.bar.blah.abc then
運行時產(chǎn)生如下結(jié)果:
1)變量Foo被定義為一個全局變量2)變量bar被定義為Foo的一個成員3)變量blah被定義為Foo.bar的一個成員4)變量qaz被定義為Foo.bar.blah的一個成員5)調(diào)用Foo.bar.blah.quaz(1)6)重復(fù)1至3。系統(tǒng)并不知道如果調(diào)用qaz改變了對象模型1-3步必須重新執(zhí)行7)定義baz為Foo.bar.blah的成員,輸出值8)重復(fù)1-3,執(zhí)行zaq9)重復(fù)1-3,執(zhí)行abc
正如你看到的,效率極其低下,最快的方法就是把這些代碼寫在vbscript中:
Set myobj = Foo.bar.blah ' do the resolution of blah ONCEMyobj.baz = myobj.qaz(1)If Myobj.zaq = Myobj.abc then


*技巧6:避免重復(fù)定義數(shù)組
當我們在使用dim時,避免重新定義數(shù)組。因為你可能要用redim去重新定義數(shù)組的大小。至于要做這樣的操作的話,如果你的機器內(nèi)存不是很大,那么最好在一開始就考慮到最壞的打算去設(shè)置數(shù)組的長度或者設(shè)置最佳狀態(tài)時的長度,在非常必要時才使用redim。當然這樣并不意味著要去增加內(nèi)存,如果你不是很需要的話。
以下舉例說明不恰當?shù)氖褂胷edim
其實在開始就定義myarray(5),而以后需要的話再用redim去增加他的大小,這樣的話可能會占用一些內(nèi)存,但速度就要快得多了。


*技巧7:避免公用(全局)變量
不要使用用public定義的變量。如果你是寫vbscript或在ActiveX控件或java applet中存取變量,那么盡可能避免公用變量。public關(guān)鍵詞通常是為以后使用設(shè)計的,既然public不能給你帶來什么好處,那最好還是用dim吧。


*技巧8:使用絕對路徑
如果可能的話盡量避免使用相對路徑,而使用絕對路徑。使用相對路徑將需要IIS返回當前服務(wù)器路徑,這就意味著對IIS的特殊請求造成執(zhí)行速度低下。
注:慢點就慢點唄,使用相對路徑移植什么的都方便得多呀。


*技巧9:使用"Dictionary"對像
VBScript中提供的dictionary對象可提供快速查找和任意帶關(guān)鍵詞數(shù)據(jù)的存儲。通過dictionary對象可以根據(jù)關(guān)鍵詞存取數(shù)組中的各項數(shù)據(jù),這樣就能更快地找到在內(nèi)存中不連續(xù)的內(nèi)容(因為你是指定你正在使用的關(guān)鍵詞,而不是要知道對像在數(shù)組中存放的位置)。如果你要查找的是非線性的關(guān)鍵詞數(shù)據(jù),使用dictionary對象就要快得多了。
然而,如果關(guān)鍵詞數(shù)據(jù)在內(nèi)存中是連續(xù)的,那么數(shù)組在查找、存儲數(shù)據(jù)起來將更快。同時也需要注意的是在dictionary中建立索引要比在數(shù)組中慢。你應(yīng)該選擇對你來說效果最好的數(shù)據(jù)結(jié)構(gòu)。


*技巧10:充分利用瀏覽器的回退功能
如果你使用的是個smart的瀏覽器,那么他會幫你做很多的回退工作,只要用得著,不妨多用用。那么,通過你的腳本執(zhí)行回退,當有任何錯誤發(fā)生時你可以回到前面去,并從后訪問數(shù)據(jù)庫。但要記住的是,當你訪問服務(wù)器上存在的數(shù)據(jù)庫時就要執(zhí)行一次對數(shù)據(jù)庫的操作。如果你要返回的那個窗體有很多變量的話,那就有點劃不來了。如果你確實知道你需要在客戶端執(zhí)行很多代碼,那么為了加快執(zhí)行速度把代碼移到客戶端。當你在客戶端運行時,處理器就歸你了,服務(wù)器呢,只好用他自身的處理能力去處理他所接到的請求。
還有個好辦法,如果你使用的窗體中用了很多服務(wù)器端的腳本并且有不少條件輸入,那么最好把這些觸發(fā)反應(yīng)的代碼放到客戶端腳本引擎中去(比如vbscript,javascript)。忽略這些,服務(wù)器代碼運行得就快了,因為對于那些不是很必要的代碼就不送到服務(wù)器端執(zhí)行了。當然這僅對那些比較小的代碼適用,至于大的嘛,就不太合適了。


*技巧11:避免使用服務(wù)器端變量
通過服務(wù)器端變量進行訪問數(shù)據(jù)時,就需要web向服務(wù)器提出請求,然后收集所有的服務(wù)器端變量,而不僅僅只是你請求的那個變量。這就類似于你要從發(fā)霉閣樓的盒子里找一樣特定的東西。當你要找那個東西時,首先要從閣樓里找到盒子。當你請求一個變量時服務(wù)器也是一樣,當遇到你請求的哪個變量時觸發(fā)執(zhí)行,然后再去請求那些不會引起執(zhí)行點的變量。


*技巧12:使用"option explicit"
在asp文件中寫上。和c不同,vb允許你在不強制定義變量之前就可以使用該變量。把option explicit打開有助于識別沒定義的變量,使用沒定義的變量就會出現(xiàn)錯誤提示信息。同時也可以使那些沒申明的局部變量非法。沒申明的局部變量和全局變量一樣慢(比定義過的局部變量要慢一倍)。把option explicit打開自然能幫你把這些小蟲子從你的代碼中去掉。


*技巧13:將采集到的值拷貝到本地(局部)變量當中
如果有一些值是你要反復(fù)用到的話,把這些值用局部變量的形式拷貝到客戶端。每次當你要用到這些值時,就省去了你去那一堆值里面去找了,這樣也就加快了腳本運行速度。


*技巧14:謹慎使用session對像
使用session對象可以存儲一些用戶特殊信息。當用戶在該應(yīng)用程序的不同頁之間跳轉(zhuǎn),存放在session中的變量不會丟失,相反,這些變量在整個用戶過程中一直保留。當一個頁面被一個未有session的用戶請求時,web服務(wù)器會自動建立一個session對象。當session的時間限制到了或是被中斷了時,服務(wù)器就會撤消session對象。為了避免這種情況,你可以把session屬性關(guān)閉。然而在iis3.0中在每個應(yīng)用中的session屬性不能關(guān)閉。把整個服務(wù)器中的session關(guān)閉速度會快一些,但這樣會損失很多功能。最好是需要時謹慎使用session對像
當你在整個應(yīng)用中都用到session對像時,注意要快點用,否則session對像將會被重置。在iis4.0中,每個應(yīng)用基礎(chǔ)中的session狀態(tài)都可以被激活,也可以在specified.asp文件中被取消。
*技巧15:做性能測試

該文章在 2011/2/16 10:31:29 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 2025国产精品无码视频 | av鲁丝一区鲁丝二区 | 激情欧美日韩国产在线专区 | 国产精品亚洲日韩aⅴ在线 国产精品亚洲日韩aⅴ在线观看 | 91在线播放 | 国产综合精品无码久久 | 高潮激情肉欲视频 | 国偷自产一区二区三区在线视频 | 18禁强伦姧人妻又大精品国产 | 国产自产在线最新 | 精品亚洲a∨一区二区三区 精品亚洲a∨在线播放不卡 | 成人动漫免费看一区二区三区 | 国产成人精品系列在线观看 | 国语高清在线视频二区 | 99精品日韩 | 国产蜜桃一区二区三区在线观看 | 国产免费人成视频在线播放播 | 大尺度做爰床戏呻吟的视频网 | 国产白浆丝 | 国产肥熟女视频一区二 | 91国内外精品自在线播放 | 国产亚洲欧洲日韩在线91区 | 国产午夜精品久久久久婷婷 | 东京一本到熟无码免费视频 | 国产精品亚洲一区在线播放 | 国产精品无码无卡在线观看 | 国产福利导航一区二区三区 | 国产精品中文字幕一区二区三区 | 精品无码成人网站久久久久久 | 成人青青热久免费精品 | 国产成人理在线观看视频 | 韩国精品无码一区二区三区视频播放 | 丰满人妻av无码一区二区 | 国产色婷婷精品免费视频 | 91欧洲在线视精品在亚洲 | 18禁成人免费网站在线看 | 高清中文字幕在线a片 | 国产人妻人伦精品无码.麻豆 | 国产精品高潮呻吟久久av旡码 | av无码免费永久在线观看 | av免费无码一区二区 |