我正在开设一个新网站,可在此处找到正在建设的网站:http://srgunltd.co.uk
我从WordPress JSON API中提取数据,但如果您在加载某些页面时发现,页面显示与内容之间存在明显的延迟(通常为1秒以上)。如果它不是由AJAX驱动的话,我可以忍受这个,因为这更能突出问题。
为了避免含糊不清,我的问题是 - AngularJS是否有任何插件或实践允许"渴望"加载内容,以便在页面加载之前
>答案 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/
但我认为你必须改变你的代码以成为所有角度导向,所以你的加载条模块必须与用角度代码编写的控制器相关联。
我希望这会对你有所帮助。