路由时是否应保留数据?

时间:2017-05-13 14:19:50

标签: database angular routing client-server

我有一些具有很多属性的Object。 我的Angular2应用程序的登录页面列出了每个对象的最小化版本。 当我点击其中一个列表项时,我将我的应用程序路由到/ object:id,id是对象的id,以及" full"将显示该对象的版本。

最小化对象中使用的属性也将用于完整对象。在我当前的版本中,我只是首先请求最小化对象中使用的属性列表,当路由到完整对象时,我请求该对象的所有属性。

然而,我认为最好的做法是以某种方式存储最小化显示中使用的数据,然后只请求剩余数据,从而共享最小化数据,或者请求所有完整数据AT ONCE,并简单地通过单击时它到完整版。

因此,我有一些与我的问题有关的问题。

  1. 如果我使用上述两种方法中的一种,我应该如何将数据从一个页面传输到另一个页面?我应该创建服务,缓存数据,然后只是从服务中请求它吗?

  2. 我应该到底做什么?是否有更有效的方法在同一个对象上同时拥有最小版本和完整版本,从而减少对服务器的请求?

  3. 附加信息:在我当前的数据库中,我有一个包含对象的巨大表格。数据。所有的。 (不重要的细节:由于有多种对象类型,我为每种对象类型都有一个表,并且#34;将它们加入到我返回客户端的巨大表中。)是否有优化我的客户端的方法和服务器基础设施?

    Thansk!

1 个答案:

答案 0 :(得分:1)

共享服务通常是在远离组件的路由时保持状态的方法。

您可以使用What is the correct way to share the result of an Angular 2 Http network call in RxJs 5?中说明的方法之一来避免针对相同数据的多个服务器请求。

另一种方法是实现RouteReuseStrategy https://angular.io/docs/ts/latest/api/router/index/RouteReuseStrategy-class.html