一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP教程 - asp下Response.Buffer提速

asp下Response.Buffer提速

2019-09-24 10:27asp教程網 ASP教程

用Response.Buffer=True為程序加速,Response.Flush()內容至少要有256字節

for i=1 to 256 
  yongfa365=yongfa365&"<!--這里主要是讓前邊先產生256個字符,這樣才可以實時輸出-->" 
  if len(yongfa365)>=256 then exit for 
 next 
        MadeBasic() 
        MadeModel() 
        MadeIndexBlogItem() 
                response.Write "1/6所有模版生成完成<br>"&yongfa365 
                Response.Flush() 
        MadeIndex("Calendar") 
                response.Write "2/6日期索引生成完成<br>" 
                Response.Flush() 
        MadeIndex("Category") 
                response.Write "3/6分類索引生成完成<br>" 
                Response.Flush() 
        MadeIndex("Blog") 
                response.Write "4/6總索引生成完成<br>" 
                Response.Flush() 
        MadeRSS() 
                response.Write "5/6RSS生成完成<br>" 
                Response.Flush() 
        MadeItem("all") 
                response.Write "6/6所有文章生成完成<font color=red>OK,終于完成了</red>" 
                Response.Flush() 

以上為后臺動態生成靜態文件一段代碼,目的是讓自己可以看到程序執行到哪了,以前沒加Response.Flush()就只看那IE狀態欄里的進度條,感覺好郁悶,加上Response.Flush()后,感覺就一個字“爽”,下邊是從網上找的一些參考資料匯集: 

  不知道大家對Buffer了解多少,很多人對這個概念都比較模糊,尤其是在asp中。很多初學者在編寫asp程序時很少用到這條語句,下面我就來說說Buffer的用途以及它在asp程序中的作用。 

一、Buffer 

  Buffer從英文直譯過來的意思是“緩沖區”,這里我們將它稱為緩沖,因為它不僅是個名詞,還是個動詞。 
  緩沖區是存儲一系列的數據的地方,客戶端所獲得的數據可以從程序的執行結果直接輸出,也可以從緩沖區輸出。但是這兩種方式在速度上是有差異的:在web中,當一個asp程序被請求的次數不多時,二者基本上沒有什么差異,至少我們感覺不出來。但是當有很多人請求一個asp程序時,速度可就不一樣了。如果沒有緩沖區,那么每個請求asp程序的人的客戶端所得到的結果都是asp程序執行一次所得到的結果,而如果預先將asp程序緩沖,那么每個客戶端所得到的結果就是緩沖區的結果,不是執行一次程序的結果。比如有1000個用戶同時訪問一個asp頁面,如果這個asp程序沒有緩沖,那么程序將被執行一千次,這樣服務器的負荷就回加大,從而導致客戶端打開頁面速度變慢;如果這個asp程序被緩沖了,那么結果就不一樣了,每個客戶端直接從緩沖區獲得數據,服務器將不會因為訪問增加而增加程序執行次數,因此客戶端打開頁面的速度也就比上一種情況要快。這就是Buffer的好處。 

二、如何將asp程序緩沖 

  這個問題其實很簡單,只要在asp程序的第一行加上: 
<% Response.Buffer = True %> 
就可以了。 
這句話的意思就是指明輸出頁面是否被緩沖,當屬性值為True時,服務器將不會向客戶端發送任何信息,直到所有程序執行完或者遇到 
<% Response.Flush %>或<% Response.End %> 
語句,才會釋放緩沖區的信息。 
  利用 Response.Buffer=True,Response.Flush 可以增進瀏覽速度,如果一個頁面 Response.Buffer=False,有30個資料轉輸,若有 100 人瀏覽此頁面,則有 3000 個來回傳輸,嚴重影響效率;若在起始得設定 Response.Buffer=True,再將整個頁面分為幾個群組,在適當的地方搭配 Response.Flush,則可大幅改善瀏覽者的體驗。 

三、為什么有時會感覺沒有用 
比如: 
<% 
'警告:沒事別運行這個 
for i=1 to 10000 
 Response.Write "<b><center><font color=""#FF0000"">我是www.yongfa365.com"&i& "呀</font></center></b>" 
 Response.Flush 
 response.Clear 
next 
%> 
半天才會出來,而且出來的是一堆,然后才一個一個的接著出來。 

原因: 

Response.Flush()。他會將緩沖區中編譯完成的數據先發送到客戶端 
但是 
flush的內容至少要有256字節。也就是只有編譯產生了至少256字節的數據,才能在執行Response.Flush()以后將信息發到客戶端并顯示。 

Clear 方法 
Clear 方法刪除緩沖區中的所有 HTML 輸出。Clear 方法只刪除響應正文而不刪除響應標題 
語法 
Response.Clear 
注釋 
調用 Response.Clear 將清楚本頁面前面部分所輸出的數據,同時,如果程序設定了 Response.ContentEncoding,Response.Clear 將同時將編碼方式設定為直接傳送。  
應用于Response 對象 


四、總結 

  Response的Buffer屬性雖然能夠提高頁面顯示速度,但是也要分什么情況。如果你正在制作一個普通的個人主頁,訪問量不是很高,并且沒有什么復雜的執行程序,那么用不用這個屬性就不是很重要,因為將數據緩沖也需要一段時間,只不過我們感覺不到罷了;但是如果你正在制作一個大型論壇或者一個產品展示或其他的商務站點,并且訪問量很高,那么我建議在程序的第一行加入<% Response.Buffer = True %>這句話,因為這樣能夠讓客戶在有效的時間內獲得更多的數據。 

附: 

一般驗證碼里文件頭里有這個 
Response.Buffer=false 
Response.Expires=0 
Response.ExpiresAbsolute = Now() - 1 
Response.AddHeader "Pragma","No-Cache" 
Response.AddHeader "Cache-Control","Private" 
Response.CacheControl = "No-Cache" 
就是為了不讓其有緩存。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 大学生宿舍飞机china free | 情缘1完整版在线观看 | 国产福利不卡 | 午夜dj免费视频观看社区 | 色综合天天综合网站中国 | 图片亚洲va欧美va国产综合 | 亚洲男女网站 | sese在线 | 91香蕉官网 | 欧美国产高清 | 亚洲AV蜜桃永久无码精品无码网 | 亚欧洲乱码视频一二三区 | 婷婷久久热99在线精品 | 好大夫在线个人空间 | 久久人妻少妇嫩草AV无码 | 国产精品日韩在线观看 | 日本福利视频网站 | 亚洲国产欧美另类 | 美女1819xxxx| 深夜啪啪网站 | 成人影院在线观看免费 | 波多野结衣在线中文字幕 | 亚洲四虎永久在线播放 | 香蕉久久一区二区不卡无毒影院 | 涩涩屋视频在线观看 | acg火影忍者熟密姬纲手h | 日本三级s级在线播放 | 天天爽天天操 | 精品牛牛影视久久精品 | 久久精品中文騷妇女内射 | 好大好爽好硬我要喷水了 | 免费理伦片手机在线播放 | avtt在线观看 | pregnantxxx孕交| 动漫美女人物被黄漫在线看 | 国产综合图区 | 无限资源在线观看播放 | 三级全黄裸体 | 亚洲第一永久色 | 亚洲免费视频在线 | 91精品国产美女福到在线不卡 |