狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频

當前位置:系統之家 > 技術開發教程 > 詳細頁面

將ASP生成的內容寫入響應流中最有效果的辦法是啥?

將ASP生成的內容寫入響應流中最有效果的辦法是啥?

更新時間:2019-11-09 文章作者:未知 信息來源:網絡 閱讀次數:


剛開始學ASP時,照書里HTML中包含ASP
后來,用Response.Write 輸出HTML
可現在看了這一篇文章,難道真的要把Response.Write寫成一句(" & _?
你說說?
-------
(轉http://www.ccidnet.com/html//tech/web/2000/11/10/58_1298.html)
什么才是提高ASP性能的最佳選擇(一)
(作者:青蘋果工作室編譯2000年11月10日 17:20)

將ASP生成的內容寫入響應流中最有效的方法是什么?
使用ASP的一個最主要原因是在服務器上生成動態內容。所以很明顯,我們測試的起點是確定將動態內容發送到響應流中的最適合的方式。在多種選擇中,有兩個是最基本的:一是使用內聯ASP標記,另一個是使用Response.Write 語句。

為測試這些選擇,我們創建了一個簡單的ASP頁面,其中定義了一些變量,然后將它們的值插入表格中。雖然這個頁面很簡單也不是很實用,但它允許我們分離并測試一些單獨的問題。

使用ASP內聯標記

第一個測試包括使用內聯ASP標記< %= x % >,其中x是一個已賦值的變量。到目前為止,這個方法是最容易執行的,并且它使頁面的HTML部分保持一種易于閱讀和維護的格式。

< % OPTION EXPLICIT

Dim FirstName

Dim LastName

Dim MiddleInitial

Dim Address

Dim City

Dim State

Dim PhoneNumber

Dim FaxNumber

Dim EMail

Dim BirthDate

FirstName = "John"

MiddleInitial = "Q"

LastName = "Public"

Address = "100 Main Street"

City = "New York"

State = "NY"

PhoneNumber = "1-212-555-1234"

FaxNumber = "1-212-555-1234"

EMail = "john@public.com"

BirthDate = "1/1/1950"

% >

< HTML >

< HEAD >

< TITLE >Response Test< / TITLE >

< /HEAD >

< BODY >

< H1 >Response Test< /H1 >

< TABLE >

< tr >< td >< b >First Name:< /b >< /td >< td >< %= FirstName % >< /td >< /tr >

< tr >< td >< b >Middle Initial:< /b >< /td >< td >< %= MiddleInitial % >< /td >< /tr >

< tr >< td >< b >Last Name:< /b >< /td >< td >< %= LastName % >< /td >< /tr >

< tr >< td >< b >Address:< /b >< /td >< td >< %= Address % >< /td >< /tr >

< tr >< td >< b >City:< /b >< /td >< td >< %= City % >< /td >< /tr >

< tr >< td >< b >State:< /b >< /td >< td >< %= State % >< /td >< /tr >

< tr >< td >< b >Phone Number:< /b >< /td >< td >< %= PhoneNumber % >< /td >< /tr >

< tr >< td >< b >Fax Number:< /b >< /td >< td >< %= FaxNumber % >< /td >< /tr >

< tr >< td >< b >EMail:< /b >< /td >< td >< %= EMail % >< /td >< /tr >

< tr >< td >< b >Birth Date:< /b >< /td >< td >< %= BirthDate % >< /td >< /tr >

< /TABLE >

< /BODY >

< /HTML >

/app1/response1.asp的完整代碼

以前的最佳(反應速度) = 8.28 msec/page

在HTML的每一行使用Response.Write 語句

許多比較好的學習文檔建議避免使用前面的那種方法。其主要理由是,在輸出頁面和處理頁面施加反應時間的過程中,如果web 服務器不得不在發送純HTML和處理腳本之間進行轉換,就會發生一種被稱為上下文轉換的問題。大部分程序員一聽到這里,他們的第一反應就是將原始的HTML的每一行都包裝在Response.Write函數中。



Response.Write("< html >")

Response.Write("< head >")

Response.Write(" < title >Response Test< /title >")

Response.Write("< /head >")

Response.Write("< body >")

Response.Write("< h1 >Response Test< /h1 >")

Response.Write("< table >")

Response.Write("< tr >< td >< b >First Name:< /b >< /td >< td >" & FirstName & "< /td >< /tr >")

Response.Write("< tr >< td >< b >Middle Initial:< /b >< /td >< td >" & MiddleInitial & "< /td >< /tr >")



/app1/response2.asp的片段

以前的最佳(反應速度) = 8.28 msec/page

反應時間 = 8.08 msec/page

差= -0.20 msec (減少 2.4%)

我們可以看到,使用這種方法與使用內聯標記的方法相比在性能上獲得的收益非常小,這也許是因為頁面給服務器裝載了一大堆小的函數調用。這種方法最大的缺點是,由于現在HTML都嵌入腳本中,所以腳本代碼變得更加冗長,更加難以閱讀和維護。

使用包裝函數

當我們試圖使用Response.Write 語句這種方法時,最令人灰心的發現可能就是Response.Write 函數不能在每行的結尾處放置一個CRLF 。因此,當你從瀏覽器中閱讀源代碼時,本來布置得非常好的HTML,現在成了沒有結束的一行。我想,你的下一個發現可能會更令你恐怖:在Response 對象中沒有其姊妹函數Writeln 。所以,一個很明顯的反應就是為Response.Write 函數創建一個包裝函數,以便給每一行都附加一個CRLF 。



writeCR("< tr >< td >< b >First Name:< /b >< /td >< td >" & FirstName & "< /td >< /tr >")



SUB writeCR(str)

Response.Write(str & vbCRLF)

END SUB

/app1/response4.asp的片段

以前的最佳(反應速度)= 8.08 msec/page

反應時間= 10.11 msec/page

差 = +2.03 msec (增加 25.1%)

當然,由于這種方法有效地使函數調用次數加倍,其對性能的影響也很明顯,因此要不惜一切代價避免。具有諷刺意味的是CRLF也向反應流中為每行增加了2個字節,而這是瀏覽器不需要呈現到頁面上的。格式化良好的HTML所做的一切就是讓你的競爭者更容易閱讀你的HTML源代碼并理解你的設計。

將連續的Response.Write 連接到一個單獨語句中

不考慮我們前面用包裝函數進行的測試,下一個合乎邏輯的步驟就是從單獨的Response.Write 語句中提取出所有的字符串,將它們連接到一個單獨語句中,這樣就減少了函數調用的次數,極大地提高了頁面的性能。



Response.Write("< html >" & _

"< head >" & _

"< title >Response Test< /title >" & _

"< /head >" & _

"< body >" & _

"< h1 >Response Test< /h1 >" & _

"< table >" & _

"< tr >< td >< b >First Name:< /b >< /td >< td >" & FirstName & "< /td >< /tr >" & _



"< tr >< td >< b >Birth Date:< /b >< /td >< td >" & BirthDate & "< /td >< /tr >" & _

"< /table >" & _

"< /body >" & _

"< /html >")

/app1/response3.asp的片段

以前的最佳(反應速度)= 8.08 msec/page

反應時間 = 7.05 msec/page

差 = -1.03 msec (減少12.7%)

目前,這是最優化的配置。

將連續的Response.Write 連接到一個單獨語句中,在每行結尾處增加一個CRLF

考慮到那些要求他們的源代碼從瀏覽器中看要很純粹的人,我用vbCRLF 常量在前面測試中每行的結尾處插入了一些回車,然后重新運行。



Response.Write("< html >" & vbCRLF & _

"< head >" & vbCRLF & _

" < title >Response Test< /title >" & vbCRLF & _

"< /head >" & vbCRLF & _



/app1/response5.asp的片段

前面的最佳(反應速度)= 7.05 msec/page

反應時間= 7.63 msec/page

差 = +0.58 msec (增加 8.5%)

運行的結果在性能上有一點降低,這也許是由于額外的串聯和增加的字符量。

回顧和觀測

從前面有關ASP輸出的測試中可以得出一些規則:

* 避免內聯ASP的過多使用。

* 總是將連續Response.Write 語句連接進一個單獨語句內。

* 永遠不要在Response.Write 周圍使用包裝函數來附加CRLF。

* 如果必須格式化HTML輸出,直接在Response.Write 語句內附加CRLF。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频
在线国产欧美| 亚洲va天堂va国产va久| 91香蕉国产在线观看软件| 中文字幕精品综合| 国产农村妇女毛片精品久久莱园子 | 日韩精品电影一区亚洲| 日韩免费看网站| 亚洲天堂久久| 久久69国产一区二区蜜臀 | 另类欧美日韩国产在线| 国产精品美女久久久久久久久久久 | 韩国三级中文字幕hd久久精品| 中文字幕免费观看一区| 亚洲国产精品ⅴa在线观看| 国产日产欧美精品一区二区三区| 欧美日韩国产三级| 国产在线日韩| 成人动漫视频在线| 日本亚洲视频在线| 综合中文字幕亚洲| 日韩一区二区三区视频在线观看| 久久av在线| 欧美日韩福利| 国产91丝袜在线播放0| 亚洲国产毛片aaaaa无费看 | 国产精品网站在线观看| 亚洲欧美日韩中文播放| 国产日韩精品一区二区浪潮av| 国产精品天美传媒沈樵| 亚洲线精品一区二区三区八戒| 麻豆国产91在线播放| 天堂久久一区二区三区| 国产美女精品一区二区三区| 日韩成人午夜电影| 韩国v欧美v日本v亚洲v| 91亚洲国产成人精品一区二三 | 国产欧美中文在线| 香蕉乱码成人久久天堂爱免费| 麻豆精品视频在线观看视频| eeuss影院一区二区三区| 国产综合久久久久久鬼色| www.视频一区| 亚洲一区免费看| 日韩情涩欧美日韩视频| 亚洲精品中文在线观看| 国产精品欧美极品| 免费人成网站在线观看欧美高清| 亚洲3atv精品一区二区三区| 韩国av一区二区| 在线 亚洲欧美在线综合一区| 在线精品视频免费观看| 久久精品中文| 久久综合九色综合欧美狠狠| 久久天堂精品| 欧美激情艳妇裸体舞| 日本色综合中文字幕| 欧美成人综合一区| 国产精品a级| 国产欧美日韩伦理| 一区二区国产日产| 日韩欧美国产午夜精品| 亚洲一区二区三区在线播放| 日韩av电影免费观看高清完整版 | 久久疯狂做爰流白浆xx| 亚洲午夜精品久久| 欧美tickling网站挠脚心| 精品欧美乱码久久久久久| 亚洲电影你懂得| 国内久久视频| 精品成人一区二区三区| 国产精品毛片高清在线完整版| 激情图区综合网| 亚洲制服少妇| 国产精品传媒入口麻豆| 日日夜夜免费精品| 激情文学一区| 国产亚洲va综合人人澡精品| 亚洲国产精品久久一线不卡| 欧美精品入口| 精品国产污污免费网站入口 | 亚洲一区在线电影| 在线欧美亚洲| 国产精品黄色在线观看| www.欧美日韩| 日韩久久精品一区| 国内一区二区在线| 欧美日韩一区二区在线视频| 337p亚洲精品色噜噜| 精品国产一区二区在线观看| 国内精品伊人久久久久影院对白| 一本色道**综合亚洲精品蜜桃冫| 欧美一区二区三区视频免费播放| 国产精品拍天天在线| 成人午夜免费av| 国产欧美成人| 亚洲精选免费视频| 一区二区国产精品| 亚洲精品国久久99热| 亚洲一二三区精品| 亚洲人成精品久久久久| 精品成人久久| 亚洲一区二区三区四区的| 国产精品一区二区三区四区五区 | 亚洲激情午夜| 91精品综合久久久久久| 国内精品久久久久影院色 | 亚洲大片在线观看| 美女尤物久久精品| 免费看欧美女人艹b| 欧亚洲嫩模精品一区三区| 免费人成网站在线观看欧美高清| 欧美视频一区在线| 亚洲综合一区二区精品导航| 午夜综合激情| 免费成人在线视频观看| 5月丁香婷婷综合| 99久久免费视频.com| 欧美伊人精品成人久久综合97| 狠狠色综合日日| 久久这里都是精品| 激情深爱一区二区| 精品成人一区二区三区四区| 欧美日韩mv| 亚洲h精品动漫在线观看| 欧美日韩一级片网站| 成人免费毛片a| 亚洲天堂av一区| 在线看国产一区二区| 成av人片一区二区| 亚洲欧美影音先锋| 欧美日韩精品伦理作品在线免费观看| 亚洲欧美综合另类在线卡通| 色婷婷国产精品综合在线观看| 极品瑜伽女神91| 国产欧美日韩亚州综合| 久久国产欧美| 成人精品一区二区三区四区| 亚洲精品一卡二卡| 欧美视频一区二区三区四区| 91在线视频18| 五月天欧美精品| 色综合久久久久久久久久久| 大胆亚洲人体视频| 亚洲精品菠萝久久久久久久| 欧美精品丝袜久久久中文字幕| 国产在线精品不卡| 国产精品久久久久久久蜜臀 | 中文av一区特黄| 欧美日韩美女一区二区| 欧美日韩一区二区高清| 青青青爽久久午夜综合久久午夜 | 91美女视频网站| 蜜臀久久久久久久| 国产午夜精品一区二区| 在线日韩国产精品| 亚洲精品三级| 成人av动漫网站| 日本网站在线观看一区二区三区 | 亚洲人精品午夜| 欧美v国产在线一区二区三区| 亚洲一区亚洲| 欧美a级在线| 国产乱人伦精品一区二区在线观看 | 色88888久久久久久影院野外| 日本女优在线视频一区二区| 久久久www成人免费无遮挡大片| 欧美日韩国产亚洲一区| 久久丁香综合五月国产三级网站| 国产精品网友自拍| 欧美v日韩v国产v| 欧美日韩免费高清一区色橹橹| 99热精品在线| 精品亚洲国内自在自线福利| 一区二区激情视频| 欧美视频一区二区| 国产精品日本| 精品系列免费在线观看| 亚洲一区在线观看免费观看电影高清| 久久综合色鬼综合色| 欧美猛男超大videosgay| 午夜在线a亚洲v天堂网2018| 欧美啪啪一区| 91亚洲资源网| 波波电影院一区二区三区| 国产一区不卡在线| 麻豆成人av在线| 日本不卡一区二区三区| 亚洲一区av在线| 亚洲一区二区三区四区在线| 国产精品视频在线看| 2021国产精品久久精品| 欧美一级在线观看| 91麻豆精品国产91久久久使用方法| 色婷婷av久久久久久久| 久久国产一区| 在线观看亚洲a| 在线免费不卡电影| 欧美视频中文一区二区三区在线观看| 色先锋资源久久综合| 久久综合伊人77777麻豆|