前端如何实现后端运行进度_前端动态获取后台处理进度显示在进度条上

实现思路

https://blog.csdn.net/q1w2e3r4470/article/details/72702406

我主要是借鉴了这篇博客的思路

我来简述一下他的思路,他前端用到了ajax异步请求,一个用于获取冗长的数据,就比如我后台要跑一千次统计,是需要很长时间的,另一个是一个周期ajax,每隔一段时间就去后台访问拿数据,后台巧妙的地方是开了一个全局变量,用于存放程序运行的状态,伪代码如下

全局变量s

主函数(前端请求这个链接需要比较长的时间才能返回数据):

s=0

''''

后台处理数据

''''

s=10

''''

后台处理数据

''''

如此重复

最后返回数据的时候s=100

辅助函数:

返回s的值

这是他的实现思路,就是通过全局变量给主函数插桩,告知辅助函数主函数运行到哪一步了

两个ajxa用的很巧妙,很简单的一个实现方法

它山之石可以攻玉

他的思路的问题是没有考虑到并发性,多用户下肯定是不能用同一个全局变量s的

我的一个思路

众所周知,每个用户都有一个独立的会话,那么就可以,把这个全局变量存在session里面,实现互相不干扰。

思路肯定没问题的,但是被ajax的机制坑了,ajax异步请求的时候session是不能在后台函数没

你可能感兴趣的:(前端如何实现后端运行进度)