首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我能将数据保存在HTTPGET的内存中吗?

我能将数据保存在HTTPGET的内存中吗?
EN

Stack Overflow用户
提问于 2018-09-13 19:35:41
回答 1查看 66关注 0票数 0

我正在通过网格页面更改上的api调用从服务器调用数据。在调用此方法时,我动态地获取所有列的表模式,并在角度边对其进行其他工作。

问题是,我只需要得到这个表数据一次。

如何将数据保存在内存中,以便如果用户在客户端更改页面,就不必再次访问数据库以获取模式数据?

代码语言:javascript
运行
复制
 [Route("api/MyRoute/GetData/{Skip}/{Take}")]
        [HttpGet]
        [AllowAnonymous]
        public HttpResponseMessage GetData(string Skip, string Take)
        {
            try
            {
                if (Result == null)
                {
                    Result = DynamicSqlQuery(Convert.ToInt32(Skip), Convert.ToInt32(Take));
                }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-13 23:14:22

如果您不想将数据保存在角侧,您可以在服务中进行http调用,例如

代码语言:javascript
运行
复制
dataStructure = [];

getDataStructure() {

   if (this.dataStructure) {
      return this.dataStructure;
   }else{

  return this.http.get<any>(
           this.url + 'values',
                { headers: headers }
              ).pipe( 
                tap( data => this.cachedData = data )
              );

   }                        
}

tap不会订阅,您可以在组件中正常订阅,当数据到达时,tap会将副本保存在内存中,因此下一次调用将返回该副本。

请参见SB中的一个示例(选项12 ):https://stackblitz.com/edit/angular-rb5vmu

您可以在日志中看到,首先从服务器获取调用,然后从缓存中获取调用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52320641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档