Ajax 决策树的连续转移:REST与websocket
我正在开发一个web应用程序(后端是用Node.js和mongo db编写的),用户可以在其中做出、记录和描述决策。我用一个树形结构来表示它,如下所示Ajax 决策树的连续转移:REST与websocket,ajax,node.js,rest,websocket,tree,Ajax,Node.js,Rest,Websocket,Tree,我正在开发一个web应用程序(后端是用Node.js和mongo db编写的),用户可以在其中做出、记录和描述决策。我用一个树形结构来表示它,如下所示 { tree: { root: Node, nodes: [{ // keeping a reference to all nodes of the tree index: Number, node: Node }], lastIndex: Number } } 节点在哪里
{
tree: {
root: Node,
nodes: [{ // keeping a reference to all nodes of the tree
index: Number,
node: Node
}],
lastIndex: Number
}
}
节点在哪里
{
parent: Node,
children: [Node],
data: {
d1: String,
d2: [String],
d3: Number,
d4: Boolean
// more data fields as above, probably not more than 10-20 fields per node
},
index: Number // this node's index in the tree's node map
}
在web应用程序上(即在浏览器中),用户可以执行以下操作:
- 创建一棵新树
- 将节点添加到树中
- 编辑节点的数据
- 删除完整的子树
- 更改节点子节点的顺序
- 加载完整的树
- 大多数情况下,我将处理nodes表上的创建和更新操作(每个用户每秒可能有许多创建/更新)
- 从服务器发送到客户端的数据不会太多(除非加载了新树)
非常感谢您的帮助 也许这取决于您是否希望在客户端和服务器之间进行完全异步的通信,web套接字将为您提供这些通信,但您确实需要添加一个websocket服务器。@Berniev websocket与ajax之间的异步有何不同?在我的场景中有什么好处?websocket服务器不是我在node.js中声明的另一个路由吗?有了websocket,客户端或服务器可以随时发送数据,我只需要客户端发送数据,所以切换到websocket没有任何好处?不是更快吗?在同一棵树上,同一用户每秒可以有多篇文章/更新。这可能取决于您是否希望在客户端和服务器之间进行完全异步的通信,哪些web套接字将提供给您,但您确实需要添加一个websocket服务器。@Berniev websocket与ajax的异步性有何不同?在我的场景中有什么好处?websocket服务器不是我在node.js中声明的另一个路由吗?有了websocket,客户端或服务器可以随时发送数据,我只需要客户端发送数据,所以切换到websocket没有任何好处?不是更快吗?每秒可以有来自同一用户在同一树上的多个帖子/更新。