狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美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视频
一区二区三区四区五区视频在线观看| 成人高清在线视频| 日韩综合小视频| 亚洲自拍与偷拍| 亚洲精品国产高清久久伦理二区| 欧美日韩黄色影视| www久久精品| 中文字幕不卡三区| 久久精品国产一区二区| 成人不卡免费av| 色8久久精品久久久久久蜜| 国产精品色眯眯| 国产综合久久久久久久久久久久| 久久精品女人的天堂av| 色哟哟国产精品免费观看| 欧美日韩成人高清| 久久网站热最新地址| 日本中文字幕一区| 久久一区视频| 久久精品日韩一区二区三区| 久久国产精品区| 欧美肥胖老妇做爰| 国产精品一二三| 精品日韩一区二区三区免费视频| 国产乱人伦偷精品视频免下载| 欧美日韩和欧美的一区二区| 日日摸夜夜添夜夜添国产精品| 狂野欧美一区| 国产成人免费9x9x人网站视频| 日韩精品一区二区三区三区免费| 99久久精品一区二区| 国产精品久久久久影视| 一区二区三区欧美在线| 秋霞成人午夜伦在线观看| 欧美酷刑日本凌虐凌虐| 99re这里只有精品首页| 亚洲精品网站在线观看| 欧美性大战久久久久久久| 国产精品一线二线三线精华| 国产精品女主播在线观看| 性高湖久久久久久久久| 国产成人一级电影| 国产精品超碰97尤物18| 欧美日韩国产美| 9久re热视频在线精品| 精品一区二区免费看| 国产精品福利av| 色婷婷精品大视频在线蜜桃视频| 久久电影网电视剧免费观看| 精品久久久久久久人人人人传媒 | 久久久久99精品国产片| 久久亚洲不卡| 亚洲久色影视| 本田岬高潮一区二区三区| 青青青伊人色综合久久| 一本大道久久a久久精品综合| 亚洲国产精品欧美一二99| 欧美日韩日日夜夜| 午夜一区不卡| 国产精品久久一区二区三区| 91日韩在线专区| 粉嫩aⅴ一区二区三区四区五区| 丝袜美腿亚洲一区| 丝袜亚洲另类欧美| 午夜视频一区在线观看| 一区二区免费在线| 一区二区高清视频在线观看| 国产区在线观看成人精品 | 香港久久久电影| 亚洲欧美成人| 色欲综合视频天天天| 久久久久网址| 欧美日韩国产电影| 欧美男男青年gay1069videost| 欧美在线一区二区| 欧美亚洲图片小说| 欧美一区二区精品在线| 日韩一区二区三区免费看| 7878成人国产在线观看| 日韩欧美不卡一区| 日本一区二区三区免费乱视频| 日本一区二区综合亚洲| 亚洲一区二区三区四区中文字幕| 亚洲丶国产丶欧美一区二区三区| 天天综合网天天综合色| 国内成+人亚洲+欧美+综合在线 | 中文字幕制服丝袜成人av| 国产精品久久久一本精品 | 69久久夜色精品国产69蝌蚪网| 91精品国产91久久久久久一区二区| 日韩欧美aaaaaa| 亚洲嫩草精品久久| 久久超碰97人人做人人爱| 色综合一区二区| 日本高清免费不卡视频| 久久综合九色综合欧美就去吻| 1024国产精品| 国产aⅴ精品一区二区三区色成熟| 欧美日韩在线不卡一区| 欧美午夜精品久久久| 国产精品久久久久影院亚瑟 | 中文一区在线| 日韩午夜电影av| 亚洲综合无码一区二区| 国产精品白丝jk白祙喷水网站| 欧美性事免费在线观看| 欧美视频自拍偷拍| 亚洲一区二区欧美| 欧美日韩国产欧| 日韩欧美国产不卡| 蜜臀av性久久久久蜜臀aⅴ| 女人香蕉久久**毛片精品| 日本韩国欧美三级| 亚洲女爱视频在线| 国产精品mm| 国产女人水真多18毛片18精品视频| 免费观看在线色综合| 国产精品久久一区二区三区| 国产日韩精品一区| av电影在线观看完整版一区二区| 欧美中文字幕一区二区三区亚洲| 亚洲精品日韩专区silk| 国内精品亚洲| 中文字幕日韩一区| 激情一区二区| 亚洲欧洲综合另类在线| 亚洲高清在线播放| 亚洲视频 欧洲视频| 99精品热6080yy久久| 亚洲视频在线一区二区| 亚洲国产精品日韩| 一区二区国产盗摄色噜噜| 国产精品久久九九| 天天综合天天做天天综合| 91福利精品视频| 国产一区二区三区精品视频| 欧美日韩国产成人在线91| 成年人国产精品| 国产精品久久久久久久久图文区| 国产自产精品| 五月激情综合网| 91精品国产一区二区三区| 国产99久久久精品| 国产精品乱码人人做人人爱| 影音先锋亚洲电影| 日韩在线观看一区二区| 欧美一区二区三区免费视频| av在线不卡电影| 亚洲综合自拍偷拍| 欧美日韩国产免费一区二区| 国产乱码精品一区二区三区忘忧草 | 精品少妇一区二区三区免费观看| 91小视频在线| 一区二区三区日韩欧美精品| 欧美综合亚洲图片综合区| 成人亚洲精品久久久久软件| 精品国产免费一区二区三区香蕉 | 国产一区导航| 国产999精品久久久久久绿帽| 国产精品久久久久一区二区三区| 一区二区三区四区五区精品视频 | 欧美不卡高清| 日本一不卡视频| 国产精品欧美极品| 51精品视频一区二区三区| 99av国产精品欲麻豆| 懂色中文一区二区在线播放| 一区二区高清免费观看影视大全| 91精品国产综合久久久久久久久久 | 国产精品一二一区| 亚洲成人精品在线观看| 中文字幕的久久| 精品国产乱码久久久久久图片| 欧美一级二区| 国产一区二区三区久久| 欧美精品啪啪| 91蜜桃免费观看视频| 国产精品一区专区| 麻豆91免费看| 婷婷中文字幕综合| 亚洲福利视频三区| 国产精品自在欧美一区| 午夜精品久久久久久不卡8050| 亚洲国产精品成人综合| 26uuu精品一区二区三区四区在线| 欧美在线小视频| 欧美婷婷六月丁香综合色| 亚洲欧美久久| 色拍拍在线精品视频8848| 久久精品综合一区| 久久天天综合| 欧美综合欧美视频| 欧美日韩二区三区| 日韩欧美在线一区二区三区| 欧美一区二区三区免费在线看| 欧美一卡二卡三卡四卡| 精品国产免费人成在线观看| 26uuu色噜噜精品一区| 欧美国产日韩在线观看| 国产精品久久久久影院亚瑟|