Backbone model.save()由于客户端连接速度慢而导致请求堆积

问题描述 投票:0回答:1

我正在使用PsiTurk framework进行在线心理学实验。该实验包含数千个试验。在每个试验中,用户都会产生一些行为响应,并且JS前端使用Backbone的model.save()方法将这些响应(以及鼠标移动数据,响应时间等)发送到后端。这对于具有快速连接的客户端(有效地每隔几秒钟发送一次.save请求)很好地起作用,但是对于具有慢速连接的客户端,保存请求会堆积起来,导致需要数十秒才能清除的长请求队列。 在路上,这会导致到达最终屏幕时的过多延迟(这需要成功进行最终更新)。

解决此问题的最佳方法是什么?监视和限制未决请求的数量?到达最终屏幕时(在最终model.save()之前)中止待处理的请求?发送异步.save请求(如何?)

javascript ajax backbone.js
1个回答
0
投票

我发现的解决方案是保留一个计数器以监视未完成的请求(发送请求时增加,调用完成/错误事件时减少),因此如果已经有几个打开的请求,我可以避免发送更新。

© www.soinside.com 2019 - 2024. All rights reserved.