javascript - 在浏览网站时保持与服务器的永久连接

标签 javascript jquery html comet frames

我们是一家年轻的初创公司,下周将推出一款独特的聊天产品。我们的聊天目前基于 Jabber(使用 Openfire 作为我们的 Jabber 服务器),通过 BOSH(使用 Punjab),客户端脚本使用 jQuery。

目前我们当前设置中最关键的问题是站点导航,当在我们网站的页面之间导航时,BOSH 连接会丢失,直到加载新页面并且 BOSH 连接通过身份验证。由于这个问题,我们必须设置一个非常长的超时时间(大约 1 分钟),然后才能注销那些没有注销就离开我们网站的用户。

我们知道基于 javascript anchor 的导航解决方案,但实现它需要对我们网站的标记、CSS 和 JS 脚本进行许多更改,并且我们网站的结构非常复杂。

还有其他解决办法吗? 我在考虑基于框架的导航,当一个页面将包含 2 个 iframe - 一个隐藏并包含 BOSH 连接,另一个包含真实页面内容。此解决方案的问题在于它会影响用户的感觉,并且地址栏中的 URL 将始终保留包含框架的页面的 URL。

是否有不需要完全重写站点结构/标记的解决方案来解决我们的问题?

提前致谢!

最佳答案

虽然这可能不是一个完整的重写,但我会说它需要做一些工作。让聊天框保持在那里,并在内容中使用 ajax,即,如果像在 facebook 上一样,底部有聊天栏,请将其余部分放在您通过 ajax 页面进入的 id 中。换句话说,将聊天从您的布局中取出,将其分开,并将您的链接变成 ajax 请求,这些请求可以通过全局链接处理程序处理,并通过搜索替换链接通过 sed 替换所有文件。 (href="改为href="javascript:urlhandler(但这需要考虑外部链接) 我能想到的另一个选择是在您的网站上有两个 iframe。主要和聊天。并为那些从页面、D/C 或发生在他们身上的任何事情导航的人提供 session cookie。

关于javascript - 在浏览网站时保持与服务器的永久连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1741444/

相关文章:

javascript - 导航离开然后返回时, polymer 按钮/文本变粗

javascript - 无法将动态添加的指令编译到页面中

gif动画完成时javascript触发

javascript - 获取/捕获 promise 中的响应状态

javascript - 为什么当我单击导航按钮时 jQuery fadeIn 和 fadeOut 不起作用?

python - 无法在 Django 模板中加载 css

javascript - 跨浏览器窗口关闭事件

javascript - 从 JSON 编码的数组字符串中获取值

html - 背景中的图像始终位于同一位置?

html - 使用 CSS 使图像消失而无需悬停