性感美女福利视频,成人欧美一区二区,欧美日韩国产影院,国产精品一区二区视频


西安網站建設|西安網站制作|西安做網站_網站知識交流論壇網站技術網絡編程學習 → ASP腳本的執行順序


  共有15964人關注過本帖樹形打印

主題:ASP腳本的執行順序

帥哥喲,離線,有人找我嗎?
玖佰網絡
  1樓 個性首頁 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發短信
等級:新手上路 帖子:24 積分:290 威望:0 精華:0 注冊:2009/8/27 18:10:22
ASP腳本的執行順序  發帖心情 Post By:2009/8/28 14:24:21

首先我們先來了解一下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無刷新而后臺訪問服務器端的頁面,那么就是運行于客戶端的了,自然在客戶端創建。
  ADODB.Connection組件用于訪問數據庫,一般來說在服務器端創建,畢竟是服務器端的asp程序在跑數據庫的數據,但如果你的數據庫真的是在客戶端連接的,那么就毫無疑問在客戶端腳本里創建了。
  總之,矛盾著的事物及其每一個側面各有其特點。不同事物有不同的矛盾;同一事物在發展的不同過程和不同階段上有不同的矛盾;同一事物中的不同矛盾、同一矛盾的兩個不同方面各有其特殊性(看不懂的可以略去不看……)。這一原理要求我們堅持具體問題具體分析原則,在矛盾普遍性原理的指導下,具體分析矛盾的特殊性,并找出解決矛盾的正確方法。反對千篇一律地采用一種方法解決不同事物的矛盾。“一把鑰匙開一把鎖,到什么山唱什么歌”講的就是這個道理。
  服務器端VBScript腳本創建對象使用Server.CreateObject(className)方法,客戶端VBScript腳本創建對象使用CreateObject(className)方法。

典型錯誤
<%
Function TSize(b)
'這是我自定義的函數
TSize="中國"
end function
%>
<a href="javascript:<%TSize('變量')%>" >點這里要使用我定義的函數</a>
  錯誤分析:
  混淆了服務器端腳本和客戶端腳本的區別。實際執行時我們會發現,客戶端根本沒有收到什么TSize之類的代碼,因為TSize是服務器端的程序,被引擎處理之后(注意引擎對于函數的處理,純粹是給服務器端腳本調用的,不會發回到客戶端)就消失了,不可能在客戶端起作用。這就是說,客戶端腳本無法直接調用服務器端腳本的函數。
  事實上,這個程序是有語法錯誤的,引擎處理這段內容的時候先找到了<%和%>之間的內容,也就是<%TSize('變量')%>,顯然這段內容不符合VBScript的語法規則。嗯,改成<%=TSize("變量")%>在服務器端腳本就沒有語法錯誤了,這時TSize函數可以正常返回值"中國",于是客戶端收到的href屬性是這樣寫的:"javascript:中國",是無法執行的。

服務器端腳本對客戶端腳本的影響
  前面已經說過了,服務器端腳本在邏輯上是提前于客戶端腳本的執行的,因此這樣的代碼是可行的:
<%
Dim i
For i=1 to 5
Response.Write "<script type=""text/javascript"">" _
& "alert('Hello World!" & i & "')</script>"
Next
%>

關于Response.Redirect與javascript的執行問題
  注意以下代碼的寫法是錯誤的:
