国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

asp Response.flush 實時顯示進度

2024-05-04 11:09:19
字體:
來源:轉載
供稿:網友
如果你知道Response.Flush和Response.Clear,那你就可以不用這樣的等待了。每生成一個Html頁面,就用Response.write立即返回一條信息,提示該條數據庫記錄已經生成Html。
 
 
 
寫程序的人在編寫由asp頁面生成靜態頁面html的時候,如果同時生成大量頁面,一定遇到過瀏覽器下方的進度條上顯示著3%,6%,10%等緩慢增長的漫長等待過程。在這個等待過程中,你不知道頁面已經生成到哪一條記錄,只能大眼瞪小眼的等。 

如果你知道Response.Flush和Response.Clear,那你就可以不用這樣的等待了。每生成一個Html頁面,就用Response.write立即返回一條信息,提示該條數據庫記錄已經生成Html。 

這樣,在同時生成大量頁面的時候,你就不再是孤獨的望著一片空白的頁面而只是瀏覽器下方緩慢變化著的進度條而發呆了,你可以隨時知道當前已經生成到哪條數據庫記錄了,即使出現意外,如死機,斷電等,你也知道下次生成應該從哪天記錄重新開始生成html了。是不是很爽呢,這就是一個進度條了而且更具體了。 

呵呵,別著急,我們先來看Response.Flush和Response.Clear的意思吧。 

Response對象之Flush方法,立即發送緩沖區中的輸出。如果未將 Response.Buffer 設置為 TRUE,則該方法將導致運行時錯誤。語法:Response.Flush;注釋:如果在 ASP 頁上調用 Flush 方法,則服務器將響應該頁上保持活動的請求。應用于Response對象。 

關于Buffer,這里有段介紹。Buffer從英文直譯過來的意思是“緩沖區”,這里我們將它稱為緩沖,因為它不僅是個名詞,還是個動詞。 

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

關于Response.clear,Clear 方法刪除緩沖區中的所有 HTML 輸出。但 Clear 方法只刪除響應正文而不刪除響應標題。可以用該方法處理錯誤情況。請注意,如果未將 Response.Buffer 設置為 TRUE,則該方法將導致運行時錯誤。語法:Response.Clear;應用于Response對象。 

好了,想實現立即輸出的效果,只要在循環體內的希望輸出提示信息后加上Response.Flush和Response.Clear就可以了。如: 

<% 
for i=1 to 2000 
for i1=1 to 3000 
''空循環,延長每次執行時間 
next 
Response.write i&")" 
Response.Flush 
Response.Clear 
next 
%> 

上述asp語句,你執行后,會發現輸出是逐個逐個輸出的,執行一次,就輸出一次。 

但我在網上看到有人說,“很多時候,我們發現即使我們使用了Response.Flush(),但是并沒有將前面的信息發到客戶端來顯示。呈獻給我們的依然是白屏。經過反復的測試,我得出一個結論:就是flush的內容至少要有256字節。也就是只有編譯產生了至少256字節的數據,才能在執行Response.Flush()以后將信息發到客戶端并顯示。” 

很奇怪,上述我給出的語句確確實實是實現了逐個顯示的效果的,并沒有事先輸出256個字節,大家可以把上述語句另存為記事本運行看看,效果是逐行顯示的。本人所列觀點,僅代表flymorn個人觀點,不挪作他用。 

如果你確實需要事先輸出256個字節,可以如下: 

<% 
dim liji 
for i=1 to 256 
liji=liji&"<!--先產生256個字符-WWW.PIAOYI.ORG-->" 
if len(liji)>=256 then exit for 
next 
%> 
如果你有不同的看法,或有不同的試驗結果,歡迎與我一起討論。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湖口县| 耿马| 叶城县| 信丰县| 武平县| 淳安县| 康乐县| 灵璧县| 城口县| 顺义区| 武汉市| 榕江县| 万州区| 沙湾县| 马边| 陕西省| 潮州市| 肥东县| 榆树市| 搜索| 古丈县| 普洱| 长子县| 莎车县| 海兴县| 庆元县| 福鼎市| 奉新县| 开江县| 石家庄市| 宾阳县| 杂多县| 辉县市| 卢龙县| 惠来县| 昂仁县| 图木舒克市| 通州区| 福建省| 冕宁县| 朔州市|