gpt4 book ai didi

angularjs - Chrome 上的 POST 请求 "stall"

转载 作者:行者123 更新时间:2023-12-02 22:54:22 28 4
gpt4 key购买 nike

我开始注意到发送到我们的应用程序服务器的 post 请求在浏览器端停滞了大约 7 秒,没有明显的原因。

环境:

  • Angular 1.4
  • Play Framework
  • Chrome 64。*
  • 服务器发送事件 (SSE)
  • POST 请求

从 Chrome 控制台可以看到,在停止时 TCP 连接数约为 3-4 个(如网络 -> 连接 ID 中所示)

如果用户快速执行大约 4 个创建 SSE 订阅的 UI 操作,然后执行 POST,则会持续观察到停顿。

我并不是真正的 UI 开发人员,因此任何帮助调试都会有所帮助。

最佳答案

我也看到过这个,在 Chrome 中使用 Angular 1.4(不确定是哪个版本)。在我们的例子中,这似乎是由太多并行请求引起的。因此,我们将请求分成批处理。如果您想尝试一下,可以使用此功能,看看它是否对您的情况有帮助:

function _batchRequests(requests, batchSize) {
function doBatch(batches, batchIndex, numBatches, deferred) {
if (batchIndex === numBatches) {
deferred.resolve();
return null;
}
console.log('Doing batch ' + batchIndex);
let p = [];
let batch = batches[batchIndex];
_.forEach(batch, (f) => {
p.push(f());
});
return $q.all(p).then(() => {
doBatch(batches, ++batchIndex, numBatches, deferred);
}, (err) => {
deferred.reject(err);
});
}
let deferred = $q.defer();
let b = batchSize || 3;
let batches = _.chunk(requests, b);
doBatch(batches, 0, batches.length, deferred);
return deferred.promise;
}

请注意,上述函数依赖于 lodash 的 _.chunk_.forEach

关于angularjs - Chrome 上的 POST 请求 "stall",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49087174/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com