国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > ASP > 正文

Asp編碼優(yōu)化技巧

2024-05-04 11:10:04
字體:
供稿:網(wǎng)友

ASP(Active Server Page)是Microsoft公司推出的基于PWS(Personal Web Server)&IIS(Internet Information Server)平臺(tái)的、基于ISAPI(InternetServiceAPI)原理的動(dòng)態(tài)網(wǎng)頁開發(fā)技術(shù),目前日趨成熟完善。在這里僅就代碼優(yōu)化進(jìn)行一些簡(jiǎn)單討論。

8條Asp編碼優(yōu)化技巧:

1、聲明VBScript變量

在ASP中,對(duì)vbscript提供了強(qiáng)勁的支持,能夠無縫集成vbscript的函數(shù)、方法,這樣給擴(kuò)展ASP的現(xiàn)有功能提供了很大便利。由于ASP中已經(jīng)模糊了變量類型的概念,所以,在進(jìn)行ASP與vbscript交互的過程中,很多程序員也慣于不聲明vbscript的變量,這樣加重了服務(wù)器的解析負(fù)擔(dān),進(jìn)而影響服務(wù)器的響應(yīng)請(qǐng)求速度。

鑒于此,我們可以象在VB中強(qiáng)制用戶進(jìn)行變量聲明一樣在vbscript中強(qiáng)制用戶進(jìn)行變量聲明。實(shí)現(xiàn)方法是在ASP程序行首放置<% option explicit%>。

2、對(duì)URL地址進(jìn)行編碼

在我們使用asp動(dòng)態(tài)生成一個(gè)帶參數(shù)URL地址并進(jìn)行跳轉(zhuǎn)時(shí),在IE中解析很正常,但在NetScrape瀏覽時(shí)卻有錯(cuò)誤如下:

 

 
  1. HTTP Error 400  
  2. 400 Bad Request  
  3. Due to malformed syntax, the request could not be understood by the server.  
  4. The client should not repeat the request without modifications.  

解決方法是對(duì)生成的URL參數(shù)使用ASP內(nèi)置server對(duì)象的URLencode方法進(jìn)行URL編碼,例子如下:

 

 
  1. <%  
  2. URL="xur.asp"  
  3. var1="username=" & server.URLencode("xur")  
  4. var2="&company=" & server.URLencode("xurstudio")  
  5. var3="&phone=" & server.URLencode("021-53854336-186")  
  6. response.redirect URL & "?" & var1 & var2 & var3  
  7. %> 

3、清空對(duì)象

當(dāng)使用完對(duì)象后,首先使用Close方法來釋放對(duì)象所占用的系統(tǒng)資源;然后設(shè)置對(duì)象值為“nothing”釋放對(duì)象占用內(nèi)存。當(dāng)年,我就是在一張頁面上創(chuàng)建了百余個(gè)沒有清空對(duì)象的記錄集而崩潰了我的IIS 。下面的代碼使用數(shù)據(jù)庫內(nèi)容建立一個(gè)下拉列表。代碼示例如下:

 

 
  1. <% myDSN="DSN=xur;uid=xur;pwd=xur"  
  2. mySQL="select * from authors where AU_ID<100"  
  3. set conntemp=server.createobject("adodb.connection")  
  4. conntemp.open myDSN  
  5. set rstemp=conntemp.execute(mySQL)  
  6. if rstemp.eof then  
  7. response.write "數(shù)據(jù)庫為空"  
  8. response.write mySQL  
  9. conntemp.close  
  10. set conntemp=nothing  
  11. response.end  
  12.   end if%>  
  13. <%do until rstemp.eof %>  
  14. <%  
  15. rstemp.movenext  
  16. loop  
  17. rstemp.close  
  18. set rstemp=nothing  
  19. conntemp.close  
  20. set conntemp=nothing  
  21. %> 

4、使用字符串建立SQL查詢

使用字符串來建立查詢并不能加快服務(wù)器的解析速度,相反,它還會(huì)增加服務(wù)器的解析時(shí)間。但在這里仍然推薦使用字符串代替簡(jiǎn)單的查詢語句來進(jìn)行查詢。這樣做的好處是,可以迅速發(fā)現(xiàn)程序問題所在,從而便利高效地生成程序。示例如下:

 

 
  1. <%mySQL= ""select * "  
  2. mySQL= mySQL & "from publishers"  
  3. mySQL= mySQL & "where state='NY'"  
  4. response.write mySQL  
  5. set rstemp=conntemp.execute(mySQL)  
  6. rstemp.close  
  7. set rstemp=nothing  
  8. %>  

