簡體   English   中英

輸出緩沖和AJAX

[英]Output buffering and AJAX

當用戶單擊我網站上的按鈕時,頁面的特定部分將被刷新,但是渲染整個部分需要一些時間。 是否可以實時顯示/輸出部分內容,而不是等待整個部分結束? 如果我將其作為對HTML內容的Ajax請求發送,該怎么辦? 謝謝

我建議在您的AJAX調用中設置cache: true (如果使用jQuery),無論哪種方式,您都需要設置HTTP響應標頭。 這里有些例子。 通過設置cache-control標頭和expires等,您的AJAX請求(如果未更改)將從緩存中加載。 這將大大加快速度。

一個簡單的例子:

if (!headers_sent()) {
    // seconds, minutes, hours, days
    $expires = 60*60*24*14;
    header('Pragma: public');
    header('Cache-Control: maxage=' . $expires);
    header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT');
}

注意:這不適用於POST請求,只能用於GET。

如前所述,緩存AJAX請求是一個不錯的選擇。 除此之外,我認為您可以使您的應用程序看起來更快的唯一方法是,向用戶顯示一個進度條,同時(重新)加載AJAX內容。

您可以實現Pagelets技術。 從本質上講,您可以按照以下方式進行操作:

index.html
  Ajax -> load content from PHP script which outputs the navigation bar
  Ajax -> load content from PHP script which outputs the body

並且有幾個不同的Ajax調用加載了站點的每個不同部分。 但是,這樣做的缺點是增加了用戶瀏覽器必須發出的HTTP請求的數量。

這是假定盡管可以與頁面的其余部分分開生成不同的部分。 如果需要同時生成所有內容,則此技術將無用。

這是一本好書(Facebook項目名為“ BigPipe”): http : //www.facebook.com/note.php? note_id=389414033919

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM