bababa Groupie
加入: 2004/5月/29
Online Status: Offline 回復: 46
|
Posted: 2004/5月/29 3:43下午 | IP記錄
|
|
|
作為微軟推出的網頁與資料庫解決方案,ASP由於有微軟得天獨厚的操作系統等技術後盾支持,因此得到了迅速的發展,並且正受到越 來越多的歡迎,在目前在電子商務網站的建設中有很多都使用ASP來編寫程式。
近來有很多的讀者向我們咨詢學習ASP的方法和在學習中遇到的一些問題,其中有一些是初學者經常遇到和面臨的問題。為了讓讀 者在學習ASP的過程中加深對ASP的瞭解,並能夠有效地解決遇到的問題,我們特別收集了比較有代表性的一些問題,在此列舉出來 並一一給予解答,希望能在這有限的篇幅裡為你學習ASP助一臂之力。
1、問題:ASP是一種編程語言嗎?
答:ASP不是編程語言,而是一種開發環境。ASP提供了一個在服務器端執行指令的環境,它利用了特殊的符號()來區分HT ML與必須經過服務器翻譯才能送往客戶端的命令。它可以執行的指令包括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)對像、服務器(Serv er)對像、Cookies對象,這六個對象中的服務器(Server)對象可加載其他元件,這可以擴展ASP的功能。
使用Server.CreateObject所建立的對象,它的生命週期在它建立時開始,在它所在的網頁程式結束時結束。如 果想要讓該對像跨網頁使用,則可以用Session對像來記錄Server.CreateObject所建立的對象。
4、問題:為什麼在使用Response.Redirect的時候出現以下錯誤:「標題錯誤,已將HTTP標題寫入使用者端 瀏覽器,對任何HTTP的標題所作的修改必須在寫入頁內容之前」?
答:Response.Redirect可以將網頁轉移至另外的網頁上,使用的語法結構是這樣的:Response.Red irect網址,其中網址可以是相對地址或絕對地址,但在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,就需要在程式第一行指明所用的指令碼語言。
|