<%
Response.Redirect "index.asp"
Response.Write "<script type=""text/javascript"">" _
& "alert('密碼錯誤!')</script>"
%>
  這是一種常見的錯誤,編寫者常常以為,這樣寫代碼可以使客戶端先彈出“密碼錯誤”的提示然后轉向到index.asp,事實上這不可能發生,即使將兩行代碼順序交換,也不可能達到這種效果。
  究其原因,和服務器對于兩行代碼的處理方式有關。這兩行代碼不可能同時起作用。
  Response.Write是向客戶端發送一段文本,這段文本的內容可以是一段腳本,那么客戶端瀏覽器收到后可以執行這段腳本,注意,要收到之后才能執行。
  而Response.Redirect是向客戶端發送了一個HTTP頭信息(什么是HTTP頭信息?這么說吧,比如對客戶端Cookies的寫入是HTTP頭信息,HTTP頭信息在HTTP的主體之前發回客戶端瀏覽器,這就是為什么有時我們把服務器的緩沖關閉之后修改Cookies會出錯的原因,因為主體已經開始傳送,不允許發送HTTP頭信息了。),信息的內容告訴客戶端瀏覽器應該跳轉頁面瀏覽,注意,這個Redirect信息是立刻起作用的,也就是說這個Redirect信息具有排他性,在緩沖打開的情況下,無論已經使用Response.Write向緩沖里寫入了多少內容,一旦調用Response.Redirect,將會清空緩沖,并且向客戶端瀏覽器發送這個頭指令。如果動態跟蹤一下程序的執行,我們還會發現,在調用了Response.Redirect之后,程序停止執行了,所以注意服務器端程序在調用Response.Redirect之前要做好數據連接的關閉等操作。
  那么上面的例子應該怎樣修改呢?如果你不愿意修改那個index.asp以加入腳本提示的話,那么只能將轉向指令放到客戶端腳本中執行,就像這樣:
<%
Response.Write "<script type=""text/javascript"">" _
& "alert('!');location.href='index.asp'</script>"
%>


支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

返回版面帖子列表

ASP腳本的執行順序








