我可以通过多个HTML页面使用套接字吗?

时间:2017-09-10 04:26:34

标签: javascript node.js sockets

例如,如果用户通过自动加载的标准index.html页面输入我的webapp,如果用户点击我的网页上的一个按钮加载另一个属于我的webapp的html页面,那么该套接字是否仍然可以使用?现在,我有一个用于我的3个html文件的前端js页面。它适用于我的标准索引文件,但当我单击一个导致另一个html文件的按钮(也连接到我的前端js页面)时,它表示io未在控制台中定义。

1 个答案:

答案 0 :(得分:1)

加载新的HTML页面将导致新页面上的Javascript被执行 - 这将破坏上一页的任何上下文(包括已建立的连接)。

有几种解决方法:

  1. 编写代码以在页面加载时重新建立连接。这将需要传递某种标识符,以便新连接与现有会话相关联。

  2. 将您的应用程序编写为单页面应用程序(SPA)。在SPA中,页面在客户端呈现,作为在第一次加载时传递给客户端的Javascript应用程序的一部分。因此,由于当用户从一个页面移动到另一个页面时没有重新加载,因此连接不会丢失。