写了两个AJAX函数,第一个用于导入数据,同时将进度信息写到全局变量中,第二个每隔一秒种获取全局变量的进度信息
但是为何第二个ajax一定要等到第一个结束时才会去执行?
设置过jquery AJAX的async 为te,即异步执行
第二个ajax(获取进度信息的), 就算我随便返回个值(非session)里面的都不会去调用后台方法, 直到第1个执行完成才会进来。 也不是session的问题。。。
那么真的很奇怪啊, 大神速来~~~
解决了,需要配置访问的servlet和访问servlet过程中使用到的filter为异步,再调用request.startAsync()开启异步
应该跟 js 的异步任务执行的机制有关,异步任务会在队列中等待,不会并行执行的,需等待主线程空闲后才去执行。
多个异步任务,本质上也是顺次执行的。
一种方法是使用Worker单独轮询,另一种是使用隐藏iframe上传文件,再在页面js中ajax轮询