5、使用case進(jìn)行條件選擇

在進(jìn)行條件選擇的時(shí)候,盡量使用case語句,避免使用if語句。使用case語句,可以使程序流程化,執(zhí)行起來也比if語句來的快。示例如下:

 

 
  1. <%  
  2.    FOR i = 1 TO 1000  
  3.    n = i  
  4.    Response.Write AddSuffix(n) & "<br>"  
  5.    NEXT  
  6.    %>  
  7.    <%  
  8.    Function AddSuffix(num)  
  9. numpart = RIGHT(num,1)  
  10. SELECT CASE numpart  
  11. CASE "1"  
  12. IF InStr(num,"11") THEN  
  13. num = num & "th"  
  14. ELSE  
  15. num = num & "st"  
  16. END IF  
  17. CASE "2"  
  18. IF InStr(num,"12") THEN  
  19. num = num & "th"  
  20. ELSE  
  21. num = num & "nd"  
  22. END IF  
  23. CASE "3"  
  24. IF InStr(num,"13") THEN  
  25. num = num & "th"  
  26. ELSE  
  27. num = num & "rd"  
  28. END IF  
  29. CASE "4"  
  30. num = num & "th"  
  31. CASE ELSE  
  32. num = num & "th"  
  33. END SELECT  
  34. AddSuffix = num  
  35.    END FUNCTION  
  36. %>  

6、使用adovbs.inc文件中定義的常量打開記錄集

打開記錄集時(shí),可以定義記錄集打開的游標(biāo)類型和鎖定類型。在adovbs.inc文件中定義了一些常量來定義這些類型。adovbs.inc文件保存在/inetpub/iissamples/IISamples目錄下面。下面列舉幾個(gè)常用的游標(biāo)類型和鎖定類型。

游標(biāo)類型:adOpenFowardOnly游標(biāo)只能向前;adOpenKeyset游標(biāo)可向前或者向后,如一用戶添加記錄,新記錄不會(huì)出現(xiàn)在記錄集中;adOpenDynamic游標(biāo)動(dòng)態(tài)隨意;adOpenStatic記錄集不對(duì)其他用戶造成的記錄修改有所反映。

鎖定類型:adLockReadOney不能修改記錄集中的記錄;adLockPessimistic在編輯一條記錄時(shí)鎖定它;adLockOptimstic調(diào)用記錄集Update方法時(shí)才鎖定記錄;adLockBatchOpeimstic記錄只能成批更新。

 

 
  1. <!--#INCLUDE VIRTUAL="/ADOVBS.INC" -->  
  2. <%  
  3. connectme="DSN=xur;uid=xur;pwd=xur"  
  4. sqltemp="select * from publishers where name='xur'"  
  5. set rstemp=Server.CreateObject("adodb.Recordset")  
  6. rstemp.open sqltemp, connectme, adOpenStatic,adLockOptimstic  
  7. response.write rstemp.recordcount & " records in<br>" & sqltemp  
  8. rstemp.close  
  9. set rstemp=nothing  
  10. %>  

7、避免在使用global.asa文件中進(jìn)行對(duì)象定義

由于global.asa文件中的內(nèi)容可以為站點(diǎn)內(nèi)所有文件引用,無疑,在global.asa文件中進(jìn)行對(duì)象定義可以省去很多重復(fù)工作。比如在global.asa中的application_onstart函數(shù)中進(jìn)行如下定義:

 

 
  1. <%SUB application_onstart  
  2. set application("theCONN")=server.createobject("adodb.connection")  
  3. END SUB %>;  

這樣就可以在站點(diǎn)任何代碼中做類似引用:

 

 
  1. <%  
  2. mySQL="select * from publishers where state='xur'  
  3. set rstemp=application("theconn").execute(mySQL)  
  4. %>  

同樣地,可以在session_onstart函數(shù)中創(chuàng)建記錄集對(duì)象

 

 
  1. <%SUB session_onstart  
  2. set session("rstemp")=server.createobject("adodb.recordset")  
  3. END SUB %>  

