了解 ASP 指令碼處理程序
了解用戶端指令碼的處理方式以及錯誤的處理方式,可以協助您順利偵錯用戶端指令碼。
處理用戶端指令碼
Microsoft Internet Explorer 會處理用戶端指令碼, 瀏覽器會呼叫適合的執行階段模組來處理 VBScript 指令碼或 JScript 指令碼。
將 Web 文件載入至瀏覽器時,會開始剖析用戶端指令碼。 在這個剖析階段,瀏覽器會報告它所發現的任何語法錯誤。
剖析了一段指令碼之後,瀏覽器會執行該段指令碼。 不屬於事件處理副程式或函式之一部分的全域指令碼 (Global Script) 或內嵌指令碼 (Inline Script) 則會立即執行。 會立即進行事件處理副程式或函式,以及由其他程序所呼叫之程序的剖析,但要到由事件觸發或由另一個程序呼叫之後才會執行。
如果用戶端指令碼在執行時發生了執行階段錯誤,就會顯示錯誤訊息,並停止含有該錯誤的指令碼, 但文件中其他用戶端指令碼仍然可以執行 (除非您啟動偵錯工具)。 如果再次呼叫含有該錯誤的指令碼,就會再次顯示錯誤訊息。
依據所使用的程式語言而定,您可以在指令碼中加入陳述式來截取執行階段錯誤,並執行自己的錯誤程序。 例如,在 VBScript 中,您可以使用 ON ERROR 陳述式來建立錯誤截取機制。 如需詳細資訊,請參閱您的指令碼語言文件。
處理伺服器指令碼
大部分的伺服器指令碼並不是由事件驅動, 而是在要求 ASP 檔案時,伺服器會讀取頁面並從上到下處理所有伺服器指令碼。 內嵌於 HTML 文字中的內嵌指令碼則會傳回用戶端進行處理。
並不是所有的伺服器指令碼都會立即執行, 例如用戶端指令碼,伺服器指令碼也可能包含函式和副程式,只有當其他程序呼叫這些函式和副程式時它們才會執行。
Global.asa 檔案是特殊案例。 這些檔案中的 Application_OnStart 和 Session_OnStart 程序只會針對應用程式和工作階段執行一次。 因此,若要輕鬆地偵錯這些事件,您必須在檔案中內嵌偵錯陳述式。 如需詳細資訊,請參閱<偵錯 Global.asa 檔案>。