91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

WEB開發中flush讓頁面分塊逐步呈現

發布時間:2021-06-24 09:17:42 來源:億速云 閱讀:158 作者:chen 欄目:web開發

本篇內容主要講解“WEB開發中flush讓頁面分塊逐步呈現”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“WEB開發中flush讓頁面分塊逐步呈現”吧!

正對這種情況,還有一種處理方法,就是讓response分塊編碼進行傳輸。response分塊編碼,可以先傳輸一部分不需要處理的html代碼到客戶端,等其他耗時代碼執行完畢后再傳輸另外的html代碼。

分塊編碼(chunked encoding)

chunked encoding 是http1.1 才支持編碼格式(當然目前沒有哪個瀏覽器不支持1.1了),chunked encoding 與一般的響應區別如下:

正常的響應:      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 響應:     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進制的數字,標志這個塊的大小)     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"....         chunk #2     <div .....         chunk #3     ....</body></html>

實例(JSP)

一個簡單的頁面,分為頭部(header)和內容(部分),假設內容部分需要讀取數據庫,花費3秒時間,然后顯示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 (服務器比較差,請大家溫柔點)

打開這個演示地址發現很正常的頁面,在3秒后才開始下載顯示2個logo,資源加載瀑布圖如下:

WEB開發中flush讓頁面分塊逐步呈現

現在把代碼改成如下,加上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

打開這個演示地址,是不是發現cnblogs logo先下載顯示出來,3秒后csdn logo才顯示,資源加載圖如下:

WEB開發中flush讓頁面分塊逐步呈現

從這個圖發現,cnblogs的logo在jsp頁面還沒執行完就開始下載了,這就是分塊輸出的效果。

監控工具:

如何知道我們是否成功使用了chunk encoding了 ,只要用工具查看response header 中是否包含了Transfer-Encoding: chunked,如果包含了,則是分塊了。但要想監控分塊的詳細信息,據我所知,目前只有httpwatch支持,可以查看我們到底分了多少塊,但是數量好像都多顯示了1個,如下圖:

WEB開發中flush讓頁面分塊逐步呈現

到此,相信大家對“WEB開發中flush讓頁面分塊逐步呈現”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

碌曲县| 报价| 仪陇县| 久治县| 吉木萨尔县| 东海县| 保亭| 新建县| 特克斯县| 宣恩县| 扶余县| 鄂伦春自治旗| 宝应县| 江口县| 买车| 任丘市| 云霄县| 道孚县| 天柱县| 石阡县| 澄迈县| 台东县| 华亭县| 綦江县| 石城县| 宿松县| 清水河县| 九龙城区| 新竹县| 十堰市| 湾仔区| 镇平县| 泾阳县| 郑州市| 专栏| 余干县| 巴马| 青岛市| 宜川县| 尚义县| 清水河县|