然后在站點(diǎn)也面中進(jìn)行如下引用:

 

 
  1. <%  
  2. mySQL="select * from publishers where state='xur'  
  3. set session("rstemp")=conntemp.execute(mySQL)  
  4. %>  

但這樣做的同時(shí)也有很大的負(fù)面影響,由于Application和session變量都只有在關(guān)閉網(wǎng)站的時(shí)候才釋放占用的資源,所以session參數(shù)會(huì)浪費(fèi)大量不必要內(nèi)存,而且此時(shí)application變量成為服務(wù)器性能的瓶頸。

解決方法:建立定義對(duì)象asp頁面,在需要進(jìn)行調(diào)用這些對(duì)象的頁面上,引入這張asp頁面。假設(shè)定義對(duì)象的asp頁面名稱為define.asp,則只要在對(duì)應(yīng)asp頁面中加入以下語句就能引入該頁面。

在進(jìn)行頁面引進(jìn)時(shí),最好在待引進(jìn)的asp文件中不要包含<%@LANGUAGE="VBSCRIPT"%>語句。因?yàn)樵赼sp文件中,只能有一句由@來定義的腳本解析語言。

8、安全防護(hù)

asp提供了很好的代碼保護(hù)機(jī)制,所有的asp代碼都在服務(wù)器端執(zhí)行而只返回給客戶端代碼執(zhí)行結(jié)果。即便這樣,在老版本的IIS中還可以在文件名后面家::$DATA來查看asp的源代碼,這已經(jīng)屬于Web Server安全范疇不在本文討論范圍內(nèi)。下面提出兩點(diǎn)簡(jiǎn)單的安全注意事項(xiàng)。

雖然在asp中建議引入文件以inc作為擴(kuò)展名,在這里仍建議以asp作為引文件的擴(kuò)展名。當(dāng)這些代碼在安全機(jī)制不好的Web Server上運(yùn)行時(shí),只需在地址欄上輸入引入文件的地址(inc為擴(kuò)展名),就可以瀏覽該引入文件的內(nèi)容,這是由于在Web Server上,如果沒有定義好解析某類型(比如inc)的動(dòng)態(tài)連接庫時(shí),該文件以源碼方式顯示。

不要把數(shù)據(jù)庫文件放在網(wǎng)站結(jié)構(gòu)內(nèi)部,這樣,當(dāng)惡意人士獲取數(shù)據(jù)庫路徑后,就可以輕易獲取該數(shù)據(jù)庫,進(jìn)而肆意更改數(shù)據(jù)庫內(nèi)容。比較好的做法是,為數(shù)據(jù)庫建立DSN(Date Source Name),而在進(jìn)行數(shù)據(jù)庫訪問時(shí)直接訪問該DSN。

