2014-10-06 174 views
1

我使用Sails.js作爲我的項目的基礎,到目前爲止我試圖使用AngularJS模塊化每個UI元素。避免Sails.js + AngularJS中的太多請求(緩存HTTP請求)

儘管我認爲這種方法很好,因爲它允許我儘可能重用我的代碼,但最終我將不得不向服務器發出很多HTTP請求,因爲每個模塊都不會與其他人共享數據。

那麼,如何減少請求數量並在所有控制器之間共享數據呢?

我已經想到了2級不同的解決方案:

  • 填充從後端視圖減少AngularJS控制器正在請求的數據量。
  • 使用套接字動態請求數據並緩存常用查詢。
+0

您是否想過在角度服務中緩存數據? – aw04 2014-10-06 17:11:35

+0

我真的不知道!我會尋找更多關於它的信息。謝謝! – siannone 2014-10-06 17:53:34

回答

1

我發現您可以使用$cacheFactory(文檔here)在AngularJS中緩存HTTP請求。

一個簡單的方法來做到這一點是下列之一:

$http({ 
    url : '/your/path', 
    method : 'POST', 
    cache : true 
}) 
.success(function (data) { 
    data; 
}) 

更多信息可以在coderwallthis StackOverflow question找到。

1

angular service通常用於在控制器之間共享數據。這是一個簡單的例子,可能看起來像什麼。注意它只會提出一個請求,第一次獲取數據,之後它將使用存儲的值。

app.factory('dataService', function() { 
    var service = {}; 
    var data; 

    service.getData = function() { 
     if (!data) { 
      //populate data via http get or whatever 
     } 
     return data; 
    } 

    return service; 
}); 

該服務可以被注入任何控制器。