好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > ASP腳本的執(zhí)行順序詳細(xì)說明

ASP腳本的執(zhí)行順序詳細(xì)說明

熱門標(biāo)簽:創(chuàng)意電話機(jī)器人 武穴地圖標(biāo)注 梧州市地圖標(biāo)注 世界地圖標(biāo)注了哪些城市 濟(jì)源電銷外呼系統(tǒng)線路 地圖標(biāo)注陽江 外呼線路批發(fā) java外呼系統(tǒng)是什么 石家莊慧營銷外呼系統(tǒng)
首先我們先來了解一下ASP頁面執(zhí)行的流程
1.IIS找到ASP文件,提交給ASP引擎(一般是ASP.DLL)處理。
2.引擎打開這個(gè)ASP文件,找出%和%>之間的內(nèi)容,當(dāng)然還有script runAt="server">和對應(yīng)的/script>之間的內(nèi)容,這些內(nèi)容稱為腳本塊。只有腳本塊里的內(nèi)容被引擎解析,其他內(nèi)容不管,作為沒有意義的字符插在腳本塊之間。有必要說明一下的是,其實(shí)被解析的內(nèi)容還不止這些,!--#include ***-->類的服務(wù)器端包含文件也是由引擎包含進(jìn)來并加以處理的。如果你讀的程序比較多,你還會知道有的runAt屬性標(biāo)注為"Server"的object>對象也是會被處理的,這里不做深入討論。
3.引擎執(zhí)行腳本塊中的腳本,這些服務(wù)器端的腳本是作為一個(gè)整體被執(zhí)行的,也就是說,可以寫出如下的代碼:
復(fù)制代碼 代碼如下:

%
Dim i
For i=1 to 5
%> Hello World!
% Next %>

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

4.最終引擎產(chǎn)生了一個(gè)文本流,或者說是腳本的執(zhí)行結(jié)果,可以認(rèn)為這是一個(gè)字符串,就是發(fā)送到客戶端瀏覽器的網(wǎng)頁的代碼。客戶端瀏覽器將頁面顯示出來,此時(shí)頁面的源代碼(源文件)是不包含服務(wù)器端的腳本的,但包含了服務(wù)器端腳本的執(zhí)行結(jié)果(這是顯然的)。
% … %> 與 script runat="server">…/script>
它們都是服務(wù)器端的腳本,同時(shí)被處理執(zhí)行。他們執(zhí)行時(shí)是作為一個(gè)整體的。
% … %> 與 script language="…">…/script>
前者是服務(wù)器端腳本,后者是客戶端腳本。前者先執(zhí)行,后者后執(zhí)行。
其實(shí)也不盡然,二者的腳本是有可能在同時(shí)被執(zhí)行的,但空間不同,仍然是:前者在服務(wù)器上執(zhí)行,后者在客戶端瀏覽器里執(zhí)行。前者在邏輯上一定提前于后者執(zhí)行。同時(shí)我們也得到結(jié)論:在同一個(gè)頁面的執(zhí)行中,客戶端腳本無論如何不能反饋給服務(wù)器端腳本,也就是說,客戶端瀏覽你的留言本并且提交新留言或者是任何客戶端腳本獲取的值都不可能在同一次服務(wù)器響應(yīng)中被處理。
關(guān)于組件的調(diào)用
注意服務(wù)器端腳本和客戶端腳本都是腳本,自然都可以創(chuàng)建xmlhttp組件、ADODB.Connection組件等,但是并不是放在哪里都可以的。
xmlhttp如果用于服務(wù)器的抓取網(wǎng)頁(比如采集)就要在服務(wù)器腳本里創(chuàng)建了,而如果是用于客戶端的ajax無刷新而后臺訪問服務(wù)器端的頁面,那么就是運(yùn)行于客戶端的了,自然在客戶端創(chuàng)建。

ADODB.Connection組件用于訪問數(shù)據(jù)庫,一般來說在服務(wù)器端創(chuàng)建,畢竟是服務(wù)器端的asp程序在跑數(shù)據(jù)庫的數(shù)據(jù),但如果你的數(shù)據(jù)庫真的是在客戶端連接的,那么就毫無疑問在客戶端腳本里創(chuàng)建了。

