使用Websockets + NodeJS而非AJAX加载Jade模板转为HTML

4

想知道是否有一种干净正确的方式通过Websockets加载HTML标记,而不是通过$.ajax({...})请求。我对Websockets有些新,所以我正在努力弄清楚它在哪里可以完全替代AJAX等...

现在,我只是在我的NodeJS应用程序中创建另一个“post”路由器来加载HTML,但我不知道所有这些是否都是必要的。

2个回答

0
当然,您可以通过Websockets从Node.js服务器向客户端传递数据,并且一旦在客户端上,只需将其发布到页面即可。
例如,如果您正在使用socket.io,则可以在服务器内部发出带有生成的HTML的事件,该事件将在客户端代码中接收:
在服务器上:
socket.emit('yourFiringEvent', variableContainingYourRawHtml);

在 JavaScript 客户端上:
socket.on('yourFiringEvent', function(htmlResult) {
    $("#yourContainerId").html(htmlResult); //jQuery flavour ;-)
});

当客户端代码接收到来自服务器的事件时,将在HtmlResult中加载variableContainingYourRawHtml中的数据。
如果您没有使用它,我建议使用socket.io库进行websocket使用,它非常强大且易于使用:

http://socket.io/


但是,你如何在Node中从jade文件获取原始HTML呢? - Marius Miliunas

0

如果你想要在客户端和服务器之间维护双向连接,特别是对于实时应用程序(如聊天、股票市场、电子学习等),那么你主要需要使用WebSockets。

如果你需要加载HTML标记,则不需要来回多次从客户端到服务器加载内容并提供服务,这将是一种更优雅且不浪费的方式。

如果您不想向服务器传递额外的负载,也可以使用$.get Ajax请求来获取路由。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接