本篇內(nèi)容主要講解“WEB開發(fā)中flush讓頁面分塊逐步呈現(xiàn)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“WEB開發(fā)中flush讓頁面分塊逐步呈現(xiàn)”吧!
站在用戶的角度思考問題,與客戶深入溝通,找到敦化網(wǎng)站設(shè)計(jì)與敦化網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋敦化地區(qū)。
正對(duì)這種情況,還有一種處理方法,就是讓response分塊編碼進(jìn)行傳輸。response分塊編碼,可以先傳輸一部分不需要處理的html代碼到客戶端,等其他耗時(shí)代碼執(zhí)行完畢后再傳輸另外的html代碼。
分塊編碼(chunked encoding)
chunked encoding 是http1.1 才支持編碼格式(當(dāng)然目前沒有哪個(gè)瀏覽器不支持1.1了),chunked encoding 與一般的響應(yīng)區(qū)別如下:
正常的響應(yīng): HTTP/1.1 200 OK Cache-Control: private, max-age=60 Content-Length: 75785 Content-Type: text/html; charset=utf-8 ..其他response headers <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
chunked encoding 響應(yīng): HTTP/1.1 200 OK Cache-Control: private, max-age=60 Content-Length: 75785 Content-Type: text/html; charset=utf-8 Transfer-Encoding: chunked ..其他response headers chunk #1(這里通常是16進(jìn)制的數(shù)字,標(biāo)志這個(gè)塊的大小) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN".... chunk #2 <div ..... chunk #3 ....</body></html>
實(shí)例(JSP)
一個(gè)簡單的頁面,分為頭部(header)和內(nèi)容(部分),假設(shè)內(nèi)容部分需要讀取數(shù)據(jù)庫,花費(fèi)3秒時(shí)間,然后顯示csdn的logo。header部分顯示cnblogs的logo。代碼如下:
<body> <div id="head" style="border:1px solid #ccc;"> cnblogs logo <img src="http://images.cnblogs.com/logo_small.gif" /> </div> <br /> <div id="content" style="border:1px solid blue;"> <% // 睡眠3秒 Thread.currentThread().sleep(3000); %> csdn logo<br /> <img src="http://csdnimg.cn/www/images/csdnindex_piclogo.gif" /> </div> </body>
演示地址:http://213.186.44.204:8080/ChunkTest/nochunk.jsp (服務(wù)器比較差,請大家溫柔點(diǎn))
打開這個(gè)演示地址發(fā)現(xiàn)很正常的頁面,在3秒后才開始下載顯示2個(gè)logo,資源加載瀑布圖如下:
現(xiàn)在把代碼改成如下,加上flush,讓response把之前的html分塊輸出:
<div id="head" style="border:1px solid #ccc;"> cnblogs logo <img src="http://images.cnblogs.com/logo_small.gif" /> </div> <% out.flush(); // flush response,分塊輸出 %> <br /> <div id="content" style="border:1px solid blue;"> <% // 睡眠3秒 Thread.currentThread().sleep(3000); %> csdn logo<br /> <img src="http://csdnimg.cn/www/images/csdnindex_piclogo.gif" /> </div>
演示地址:http://213.186.44.204:8080/ChunkTest/chunk.jsp
打開這個(gè)演示地址,是不是發(fā)現(xiàn)cnblogs logo先下載顯示出來,3秒后csdn logo才顯示,資源加載圖如下:
從這個(gè)圖發(fā)現(xiàn),cnblogs的logo在jsp頁面還沒執(zhí)行完就開始下載了,這就是分塊輸出的效果。
監(jiān)控工具:
如何知道我們是否成功使用了chunk encoding了 ,只要用工具查看response header 中是否包含了Transfer-Encoding: chunked,如果包含了,則是分塊了。但要想監(jiān)控分塊的詳細(xì)信息,據(jù)我所知,目前只有httpwatch支持,可以查看我們到底分了多少塊,但是數(shù)量好像都多顯示了1個(gè),如下圖:
到此,相信大家對(duì)“WEB開發(fā)中flush讓頁面分塊逐步呈現(xiàn)”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
網(wǎng)頁名稱:WEB開發(fā)中flush讓頁面分塊逐步呈現(xiàn)
文章位置:http://chinadenli.net/article10/ppggdo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、網(wǎng)站制作、企業(yè)建站、品牌網(wǎng)站設(shè)計(jì)、電子商務(wù)、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)