作為微軟推出的網頁與資料庫解決方案,ASP由於有微軟得天獨厚的作業系統等技術後盾支援,因此得到了迅速的發展,並且正受到越來越多的歡迎,在目前在電子商務網站的建設中有很多都使用ASP來編寫程式。
近來有很多的讀者向我們諮詢學習ASP的方法和在學習中遇到的一些問題,其中有一些是初學者經常遇到和面臨的問題。為了讓讀者在學習ASP的過程中加深對ASP的瞭解,並能夠有效地解決遇到的問題,我們特別收集了比較有代表性的一些問題,在此列舉出來並一一給予解答,希望能在這有限的篇幅裡為你學習ASP助一臂之力。
1、問題:ASP是一種程式設計語言嗎?
答:ASP不是程式設計語言,而是一種開發環境。ASP提供了一個在伺服器端執行指令的環境,它利用了特殊的符號()來區分HTML與必須經過伺服器翻譯才能送往用戶端的命令。它可以執行的指令包括HTML語言,Microsoft VBscript和Microsoft Jscript等,因此可以製作出功能強大的Web應用程式。
2、問題:在Web伺服器上容納多個Web網站,能使用PWS嗎?
答:在PWS上只能容納一個Web網站。為了在相同的電腦上容納多個Web網站,需要使用Windows NT Server或Windows 2000 Server/Professional和IIS。
3、問題:如何使用6個內建ASP對象?
答:ASP提供了多個內嵌對象,無須建立就可以在指令中直接存取和使用它們,這六個對象主要有:請求(Request)對象、響應(Response)對象、工作階段(Session)對象、應用程式(Application)對象、伺服器(Server)對象、Cookies對象,這六個對象中的伺服器(Server)對象可載入其他組件,這可以擴充ASP的功能。
使用Server.CreateObject所建立的對象,它的生命週期在它建立時開始,在它所在的網頁程式結束時結束。如果想要讓該對象跨網頁使用,則可以用Session對象來記錄Server.CreateObject所建立的對象。
4、問題:為什麼在使用Response.Redirect的時候出現以下錯誤:“標題錯誤,已將HTTP標題寫入使用者端瀏覽器,對任何HTTP的標題所作的修改必須在寫入頁內容之前”?
答:Response.Redirect可以將網頁轉移至另外的網頁上,使用的文法結構是這樣的:Response.Redirect網址,其中網址可以是相對位址或絕對位址,但在IIS4.0使用與在IIS5.0使用有所不同。
在IIS4.0轉移網頁須在任何資料都未輸出至用戶端瀏覽器之前進行,否則會發生錯誤。這裡所謂的資料包括HTML的卷標,例如:< HTML>,< BODY>等,而在IIS5.0中已有所改進,在IIS5.0的預設情況下緩衝區是開啟的,這樣的錯誤不再產生。
在Response對象中有一Buffer屬性,該屬性可以設定網站在處理ASP之後是否馬上將資料傳送到用戶端,但設定該屬性也必須在傳送任何資料給用戶端之前。
為保險起見,無論採用何種ASP運行平台,在頁面的開始寫上< % Response.Buffer=True %>,將緩衝區設定為開啟,這樣的錯誤就不會發生了。
5、問題:緩衝輸出對於網頁傳輸有沒有影響?
答:在比較大的Web頁中,第一部分在瀏覽器中出現可能會有一些延遲,但是載入整個Web頁的速度比不用緩衝要快。
6、問題:在沒有表單提交時查詢字串的值是否可以使用Request.QueryString集合?
答:Request對象用於讀取瀏覽器的資料,它除了可以讀取表單欄位的內容,還可以用來讀取附帶在網址後面的參數,無論請求字串怎樣添加到連結地址中對Request來說都沒有什麼不同。使用get方法提交一個表單,還是跟隨一個附加查詢串的連結查詢字串中所有的值,都可以使用Request.QueryString集合。
7、問題:我在ASP指令碼中寫了很多的注釋,這會不會影響伺服器處理ASP檔案的速度?
答:在編寫程式的過程中,作注釋是良好的習慣。經國外技術人員測試,帶有過多注釋的ASP檔案整體效能僅僅會下降0.1%,也就是說在實際應用中基本上不會感覺到伺服器的效能下降的。
8、問題:需不需要在每個ASP檔案的開頭使用< % @LANGUAGE=VBscript % >?
答:在每個ASP檔案的開頭使用< % @LANGUAGE=VBscript %>代碼是用來通知伺服器現在使用VBscript來編寫程式,但因為ASP的預設程式語言是VBscript,因此忽略這樣代碼也可以正常運行,但如果程式的指令碼語言是JavaScrip,就需要在程式第一行指明所用的指令碼語言。