国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

ASP腳本的執行順序詳細說明

2024-05-04 10:59:45
字體:
來源:轉載
供稿:網友
首先我們先來了解一下ASP頁面執行的流程
1.IIS找到ASP文件,提交給ASP引擎(一般是ASP.DLL)處理。
2.引擎打開這個ASP文件,找出<%和%>之間的內容,當然還有<script runAt="server">和對應的</script>之間的內容,這些內容稱為腳本塊。只有腳本塊里的內容被引擎解析,其他內容不管,作為沒有意義的字符插在腳本塊之間。有必要說明一下的是,其實被解析的內容還不止這些,<!--#include ***-->類的服務器端包含文件也是由引擎包含進來并加以處理的。如果你讀的程序比較多,你還會知道有的runAt屬性標注為"Server"的<object>對象也是會被處理的,這里不做深入討論。
3.引擎執行腳本塊中的腳本,這些服務器端的腳本是作為一個整體被執行的,也就是說,可以寫出如下的代碼:
復制代碼 代碼如下:
<%
Dim i
For i=1 to 5
%> Hello World!
<% Next %>

引擎并不會將這些腳本塊分開解析,而使兩個腳本塊都發生語法錯誤。所以我們得到如下結論:并非所有非服務器腳本的代碼都會被發送到客戶端,有可能這段非服務器腳本的代碼被腳本塊限制了。服務器是一定不會操心客戶端腳本的執行問題的,但是可以通過服務器端的腳本輸出不同的客戶端腳本。

4.最終引擎產生了一個文本流,或者說是腳本的執行結果,可以認為這是一個字符串,就是發送到客戶端瀏覽器的網頁的代碼。客戶端瀏覽器將頁面顯示出來,此時頁面的源代碼(源文件)是不包含服務器端的腳本的,但包含了服務器端腳本的執行結果(這是顯然的)。
<% … %> 與 <script runat="server">…</script>
它們都是服務器端的腳本,同時被處理執行。他們執行時是作為一個整體的。
<% … %> 與 <script language="…">…</script>
前者是服務器端腳本,后者是客戶端腳本。前者先執行,后者后執行。
其實也不盡然,二者的腳本是有可能在同時被執行的,但空間不同,仍然是:前者在服務器上執行,后者在客戶端瀏覽器里執行。前者在邏輯上一定提前于后者執行。同時我們也得到結論:在同一個頁面的執行中,客戶端腳本無論如何不能反饋給服務器端腳本,也就是說,客戶端瀏覽你的留言本并且提交新留言或者是任何客戶端腳本獲取的值都不可能在同一次服務器響應中被處理。
關于組件的調用
注意服務器端腳本和客戶端腳本都是腳本,自然都可以創建xmlhttp組件、ADODB.Connection組件等,但是并不是放在哪里都可以的。
xmlhttp如果用于服務器的抓取網頁(比如采集)就要在服務器腳本里創建了,而如果是用于客戶端的ajax無刷新而后臺訪問服務器端的頁面,那么就是運行于客戶端的了,自然在客戶端創建。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 会泽县| 开江县| 洛浦县| 恭城| 葵青区| 宽城| 孟津县| 衢州市| 义乌市| 登封市| 三江| 兰州市| 苏尼特右旗| 永嘉县| 苍溪县| 边坝县| 尼木县| 房山区| 永济市| 丰镇市| 稷山县| 辛集市| 罗平县| 新竹市| 平湖市| 西宁市| 怀来县| 江油市| 大名县| 乌鲁木齐市| 威海市| 霍邱县| 四子王旗| 怀柔区| 华蓥市| 胶州市| 海原县| 绩溪县| 宁化县| 华坪县| 察雅县|