Angularjs 在控制器之间保存和共享海量数据的最佳方式
我正在开发的应用程序很复杂,数据量也很大。这是一个订单管理调度应用程序 一开始,我要做的第一件事就是从API获取所有订单、所有商店和所有快递员 在订单的生命周期中,我从API接收到几次更新,并通过服务器发送的事件处理所有事情 加载数据后,我将所有内容放入3个不同的Angularjs 在控制器之间保存和共享海量数据的最佳方式,angularjs,Angularjs,我正在开发的应用程序很复杂,数据量也很大。这是一个订单管理调度应用程序 一开始,我要做的第一件事就是从API获取所有订单、所有商店和所有快递员 在订单的生命周期中,我从API接收到几次更新,并通过服务器发送的事件处理所有事情 加载数据后,我将所有内容放入3个不同的$scope:$scope.orders,$scope.stores和$scope.couriers中,并创建了一个服务来处理和共享控制器之间的更新数据 其中一项服务如下所示: App.factory('Orders', ['logs'
$scope
:$scope.orders
,$scope.stores
和$scope.couriers
中,并创建了一个服务来处理和共享控制器之间的更新数据
其中一项服务如下所示:
App.factory('Orders', ['logs', function (logs) {
var orders = {};
var newOrder = null;
var updatedOrder = null;
orders.list = [];
orders.getNewOrder = function () {
return newOrder;
};
orders.setNewOrder = function (order) {
newOrder = order;
};
orders.updateOneOrder = function (index, order) {
orders.list[index] = order;
updatedOrder = order;
};
orders.getUpdatedOrder = function () {
return updatedOrder;
};
orders.getAllOrders = function () {
return orders.list;
};
return orders;
}]);
对于这些方法,我可以查看更改并更新相对的$scope
正如您在我的服务中所看到的,由于我不能在工厂中使用$scope
,我还有一个数组来存储数据,以便能够处理它
我遵循了网上关于这一点的指南。我知道还有广播和发射,但可能它太复杂了,无法用这种方法处理所有这些事情
我还避免了在$rootScope
中存储订单、商店和快递
我认为这个应用程序有点慢,需要大量内存来处理所有事情,所以我想知道处理需要在控制器之间共享并实时更新的海量数据的最佳实践
我认为目前我的方法占用了太多的内存。
一开始,我必须做的第一件事就是从API获取所有订单、所有商店和所有快递公司的信息
——这种方式有损于角度应用程序的意义。您可能应该只检索数据的相关部分,并且只在需要时检索。我在开始时需要所有信息。。。我有一个要显示的订单列表,商店列表和一个谷歌地图,上面有所有快递员的位置。当然,当应用程序加载时,用户实际上并没有看到所有的订单、商店和快递员。如果是这样,那么数据可能并不庞大。根据您的描述,我猜每个项目的前n个(例如10个)就足够了。其余的可以根据需要加载,例如当用户开始滚动时。本地存储/HTML5 Web存储可能是一个选项,然后您可以只将当前需要的数据加载到您的范围(如果您不允许更改后端服务以仅加载您在特定时刻实际需要的内容)。