Asp設計常見問題及解答精要

來源:互聯網
上載者:User
解答|設計|問題 作為微軟推出的網頁與資料庫解決方案,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,就需要在程式第一行指明所用的指令碼語言。
9、問題:我有沒有必要在每一個ASP檔案中使用“Option Explicit”?

  答:在實際應用中,VBScript變數的概念已經模糊了,允許直接使用變數,而不用Dim聲明變數,但這並不是一個好習慣,容易造成程式錯誤,因為可能重複定義一個變數。我們可以在程式中使用Option Explicit語句,這樣在使用一個變數的時候,必須先聲明它,如果使用了沒有經過聲明的變數,運行時,程式就會出錯。

  實踐證明,ASP檔案中使用“Option Explicit”可以使得程式出錯機會降到最少,並且會大大提升整體效能。

  10、問題:運行ASP檔案時有什麼安全措施?

  答:ASP提供了很好的代碼保護機制,所有的ASP代碼都在伺服器端執行而只返回給用戶端代碼執行結果。但仍不排除惡意人士對Web伺服器的刻意破壞,所以在編寫ASP檔案時更要注意安全問題。

  雖然在ASP中引入檔案以inc作為副檔名,在這裡仍建議以ASP作為引檔案的副檔名。當這些代碼在安全機制不好的Web Server上運行時,只需在地址欄上輸入引入檔案的地址(inc為副檔名),就可以瀏覽該引入檔案的內容,這是由於在Web Server上,如果沒有定義好解析某類型(比如inc)的動態串連庫時,該檔案以源碼方式顯示。

  另外,不要把資料庫檔案放在網站結構內部,這樣,當惡意人士擷取資料庫路徑後,就可以輕易擷取該資料庫,進而肆意更改資料庫內容。比較好的做法是,為資料庫建立資料來源名稱DSN(Date Source Name),在DSN中儲存了有關串連到指定資料提供者的資訊,包括:“資料庫的物理位置,用於訪問資料庫的驅動程式的類型,訪問資料庫的驅動程式所需要的任何其他參數”,在進行資料庫訪問時可以直接存取該DSN。

  11、問題:評介Web資料庫管理系統時,應該考慮哪些問題?

  答:在評價一個Web資料庫管理系統時,必須考慮到三方面的問題:多使用者問題;所建立的Web資料庫應該是關係型的;資料庫的安全性問題。
  12、問題:ADO是什麼,它是如何操作資料庫的?

  答:ADO的全名是ActiveX Data Object(ActiveX資料對象),是一組最佳化的訪問資料庫的專用對象集,它為ASP提供了完整的網站資料庫解決方案,它作用在伺服器端,提供含有資料庫資訊的首頁內容,通過執行SQL命令,讓使用者在瀏覽器畫面中輸入,更新和刪除網站資料庫的資訊。

  ADO主要包括Connection,Recordset和Command三個對象, 它們的主要功能如下:

  ·Connection對象:負責開啟或串連資料庫檔案;
  ·Recordset對象:存取資料庫的內容;
  ·Command對象:對資料庫下達行動查詢指令,以及執行SQL Server的預存程序。

  13、問題:使用Recordset對象和Command對象來訪問資料庫的區別在哪裡?

  答:Recordset對象會要求資料庫傳送所有的資料,那麼資料量很大的時候就會造成網路的阻塞和資料庫伺服器的負荷過重,因此整體的執行效率會降低。
利用Command對象直接調用SQL語句,所執行的操作是在資料庫伺服器中進行的,顯然會有很高的執行效率。特別是在伺服器端執行建立完成的預存程序,可以降低網路流量,另外

[1] [2] [3] 下一頁  



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.