qq357552440 2021-05-28 16:43 采纳率: 100%
浏览 142
已采纳

Web 展示页,对于数据量比较大的还要有一定实时性页面如何实现高效展示?

各位,手上项目上有个页面: 建筑视图一览 ,现在一直加载得比较慢,每次打开这个页面要1分钟左右,现要想重新重构这个页面,需要一个思路。

目前情况:

1.这个页面,主要展示是的就是建筑的一些实时情况,Web前端页面需要,图形化的展示,前后端。

2.建筑是个树形结构,整个树形数据量几万,每级都有汇总信息,还有其他的关联信息(如:人数啊,设备数啊,建筑里有那些的人信息啊,设备信息啊,管理员信息啊等等),总之就是要关联蛮多表,来获取到这些关联信息。

3.这个页面对系统来打开频率高,对实时性有要求。

4.目前做法,就前端请求,后台接口实时计算:递归循环,然后关联查询,再计算汇总,最后组成JSON数据结构返回给前端。(目前接口查询要  40 秒左右)

不知道现在主流的做法是如何实现, 类似 数据一览 的页面的,求个整体重构思路。

 

 

 

 

 

 

 

  • 写回答

5条回答 默认 最新

  • Eric.Fang 2021-05-28 16:54
    关注

    如果每次数据整体统计(后端接口统计)需要很长时间的话,我这边建议有几点:

    1、尝试提升接口效率,方法:sql语句优化,索引优化,缓存优化等手段;

    2、使用推送功能实现局部刷新,利用 websocket ,每次局部内容发生变更时,将局部内容主动推送到前端,前端合并内容并渲染。

     

    基本上第二种效率理论上最高,但是重构成本也是最大的。

    将与你接口40s的效率,应该还是有优化的空间的,优化到 5s 以内肯定没有什么问题,尽量不要使用 join 之类的多联表查询,可以尝试查询主表之后,得到主表与关联表的外键,再单独根据外键 查询子表,手动装配到主表上,也就是将单次 联表查询 分成多次查询,手动组合结构。

    如果这样还是不能提升效率,那么就得看表中查询字段是否没有索引。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)