1

我正在使用socket.io。它运作良好,但我对性能有一个简短的怀疑。我不确定我是否很好地使用了连接。

这是我的客户端脚本(玉模板语言):

!!! 5
html
  head
    title Foo
    script(type='text/javascript', src='/javascript/socket.io.min.js')
    script(type='text/javascript')
      socket = new io.Socket('localhost', 3000);
      socket.connect();
      socket.on('message', function(data) {
      });
  body

该脚本加载在每个页面上(因为它是我的布局页面)。所以在每一页上,socket 都会连接到服务器socket。这是我的问题,我不喜欢这个主意。

是否可以将客户端套接字连接到每个客户端页面的服务器套接字?

此外,是否可以(每个客户端)加载一次/javascript/socket.io.min.js库?

谢谢。

4

2 回答 2

1

是否可以将客户端套接字连接到每个客户端页面的服务器套接字?

检查pjax,希望对您有所帮助。

于 2011-11-26T21:40:18.363 回答
0

为什么不让服务器将页面数据流式传输到客户端(使用 AJAX 调用或使用您的套接字),并div在用户单击链接时用页面数据替换内容?

而不是在所有元素上使用a href="my_page"、使用a href="#my-page"和添加点击事件侦听器,以确定用户试图访问的“页面”。您还需要查看第一次加载页面的时间,以防用户直接访问末尾的 URL。adocument.location.hashdocument.location.hash#my_page

如果您希望“自然” url 的行为符合预期(例如GET /my_page),您可以让服务器在处理请求时作为 AJAX 调用响应,但在使用时返回包含预先填充POST的主要内容的完整页面。divGET

于 2011-05-06T18:05:17.193 回答