如何保持视图响应

时间:2017-02-27 19:25:25

标签: javascript node.js multithreading reactjs express

我在Node.jsReactExpressSocket.IO中有一个单页面应用程序,其数据流划分如下:

C#服务器应用程序通过feed.js提供Socket.IO数据。 feed.js反过来也负责转换数据(在更新数据结构以便正确呈现到app.js之后)并将其提供给app.js以在浏览器中显示。

// Handle real-time incoming messages from c# clients.
socket.on('data', function (data) {
    broadcast(data, socket);
});

function broadcast(message, sender) {
    //process.stdout.write("Full message " + message.toString() + "\n");

    //...To app.js

    onChangeHandler(stock.symbol, 'stock', stock); 

在这种情况下,在实时加载下,浏览器有时会对数据没有响应,而是对影响显示的类似视图的命令。换句话说,我仍然可以看到数据更新,但鼠标点击浏览器不会以交互方式处理。

作为桌面开发者的正常反应"是通过创建额外的计算线程使计算(模型)与视图分离 - 视图已经在自己的线程上运行。但是,我已经读过Node.js(和支持的演员)是故意的单线程。看起来Socket.IO似乎没有那个限制。

想知道Node.js等中的习惯用法是编写在数据和GUI交互中对Web浏览器做出响应的实时应用程序。一个例子或一个链接会有所帮助。

0 个答案:

没有答案