2015-02-10 65 views
1

我已經爲我的網站創建了一個選項卡式佈局。點擊每個標籤可以進入另一個頁面。每當用戶在標籤之間切換時,我想避免一次新的HTTP發佈。我怎樣才能做到這一點?解決方案必須是基於JS的解決方案。如何在Ajax中緩存響應以避免http調用

+3

在選項卡上設置一個標誌,指示數據已被加載。在發出每個請求之前檢查標記狀態。 – 2015-02-10 12:48:45

回答

0
1. Create div for each tab. 
2. load your ajax responce on respective div by using : 
$(<respectivedivselector>).load(<url>,<data>,<calbackfunction>(){}); 

這樣你的Ajax性反應便會自動DIV緩存..

您還可以設置AJAX全局高速緩存作爲

$.ajaxSetup ({ 

    cache: true 
}); 

你也可以將此屬性設置爲單獨的AJAX調用as

$.ajax({ 
    url: "/YourURL", 
    cache: true, 
    . 
    . 
    . 
    success: function(data) { 
     $(<respectivedivselector>).html(data); 
    } 
}); 
0

您可以使用beforeLoad事件來阻止選項卡加載已經加載的內容。

$("#tabs").tabs({ 
    beforeLoad: function(event, ui) { 
     //If contents are already loaded 
     if(ui.panel.contents().length > 0){ 
      return false; //Prevent tab from loading 
     } 
    } 
});