總之,矛盾著的事物及其每一個(gè)側(cè)面各有其特點(diǎn)。不同事物有不同的矛盾;同一事物在發(fā)展的不同過程和不同階段上有不同的矛盾;同一事物中的不同矛盾、同一矛盾的兩個(gè)不同方面各有其特殊性(看不懂的可以略去不看……)。這一原理要求我們堅(jiān)持具體問題具體分析原則,在矛盾普遍性原理的指導(dǎo)下,具體分析矛盾的特殊性,并找出解決矛盾的正確方法。反對千篇一律地采用一種方法解決不同事物的矛盾。“一把鑰匙開一把鎖,到什么山唱什么歌”講的就是這個(gè)道理。
服務(wù)器端VBScript腳本創(chuàng)建對象使用Server.CreateObject(className)方法,客戶端VBScript腳本創(chuàng)建對象使用CreateObject(className)方法。
典型錯(cuò)誤
復(fù)制代碼 代碼如下:

%
Function TSize(b)
'這是我自定義的函數(shù)
TSize="中國"
end function
%>
a href="javascript:%TSize('變量')%>" >點(diǎn)這里要使用我定義的函數(shù)/a>

錯(cuò)誤分析:
混淆了服務(wù)器端腳本和客戶端腳本的區(qū)別。實(shí)際執(zhí)行時(shí)我們會發(fā)現(xiàn),客戶端根本沒有收到什么TSize之類的代碼,因?yàn)門Size是服務(wù)器端的程序,被引擎處理之后(注意引擎對于函數(shù)的處理,純粹是給服務(wù)器端腳本調(diào)用的,不會發(fā)回到客戶端)就消失了,不可能在客戶端起作用。這就是說,客戶端腳本無法直接調(diào)用服務(wù)器端腳本的函數(shù)。

事實(shí)上,這個(gè)程序是有語法錯(cuò)誤的,引擎處理這段內(nèi)容的時(shí)候先找到了%和%>之間的內(nèi)容,也就是%TSize('變量')%>,顯然這段內(nèi)容不符合VBScript的語法規(guī)則。嗯,改成%=TSize("變量")%>在服務(wù)器端腳本就沒有語法錯(cuò)誤了,這時(shí)TSize函數(shù)可以正常返回值"中國",于是客戶端收到的href屬性是這樣寫的:"javascript:中國",是無法執(zhí)行的。
服務(wù)器端腳本對客戶端腳本的影響
前面已經(jīng)說過了,服務(wù)器端腳本在邏輯上是提前于客戶端腳本的執(zhí)行的,因此這樣的代碼是可行的:
復(fù)制代碼 代碼如下:

%
Dim i
For i=1 to 5
Response.Write "script type=""text/javascript"">" _
"alert('Hello World!" i "')/script>"
Next
%>

關(guān)于Response.Redirect與javascript的執(zhí)行問題
注意以下代碼的寫法是錯(cuò)誤的:
復(fù)制代碼 代碼如下:

%
Response.Redirect "index.asp"
Response.Write "script type=""text/javascript"">" _
"alert('密碼錯(cuò)誤!')/script>"
%>

這是一種常見的錯(cuò)誤,編寫者常常以為,這樣寫代碼可以使客戶端先彈出“密碼錯(cuò)誤”的提示然后轉(zhuǎn)向到index.asp,事實(shí)上這不可能發(fā)生,即使將兩行代碼順序交換,也不可能達(dá)到這種效果。
究其原因,和服務(wù)器對于兩行代碼的處理方式有關(guān)。這兩行代碼不可能同時(shí)起作用。

Response.Write是向客戶端發(fā)送一段文本,這段文本的內(nèi)容可以是一段腳本,那么客戶端瀏覽器收到后可以執(zhí)行這段腳本,注意,要收到之后才能執(zhí)行。

而Response.Redirect是向客戶端發(fā)送了一個(gè)HTTP頭信息(什么是HTTP頭信息?這么說吧,比如對客戶端Cookies的寫入是HTTP頭信息,HTTP頭信息在HTTP的主體之前發(fā)回客戶端瀏覽器,這就是為什么有時(shí)我們把服務(wù)器的緩沖關(guān)閉之后修改Cookies會出錯(cuò)的原因,因?yàn)橹黧w已經(jīng)開始傳送,不允許發(fā)送HTTP頭信息了。),信息的內(nèi)容告訴客戶端瀏覽器應(yīng)該跳轉(zhuǎn)頁面瀏覽,注意,這個(gè)Redirect信息是立刻起作用的,也就是說這個(gè)Redirect信息具有排他性,在緩沖打開的情況下,無論已經(jīng)使用Response.Write向緩沖里寫入了多少內(nèi)容,一旦調(diào)用Response.Redirect,將會清空緩沖,并且向客戶端瀏覽器發(fā)送這個(gè)頭指令。如果動態(tài)跟蹤一下程序的執(zhí)行,我們還會發(fā)現(xiàn),在調(diào)用了Response.Redirect之后,程序停止執(zhí)行了,所以注意服務(wù)器端程序在調(diào)用Response.Redirect之前要做好數(shù)據(jù)連接的關(guān)閉等操作。

那么上面的例子應(yīng)該怎樣修改呢?如果你不愿意修改那個(gè)index.asp以加入腳本提示的話,那么只能將轉(zhuǎn)向指令放到客戶端腳本中執(zhí)行,就像這樣:
復(fù)制代碼 代碼如下:

%
Response.Write "script type=""text/javascript"">" _
"alert('!');location.href='index.asp'/script>"
%>
您可能感興趣的文章:
  • 在不刷新頁面的情況下調(diào)用遠(yuǎn)程asp腳本
  • ASP網(wǎng)頁模板的應(yīng)用: 讓程序和界面分離,讓ASP腳本更清晰,更換界面更容易
  • 用asp腳本實(shí)現(xiàn)限制IP訪問
  • 隱藏修改文件時(shí)間和文件屬性的ASP腳本
  • ASP基礎(chǔ)入門第三篇(ASP腳本基礎(chǔ))
  • ASP基礎(chǔ)入門第五篇(ASP腳本循環(huán)語句)

標(biāo)簽:淮北 滁州 迪慶 唐山 來賓 揭陽 南寧 甘南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ASP腳本的執(zhí)行順序詳細(xì)說明》,本文關(guān)鍵詞  ASP,腳本,的,執(zhí)行,順序,詳細(xì),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ASP腳本的執(zhí)行順序詳細(xì)說明》相關(guān)的同類信息!
  • 本頁收集關(guān)于ASP腳本的執(zhí)行順序詳細(xì)說明的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 又爽又黄A片免费观看啪啪| 桶机120分钟免费app| 漂亮的岳坶1中文字幕| 缅北在线观看www网站入口| 强行被灌满连续受孕H变态| 日本免费电影一区| 公交车上被艹| 91细腰爆乳翘臀学生99| 国产一级特黄特色大片| 欧美第一夜| 包头市| 韩国19?vip韩宝贝在线| 老太脱裤子让老头玩xxxxx| 国产区二区| 14???小泬喷白浆流在线观看 | 亚洲第一精品电影网| 狠狠操狠狠插| 成人精品A片免费观看直播69| 哺乳喂奶一区二区三区| 好了10在线观看| 小说肉np| 国产精品一区二区久久乐夜夜嗨| 成全在线播放视频在线播放| 日本久久高清视频| 操欧美美女| 国产麻豆剧果冻传媒浮生| 女人又爽?又黄?视频毛茸茸| 小日子的在线观看免费第8集| 一区二区美女| jizz美女18| 含羞草久久久污污污网站| 扒开腿挺进肉蒂抽搐喷潮视频| chinese国产打屁股视频免费| 日韩xxxx做受欧美| 调教| 两女互慰高潮A片视频| 无码国产精成人午夜视频六区 | 久久亚洲熟妇熟女ⅩXXX蜜桃| 日本福利片午夜免费观着| 办公室揉着她两个硕大的乳球| 天天躁日日躁狠狠很躁|