• 1
  • 1
分享
  • 【测试技术】app前端数据缓存问题如何复现,分析和优化
  • lee 2022-12-05 17:05:13 字数 708 阅读 5628 收藏 1

在过去的这个周末。接到了一个线上问题,描述如下:手动添加一个员工,然后进入线索管理编辑某个线索归属人,在下拉展示的员工列表当中,看不到我新添加的员工。

立马自己复现了一下,此时看一下接口返回情况,发现拉起员工列表的页面这个操作,并没有调用接口实时请求数据,也就是说这个地方使用的是缓存。

开发给的解释是:出于性能考虑,系统登陆后就缓存了员工这些基本配套信息,不是实时请求。进入设置——应用管理——找到该应用——清除数据,重新登录就看到新员工了。

客服欣然接受了这个处理方法。按照这个方法也解决了问题。

实际上,这个地方就不能从代码层面上优化了吗?方案肯定是有的:

思路一:

查询员工列表的地方,接口改成实时调用,这样每次展示的列表就都是最新的数据

思路二:

按照定时器设置的时间,每到达新一轮时间,就会自动触发同步员工,商品等配置项

思路三:

后台返回的缓存中添加时间戳,每次请求的时候先做数据对比,对比有差异的情况下,后端才会返回新的数据,

前端缓存数据中,需要增加时间戳标记,后端增加记录接口数据最新的变更时间戳updateTime,通过对比终端请求参数中,上一次请求时间戳oldRequestTime 和 updateTime来决定是否要返回数据:

if(oldRequestTime > updateTime) {
    return null;
 } else {
      return data;
 }

这三种方法中,接口请求次数最频繁的肯定是方案一,其次是二,三,但是三对前端的代码又有一定要求,没有整理好思路或者版本发布节奏一般不会采用三,实际上,我们公司的开发最终采用的也还是简单粗暴的方案一。如果感兴趣的同学可以试试方案三。

微信图片_20210701105135.jpg

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 在Java中,异常情况分为Exception(异常)和Error(错误)两大类,Java异常通常是指程序运行过程中出现的非正常情况,如用户输入错误、除数为零、需要处理的文件不存在、数组下标越界等,对于异常情况的出现,可以采用异常处理,以保证程序可以正常的执行。Java中定义两种类型的异常和错误:1. JVM(Java虚拟机) 异常:由 JVM 抛出的异常或错误。例如:NullPointerException 类,ArrayIndexOutOfBoundsException 类,ClassCastException 类。2. ...
            0 0 1012
            分享
          •   据微信派,微信刷掌支付正式发布,用户目前可以在刷脸设备上进行刷掌操作。需要现在设备绑定个人微信账号,录入手掌纹样。消费时,将手掌对准支付设备的扫描区,确认后即可完成支付。  相比刷脸支付,刷掌支付无论是安全或精准度上都更高一些。区别于指纹识别读取指腹的表皮纹路,掌纹读取的则是掌心血管纹路,能够避免暴露在外以及复制伪造。  对此,网友纷纷调侃:“挥手说我不要,然后就把钱扣走了”“这下是真的要‘剁手’了”“有些手,刷着刷着钱就没了”……  此前2023微信公开课PRO·微信之约于28日开讲,腾讯公司副总裁、微信支付负责人张颖介绍了微信支付开始尝试推出的“微信刷掌”服务,用创新科技带来更便捷的生...
            0 0 784
            分享
          • Linux系统的稳定、安全、免费、开源等特点,使其在软件行业中应用越来越广,越来越普遍。测试岗位的招聘要求中,也都会涉及要熟悉Linux命令,Linux也逐渐成为测试人员必不获取的一项技能。工作中用到的Linux远程管理工具有Xshell/PuTTY/SecureCRT等,使用最多的还是Xshell。基于Xshell,整理测试工作中常用的Linux命令,由于命令区分大小写,使用过程中一定注意。一、系统相关shutdown -h now或init 0:关闭系统shutdow -r now或reboot:重启系统logout:注销Ctrl+C:退出命令行date:显示系统日期ifconfig:查看...
            2 5 4596
            分享
          •       说到性能测试,我们到底是想谈论什么?      任何做产品的,都希望自己家的产品,品质优,性能好,服务海量用户,还不出问题。      任何使用产品的,都喜欢自己购买的产品功能全,性能优,不花一分冤枉钱。      不过理想很丰满,现实很骨感。实际产品的性能与开发周期,部署方式,软硬件性能等都息息相关。所以真正提到做性能测试的场景,多数是为满足特定需求而进行的度量或调优。      比如:针对交...
            3 2 1520
            分享
          • 一、软件质量模型功能性:能够满足明确和隐含要求的功能;可靠性:能够处理异常情况,在错误中很快恢复;易用性:易懂、易学、漂亮好看;效率性:占用少量资源,提供适当的性能;维护性:指产品可被修改的能力;可移植性:指软件产品从一种环境迁移到另一种环境的能力。二、软件测试分类(1)是否覆盖源代码黑盒测试;白盒测试;灰盒测试。(2)按照阶段划分单元测试:对软件中最小的可测单元进行的测试;集成测试:在单元测试的基础上,对多个单元组装后的产物进行测试;系统测试:在集成测试的基础上,把软件看作一个整体进行测试;验收测试:也叫交付测试,以最终用户的角度确认软件是否符合预期。(3)是否运行静态测试;动态测试。(4)...
            0 0 2600
            分享
      • 51testing软件测试圈微信