我正在开发一个SPA,并发现自己需要在加载某些部分时触发几个(5-10 +)ajax调用。使用web2py,似乎很多人都在等待其他人完成或接近完成以获取任何返回的数据。有没有一种方法可以防止Ajax调用在web2py中依次触发?
这里列出一些Chrome的时间表输出的
这里绿草表示时间花费在等待一个例子,灰色表示时间停滞,透明表示时间排队,和蓝色表示实际接收的内容。
这些都是通过web2py控制器的请求,大多数只是做一个简单的操作(通常是数据库查询)。任何访问静态资源的东西似乎都不会很快被处理。
为了记录,我在cookies中使用了会话,因为我确实了解了基于文件的会话如何强制web2py进入类似的行为。我还在任何不修改会话的控制器的顶部调用session.forget()。
我知道我可以和我打算通过减少ajax调用的次数来优化这一点,但我发现这种行为很奇怪并且不受欢迎。还有什么可以改善这种情况吗?
我们尝试切换到HTTP/2,虽然某些实现(IIS)比其他实现(nginx和uwsgiemperor)快得多,但请求的形状保持不变。即Chrome中的时间线输出仍然看起来像一个阶梯,因为每个请求都会连续返回。还有什么我们可以看看? [示例](http://i.imgur.com/55qoXfg.png) – mattjn
在新示例中,它看起来好像是同时触发请求,但服务器一次只能处理一个或两个以上的请求。在您的Web服务器配置中,您指定了多少个进程/线程。您可能需要配置更多的工作人员,以便可以同时处理多个请求。 – Anthony