ASP設計常見(jiàn)問(wèn)題及解答精要-1 |
作者:佚名 發(fā)布時(shí)間:2009-06-22 瀏覽:2039次 |
作為微軟推出的網(wǎng)頁(yè)與數據庫解決方案,ASP由于有微軟得天獨厚的操作系統等技術(shù)后盾支持,因此得到了迅速的發(fā)展,并且正受到越來(lái)越多的歡迎,在目前在電子商務(wù)網(wǎng)站的建設中有很多都使用ASP來(lái)編寫(xiě)程序。 近來(lái)有很多的讀者向我們咨詢(xún)學(xué)習ASP的方法和在學(xué)習中遇到的一些問(wèn)題,其中有一些是初學(xué)者經(jīng)常遇到和面臨的問(wèn)題。為了讓讀者在學(xué)習ASP的過(guò)程中加深對ASP的了解,并能夠有效地解決遇到的問(wèn)題,我們特別收集了比較有代表性的一些問(wèn)題,在此列舉出來(lái)并一一給予解答,希望能在這有限的篇幅里為你學(xué)習ASP助一臂之力。 1、問(wèn)題:ASP是一種編程語(yǔ)言嗎? 答:ASP不是編程語(yǔ)言,而是一種開(kāi)發(fā)環(huán)境。ASP提供了一個(gè)在服務(wù)器端執行指令的環(huán)境,它利用了特殊的符號()來(lái)區分HTML與必須經(jīng)過(guò)服務(wù)器翻譯才能送往客戶(hù)端的命令。它可以執行的指令包括HTML語(yǔ)言,Microsoft VBScript和Microsoft Jscript等,因此可以制作出功能強大的Web應用程序。 2、問(wèn)題:在Web服務(wù)器上容納多個(gè)Web站點(diǎn),能使用PWS嗎? 答:在PWS上只能容納一個(gè)Web站點(diǎn)。為了在相同的計算機上容納多個(gè)Web站點(diǎn),需要使用Windows NT Server或Windows 2000 Server/Professional和IIS。 3、問(wèn)題:如何使用6個(gè)內置ASP對象? 答:ASP提供了多個(gè)內嵌對象,無(wú)須建立就可以在指令中直接訪(fǎng)問(wèn)和使用它們,這六個(gè)對象主要有:請求(Request)對象、響應(Response)對象、工作階段(Session)對象、應用程序(Application)對象、服務(wù)器(Server)對象、Cookies對象,這六個(gè)對象中的服務(wù)器(Server)對象可加載其他組件,這可以擴展ASP的功能。 使用Server.CreateObject所建立的對象,它的生命周期在它建立時(shí)開(kāi)始,在它所在的網(wǎng)頁(yè)程序結束時(shí)結束。如果想要讓該對象跨網(wǎng)頁(yè)使用,則可以用Session對象來(lái)記錄Server.CreateObject所建立的對象。 4、問(wèn)題:為什么在使用Response.Redirect的時(shí)候出現以下錯誤:“標題錯誤,已將HTTP標題寫(xiě)入用戶(hù)端瀏覽器,對任何HTTP的標題所作的修改必須在寫(xiě)入頁(yè)內容之前”? 答:Response.Redirect可以將網(wǎng)頁(yè)轉移至另外的網(wǎng)頁(yè)上,使用的語(yǔ)法結構是這樣的:Response.Redirect網(wǎng)址,其中網(wǎng)址可以是相對地址或絕對地址,但在IIS4.0使用與在IIS5.0使用有所不同。 在IIS4.0轉移網(wǎng)頁(yè)須在任何數據都未輸出至客戶(hù)端瀏覽器之前進(jìn)行,否則會(huì )發(fā)生錯誤。這里所謂的數據包括HTML的卷標,例如:< HTML>,< BODY>等,而在IIS5.0中已有所改進(jìn),在IIS5.0的默認情況下緩沖區是開(kāi)啟的,這樣的錯誤不再產(chǎn)生。 在Response對象中有一Buffer屬性,該屬性可以設置網(wǎng)站在處理ASP之后是否馬上將數據傳送到客戶(hù)端,但設置該屬性也必須在傳送任何數據給客戶(hù)端之前。 為保險起見(jiàn),無(wú)論采用何種ASP運行平臺,在頁(yè)面的開(kāi)始寫(xiě)上< % Response.Buffer=True %>,將緩沖區設置為開(kāi)啟,這樣的錯誤就不會(huì )發(fā)生了。 5、問(wèn)題:緩沖輸出對于網(wǎng)頁(yè)傳輸有沒(méi)有影響? 答:在比較大的Web頁(yè)中,第一部分在瀏覽器中出現可能會(huì )有一些延遲,但是加載整個(gè)Web頁(yè)的速度比不用緩沖要快。 6、問(wèn)題:在沒(méi)有表單提交時(shí)查詢(xún)字符串的值是否可以使用Request.QueryString集合? 答:Request對象用于讀取瀏覽器的數據,它除了可以讀取表單字段的內容,還可以用來(lái)讀取附帶在網(wǎng)址后面的參數,無(wú)論請求字符串怎樣添加到鏈接地址中對Request來(lái)說(shuō)都沒(méi)有什么不同。使用get方法提交一個(gè)表單,還是跟隨一個(gè)附加查詢(xún)串的鏈接查詢(xún)字符串中所有的值,都可以使用Request.QueryString集合。 7、問(wèn)題:我在A(yíng)SP腳本中寫(xiě)了很多的注釋?zhuān)@會(huì )不會(huì )影響服務(wù)器處理ASP文件的速度? 答:在編寫(xiě)程序的過(guò)程中,作注釋是良好的習慣。經(jīng)國外技術(shù)人員測試,帶有過(guò)多注釋的ASP文件整體性能僅僅會(huì )下降0.1%,也就是說(shuō)在實(shí)際應用中基本上不會(huì )感覺(jué)到服務(wù)器的性能下降的。 8、問(wèn)題:需不需要在每個(gè)ASP文件的開(kāi)頭使用< % @LANGUAGE=VBScript % >? 答:在每個(gè)ASP文件的開(kāi)頭使用< % @LANGUAGE=VBScript %>代碼是用來(lái)通知服務(wù)器現在使用VBScript來(lái)編寫(xiě)程序,但因為ASP的預設程序語(yǔ)言是VBScript,因此忽略這樣代碼也可以正常運行,但如果程序的腳本語(yǔ)言是JavaScrip,就需要在程序第一行指明所用的腳本語(yǔ)言。 |