簽名
爱啪视频在线观看视频免费| 26uuu另类亚洲欧美日本老年| 国产在线综合网| 国产精品美女久久久浪潮软件| av磁力番号网| 麻豆视频在线免费观看| 精品一区二区三区在线观看视频| 444亚洲人体| 日韩中文首页| 欧美三日本三级少妇99| 欧美激情在线看| 日韩伦理在线免费观看| 欧美一区影院| 久久精品丝袜高跟鞋| 永久免费av片在线观看全网站| 久久久亚洲综合网站| 国产精品tv| 欧美日韩一二三四区| 欧美xxxx做受欧美| 久久中文欧美| 欧美成人免费高清视频| 高清免费成人av| 久久夜色邦福利网| 国产亚洲欧洲高清| 午夜男人视频在线观看| 99精品99久久久久久宅男| 日韩在线亚洲| 一区二区不卡免费视频| 免费精品视频在线| 久久亚洲国产成人精品无码区| 亚洲伦乱视频| 日本一区二区在线| 亚洲欧美一级| 99re8这里只有精品| 国产欧美短视频| 影音先锋亚洲电影| 成人在线视频一区二区三区| 日韩不卡一二三区| 区一区二在线观看| 国产在线精品播放| 亚洲人人精品| 亚洲成在人线免费视频| 欧美人成网站| 这里只有精品在线观看视频| 欧美成人禁片在线观看网址| 欧美日韩dvd在线观看| 嫩草精品影院| 超碰97人人射妻| 韩国av一区二区| 亚洲福利在线观看视频| 日韩精品一区二区在线视频| 欧美香蕉大胸在线视频观看| 9999在线精品视频| 中文字幕一区二区三区四区视频| 国产精品va在线播放我和闺蜜| 秋霞av亚洲一区二区三| 国产成人精品免费看视频| 99久久www免费| 久久亚洲AV无码| 国产一区二区三区丝袜| 99热国内精品永久免费观看| 中文字幕码精品视频网站| 中文字幕亚洲电影| 99成人国产精品视频| 久久狠狠久久综合桃花| 亚洲精品欧美专区| 麻豆mv在线看| 久久久一二三区| 国产精品国产三级国产普通话99| 麻豆网站免费在线观看| 亚洲在线激情| av黄色在线免费观看| 久久av一区二区三区漫画| 欧美日韩一区视频| 欧美日韩一卡| 欧美5-7sexvideos处| 日日干日日操日日射| 欧美成人一级视频| 粉嫩喷白浆久久| 加勒比在线一区二区三区观看| 国产成人精品免费| 免费的黄网站在线观看| 久久黄色片网站| 精品一区二区久久久| 这里只有精品9| 日韩精品黄色网| 国产又色又爽又黄又免费| 欧美日韩在线观看一区二区| 免费一级毛片在线观看| 国产精品18p| 国产日韩在线免费| 国产精品久久久久久久岛一牛影视| 免费91视频| 看看黄色一级片| 亚洲天堂成人在线| 国产成人av网站| 中文字幕永久免费视频| 中文字幕无人区二| 日韩精品无码一区二区三区| 亚洲精品一区二区三区福利| 可播放的18gay1069| 深爱五月激情网| 国产精品久久中文| 成人自拍视频在线| 精品国产999久久久免费| 亚洲精品一区二区久| 亚洲国产国产亚洲一二三| 你懂的在线网址| 日本少妇裸体做爰| xxxxxxxxx欧美| 免费观看一二区视频网站| av中文字幕av| 午夜婷婷国产麻豆精品| 无码日韩精品一区二区| 欧美成人全部免费| 三级不卡在线观看| 亚洲天堂一区二区| 国产精品亚洲色图| 四虎精品一区二区| 高清欧美性猛交xxxx| 亚洲欧美色一区| 老司机亚洲精品一区二区| 国产精品久久亚洲不卡| 久久精品免费在线观看| 国产精品久久久久久亚洲影视| 日韩美女主播视频| 加勒比久久综合| 欧美性高跟鞋xxxxhd| 欧美日韩不卡一区| 中文字幕精品一区二区精品绿巨人| 欧美日韩精品一本二本三本 | 欧美专区福利免费| 中文字幕无码乱码人妻日韩精品| 国产日产精品一区二区三区四区| 国产成人精品午夜视频免费| 在线观看h片| 亚洲精品视频在线观看免费视频| 国产精品久久一区主播| 一区二区三区美女视频| 在线激情网站| 男女性杂交内射妇女bbwxz| 色悠悠久久综合| 香蕉成人在线| 久久久精品福利| 亚洲在线视频观看| 欧美香蕉大胸在线视频观看| av2020不卡| 亚洲精品天堂网| 精品三级在线观看| 噜噜噜狠狠夜夜躁精品仙踪林| 无码国产精品一区二区免费16| xxx中文字幕| 成人黄色大片在线免费观看| 国产精品一区二区黑丝| 中文字幕乱码在线播放| 日本一区二区三区久久| 日韩a∨精品日韩在线观看| 桥本有菜亚洲精品av在线| 欧美brazzers| 电影久久久久久| 亚洲国产日产av| 好吊色这里只有精品| 欧美色欧美亚洲另类二区精品| 免费观看久久av| 国产精品资源在线| 日本护士...精品国| 粉嫩一区二区三区性色av| 不卡一卡2卡3卡4卡精品在| www男人的天堂| 亚洲ab电影| 伊人久久五月天| 国产探花在线视频| 成人三级高清视频在线看| 午夜精品福利久久久| 红桃av在线播放| 日本激情免费| 国产喂奶挤奶一区二区三区| 日韩欧美精品久久| www.91香蕉视频| 久久爱www久久做| 精品九九九九| 一个人免费观看日本www视频| 日韩影院精彩在线| aa成人免费视频| 亚州欧美精品suv| 亚洲欧美不卡| 91偷拍精品一区二区三区| 2020亚洲男人天堂| 亚洲欧美另类视频| www日韩tube| 一级中文字幕一区二区| 国产精品日韩在线| 欧美激情va永久在线播放| 欧美午夜丰满在线18影院| 99久久综合国产精品| 久久99国产精品尤物| 国产字幕视频一区二区| 日韩一级特黄| 日本a级片免费| 成人精品国产免费网站|