2010-08-13 99 views
3

我有一个已经在ASP.NET中完成的网站。我需要在底部添加一个包含实时流式视频聊天(Flash对象)的部分,并且我需要它保留不同的页面访问。持久性网页导航 - ASP.NET C#

例如我有可能会被访问​​的profile.aspx和local.aspx,我需要底部的小聊天框架来坚持页面更改。

这里有一个图:

alt text http://c3gl.com/pageper.jpg

我能想到这样做的唯一途径...

使整个网站,只是动态加载它需要的页面上。 或使用底部框架也许? (不是这个想法的粉丝)

是否有任何其他方式来做到这一点,或一种方法来轻松实现我所需要的事实,我已经有一大堆aspx了?

编辑:我忘了提及,聊天是一个流式视频聊天。 (flash object)

+4

+1令人惊叹的图形 – jaws 2010-08-13 16:48:55

+0

谢谢你的下巴。它只花了我大约45分钟,所以它没有什么特别的。 – Jason 2010-08-13 16:55:13

回答

2

一种可能的解决方案是,您可以将两个页面作为单独的iframe放在父页面下。然后改变的框架可以改变并导航到其他页面,而聊天框架保持不变。

+0

我喜欢这个想法,几乎和我讨厌帧的想法一样......这可能会起作用。我想我可能需要一定程度的沟通,我们会看看我是否可以在周围徘徊。 – Jason 2010-08-13 16:53:27

2

如果您需要聊天窗口真正坚持,那么您需要避免页面加载。唯一的方法是使用框架或AJAX调用。

我认为如果你不想进入和修改你现有的页面,使用框架真的是你最好的选择。如果您不需要在聊天部分和主页面之间进行沟通,这将是您完成任务最快,最简单的方式。

另一个选项可能不是您要查找的选项,它将缓存某些聊天会话并在用户更改页面时重新加载该聊天会话。这样,他们保留他们的聊天记录,但聊天部分在页面重新加载期间消失。使用主页面或将聊天用户控件添加到每个页面将是完成此操作的最佳方式。

0

您是否在数据库之上运行?为什么不把聊天流量放入数据库,并在加载新页面时重新加载?如果你只想保留少量的文本(比如说一个小窗口的屏幕空间),你甚至可以使用会话状态。

将持久区域设置为用户控件(.ascx文件),以便您可以将保存和重新加载封装到一个位置,并轻松将其添加到任何您想要的页面中。

您是否使用母版页?如果是这样,只需将.ascx放入主页面即可。你可能不需要改变你的个人网页。

要保存输入的聊天框文本,您必须使用AJAX。我会使用类似JQuery的东西(与ASP.NET WebMethods和.asmx一起使用)将聊天框内容以设定的时间间隔发送回服务器。

+0

是的,忘了提及它的视频聊天寿。抱歉。 =/ – Jason 2010-08-13 18:08:40

0

根本不要坚持聊天框,坚持聊天。像Facebook一样,每个页面都有一个新的聊天框,并且该聊天框定期获取聊天的当前状态。

如果你坚持实际的聊天框,它将无法工作,因为不同的标签将处于不同的状态。

+0

忘了提及它的视频聊天。抱歉。 = / – Jason 2010-08-13 18:09:03