我需要一些以编程方式处理问题的建议。 我有一个关于PHP和Javascript(jQuery)的Web界面,授权用户需要通过执行某些操作来控制多个远程实体。
每个实体由10个步骤组成,进度由进度条表示,每个步骤都是一个Web服务调用,需要大约0.5-1.5才能执行。因此,对于例如要完成的第一个服务,调用10个不同的Web服务,并且当每个服务满足时,进度条进行10%。每个操作都使用ajax请求执行。
问题是,在同一个界面中,我必须为用户提供同时控制大约800个不同实体的选项,每个实体包含10个步骤,大约10x800 = 8000个ajax调用。
每个步骤执行800个请求似乎不是一个好主意,因为浏览器很难为它们提供服务,但是由于负载过重而经常挂起。 我曾想过做一些有限的批量操作,但还没有解决哪个选项能更好地为我服务。
例如,我应该使用一个计数器并每X次调用执行一次setTimeout / setInterval吗?我应该放弃这种方法并使用javascript worker?
我已经在堆栈溢出上读取了类似的线程,建议例如在服务器端处理它们。在我的情况下,这似乎不是一个好选择,因为一方面必须有进度流,另一方面,在服务器端执行800请求(~0,5-1,5秒)将意味着用户必须在没有任何信息的情况下等待至少6分钟 还有其他建议使用$ .when,但我怀疑这是否也适用于这种情况,因为我需要限制总批次,而不仅仅是每个请求的响应。