"伊格"加载AngularJS应用程序

时间:2014-09-25 22:10:20

标签: ajax wordpress angularjs loading

我正在开设一个新网站,可在此处找到正在建设的网站:http://srgunltd.co.uk

我从WordPress JSON API中提取数据,但如果您在加载某些页面时发现,页面显示与内容之间存在明显的延迟(通常为1秒以上)。如果它不是由AJAX驱动的话,我可以忍受这个,因为这更能突出问题。

为了避免含糊不清,我的问题是 - AngularJS是否有任何插件或实践允许"渴望"加载内容,以便在页面加载之前

>

2 个答案:

答案 0 :(得分:1)

我不确定这个问题是否必然存在“有角度”的解决方案。我认为这将属于应用程序架构的保护伞。我的第一个想法是,您将使用服务并实施特定于您的需求的缓存系统。注意:可能有很酷的库可以帮助解决这类问题,但我更喜欢根据我的需求量身定制的自定义解决方案。

我可能会这样做,但同样,这是特定于应用程序的事情:

function dataCacheService($http){

  var dataCache {};
  return {
    // hooks to load data ahead of time
    getPage1 : function(){
      var data = "Data from Api";
      dataCache['page1'] = data;
    },
    getPage2 : function(){
      var data = "Data from Api";
      dataCache['page2'] = data;
    },
    // a check to see if cached data is available
    getCache = function(key){
      return dataCache[key] || false;
    }
  }

}

然后当您的控制器加载时,您只需调用dataCacheService.getPage1()来预加载数据。当您的用户转到需要该数据的页面时,您可以检查它是否存在dataCacheService.getCache('page1')或正常加载。

function page1Ctrl($scope,$http,dataCacheService){

  // check to see if the data is cached or go get it
  $scope.data = dataCacheService.getCache('page1') || getTheData();

  function getTheData(){
    //get it normally or whatever you need to do
  }

}

答案 1 :(得分:0)

如果你想要一个角度解决方案,你可以使用这个角度模块: http://chieffancypants.github.io/angular-loading-bar/

但我认为你必须改变你的代码以成为所有角度导向,所以你的加载条模块必须与用角度代码编写的控制器相关联。

我希望这会对你有所帮助。