我们是一家年轻的初创公司,下周将推出一款独特的聊天产品。我们的聊天目前基于 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/