以上八條Asp編碼優(yōu)化技巧,每一條都很重要,需要大家細(xì)細(xì)體會(huì),真正的理解成為自己的東西。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产三级自拍| 九九热在线视频观看| 国产在线免费观看| 欧美性xxxx交| 欧美婷婷久久五月精品三区| 亚洲成av人影片在线观看| 亚洲一道本在线| 超碰国产在线| 国产精美视频| 四虎影院成人| 国内精品不卡| 牛牛在线精品视频| 精品资源在线看| 国产黄视频网站| jizz在线视频| 国内精品一区视频| 在线中文字幕视频观看| 免费不卡中文字幕视频| 国产污视频在线| 人日人天天爽| 一区二区三区四区在线免费视频| 日本高清中文字幕在线| 中文字幕有码在线视频| 日本一二三区视频免费高清| 高潮毛片在线观看| 亚洲天堂电影在线观看| 超碰免费在线观看| 在线视频中文字幕第一页| 成网站在线观看人免费| 99热国产在线| 国产精品美女一区二区视频| 超碰国产在线| 日本在线观看网站| 亚洲高清在线免费| 国产免费黄网站| 国产人成在线观看| 尤物在线视频观看| 九九视频精品在线| 中文乱码字幕高清在线观看| 国产偷窥老熟盗摄视频| 欧美精品另类| 91激情在线| 国产黄在线观看免费观看不卡| 免费看ww视频网站入口| 亚洲第一成人在线视频| 精品欧美不卡一区二区在线观看| 91超碰在线免费| 黄网站在线观看高清免费| 亚洲综合色视频在线观看| 国产成人无吗| 国产高潮av| 92国产在线视频| 精品偷拍激情视频在线观看| 国产激情小视频在线| 69国产精品视频| 国产福利片在线| 91精品国产高久久久久久五月天| 国产黄色片中文字幕| 国产精品美女一区二区视频| 国产日韩网站| 国产成人精品自线拍| 2018中文字幕在线| wwww在线观看| 国产精品作爱| 91这里只有精品| 青青草免费在线视频| 99视频在线观看地址| 久精品在线观看| 国产精品国产国产aⅴ| 精品成人一区二区三区免费视频| 亚洲视频网站在线| 人人澡人人爽| 国产91足控脚交在线观看| 日本国产在线| 国产三级视频| 另类高清dbsm日本tvav| 国产精品乱码一区二区三区视频 | 欧美xxxxx性| 国产午夜视频在线观看| 在线成人综合色一区| 国产鲁鲁视频在线观看特色| 国产精品免费视频一区一| 免费黄网站在线观看| 国产精品18久久久久网站| 黄色国产网站在线观看| 五月婷婷开心综合| www狠狠操| 99精品老司机免费视频| 综合蜜桃精品| 欧美高清xxxx性| 亚洲wwwwww| 在线国产1区| 国产叼嘿网站免费观看不用充会员| 日本视频在线| www.综合网.com| 在线视频三区| 亚洲欧美日韩成人网| 国产黄色免费网| 国产超碰在线观看| 91av福利| 国产精品视频h| 国产系列在线观看| 国产午夜电影| 国产xxx在线| 精精国产xxxx视频在线| 国产h在线观看| 在线免费日韩| baoyu777.永久免费视频| 99综合精品久久| 在线观看的av网站| 香蕉视频网站在线观看| 一本大道香蕉久久| av在线资源网| 国产尤物一区二区三区| 国产麻豆高清视频在线第一页| www.狠狠| 最近久乱中文字幕| 中文字幕视频在线| 国产黄在线看| 不卡av免费观看| 国产精选在线观看| 91在线视频免费看| 免费a级人成a大片在线观看| 国产农村一级特黄α**毛片| 最好2018中文免费视频| 国产黄网站在线观看| av手机天堂| 丁香在线视频| 96久久久久久| 99热在线免费播放| 精品麻豆一区二区三区| eeuss影院在线| 国产一级二级在线| 在线国产中文字幕| 国产网站免费观看| 秋霞av在线| 97在线超碰| 尤物网址在线观看| www555久久| 精品入口蜜桃| 福利资源在线久| 精品成人免费自拍视频| 国产网红在线| 激情综合丁香| 午夜在线视频| 国产激情三区| 日本中文字幕视频在线| 人成在线免费视频| 在线免费观看污| 国产精品视频一区麻豆| 国产中文在线视频| 麻豆国产视频| 本道综合精品| 男人天堂v视频| 日本黄在线观看| 亚洲伊人网在线观看| 国产黄在线观看| 国产精品免费91| 国产深夜视频在线观看| 尤物免费看在线视频| wwwww在线观看免费视频| 精品女厕厕露p撒尿| 国产精品入口麻豆完整版| 91超碰免费在线| 国产一区在线视频观看| 免费在线看v| 国产在线观看18| 国产九九九九| 国产精品入口免费麻豆| 国产精品69一区二区三区| 国产精品伦一区二区三区级视频频| 日本中文字幕视频| 午夜国产在线| 制服丝袜中文字幕在线观看| 亚洲综合在线网| 啪啪免费视频一区| 日本一二三区视频免费高清| www.91av| 激情在线视频播放| 最近中文字幕mv免费高清视频8 | 久草国产视频| 国产美女一区视频| 中文字幕不卡免费视频| 中文字幕中文字幕在线中高清免费版| 国产一区二区影视| 精品一区二区91| 老师我好爽再深一点的视频| 国产乱子视频| 中文字幕成人乱码在线电影| 精品国产一区二区三区不卡在线| www操操操| 天堂资源最新在线| 四虎成人欧美精品在永久在线| 欧美精品久久久久久久小说| 国产视频xxx| 久久香蕉一区| 9色在线视频网站| 91xxx在线观看| а√资源新版在线天堂| 2019年中文字幕|