正在加载Jade - > HTML通过Websockets + NodeJS而不是AJAX

时间:2012-09-30 00:39:56

标签: html ajax node.js websocket pug

想知道是否有一种干净正确的方法来通过websockets而不是通过$ .ajax({...})请求加载html标记。我对websockets有些新意,所以我试图找出它可以完全取代AJAX等等......

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

2 个答案:

答案 0 :(得分:0)

如果你想在客户端和服务器之间保持双向连接,那么你需要使用websockets,这对于实时应用程序(如聊天,股票营销,电子学习等)非常有用。

如果您需要加载html标记,您不需要多次从客户端到服务器来回加载内容并提供服务,它将非常优雅且不浪费。

如果您不想将额外的有效负载传递给服务器,您还可以使用获取路由和$ .get ajax请求。

答案 1 :(得分: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/