Asp.net

我可以使用 ASP.NET 提前刷新緩衝區嗎?

  • May 4, 2016

從雅虎加速您的網站的最佳實踐包括以下建議:

當使用者請求頁面時,後端伺服器可能需要 200 到 500 毫秒的時間來將 HTML 頁面拼接在一起。在此期間,瀏覽器處於空閒狀態,等待數據到達。在 PHP 中,您有函式 flush()。它允許您將部分就緒的 HTML 響應發送到瀏覽器,以便瀏覽器可以在後端忙於 HTML 頁面的其餘部分時開始獲取組件。好處主要體現在繁忙的後端或輕量級的前端。

一個考慮刷新的好地方是在 HEAD 之後,因為 head 的 HTML 通常更容易生成,它允許您包含任何 CSS 和 JavaScript 文件,以便瀏覽器在後端仍在處理時開始並行獲取。

例子:

... <!-- css, js -->
</head>
<?php flush(); ?>
<body>
... <!-- content -->

請注意,此處發生刷新的點是在寫入頭標記之後。這很有意義,因此瀏覽器可以開始載入圖像和腳本,同時渲染和提供頁面的其餘部分。

有沒有辦法顯式使用 ASP.NET 在頭部(或頁面的任何其他部分)之後刷新?

您應該能夠將以下內容放在頁面頭部的結尾和正文語句的開頭之間:

<% Response.Flush(); %>

但是,如果您使用的是腳本管理器或任何其他類型的控制項,這些控制項將在 html 的 head 部分中註冊自己以輸出,請在此處小心。

您可能還希望在頁面頂部的 @Page 標記中顯式設置 Buffer=true 以避免 Response.Flush() 引發錯誤。

引用自:https://stackoverflow.com/questions/678811