想知道是否有一种干净正确的方法可以通过 websockets 而不是通过 $.ajax({...}) 请求加载 html 标记。我对 websockets 有点陌生,所以我想弄清楚它在哪里可以完全取代 AJAX 等等......
现在我只是在我的 NodeJS 应用程序中创建另一个“发布”路由器来加载 html,但我不知道所有这些是否都是必要的。
当然,您可以通过 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,它非常强大且简单:
如果您想在客户端和服务器之间保持双向连接,则主要需要 websocket,这对于实时应用程序(如聊天、股票营销、电子学习等)很有用。
如果您需要加载 html 标记,则无需从客户端到服务器多次来回加载内容并提供服务,这将是一种非常优雅且不浪费的方式。
如果您不想将额外的有效负载传递给服务器,您还可以使用获取路由和 $.get ajax 请求。