具有持久性的网页导航 – ASP.NET C#

我有一个已经在ASP.NET中完成的网站。 我需要在底部添加一个包含实时流式video聊天(Flash对象)的部分,我需要它来持续不同的页面访问。

例如,我有可能被访问过的profile.aspx和local.aspx,我需要底部的小聊天框架在页面更改之间保持不变。

这是一张照片:

alt text http://sofzh.miximages.com/c%23/pageper.jpg

我能想到的唯一方法就是……

使整个网站在页面上动态加载所需内容。 或者使用底架? (不是这个想法的粉丝)

有没有其他方法可以做到这一点,或者一种方法可以轻松实现我需要的东西,因为我已经有一大堆aspx了?

编辑:我忘了提,聊天是流媒体video聊天。 (flash对象)

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

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

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

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

实际上根本不要保留聊天框,坚持聊天。 像facebook一样,每个页面都有一个新的聊天框,聊天框定期获取聊天的当前状态。

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

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

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

你使用母版页吗? 如果是这样,只需将.ascx放在母版页中即可。 您可能根本不需要更改单个页面。

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