我gevent-socketio
在服务器和socket.io.js
客户端上使用。建立连接后,客户端接收应呈现的数据。渲染可能需要很长时间(最多 10 - 15 秒)。完成后,连接中止。我会调整性能,但这取决于将要渲染的数据,所以我不会大幅降低它。如何解决长时间 JS 处理后的制动连接问题?
问问题
65 次
1 回答
0
我解决了这个问题,将渲染过程分成小块并按顺序执行。例如,如果我需要渲染 100 个对象,而不是在循环中渲染它们,我只需迭代并存储函数以将每个表渲染为数组。然后我调用以下方法,将带有要执行的动作的数组作为参数放置:
databasy.ui.utils.executeSequentially = function (functions) {
if (functions.length == 0) {
return;
}
setTimeout(function() {
functions[0]();
functions.splice(0, 1);
databasy.ui.utils.executeSequentially(functions);
}, 0);
};
如您所见,第一个函数在 setTimeout 中使用参数 0 执行。完成后,将安排下一个函数。它允许在循环中触摸其他回调(包括那些需要 socket.io 执行的回调)。
于 2013-10-02T07:50:05.547 回答