【问题标题】:Webpage navigation with persistance - ASP.NET C#具有持久性的网页导航 - ASP.NET C#
【发布时间】:2010-08-13 16:25:28
【问题描述】:

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

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

这是一张照片:

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

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

使整个网站在页面上动态加载它需要的内容。 或者使用底部框架? (不喜欢这个想法)

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

编辑:我忘了说,聊天是流式视频聊天。 (闪光灯对象)

【问题讨论】:

  • 谢谢下巴。我只花了大约 45 分钟就完成了,所以它并没有什么特别之处。

标签: c# asp.net dynamic frames


【解决方案1】:

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

【讨论】:

  • 我喜欢这个想法,就像我讨厌框架的想法一样......这可能会奏效。我想我可能需要在两者之间进行某种程度的沟通......我们会看看我是否可以绕过它。
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

    实际上根本不持久化聊天框,持久化聊天。像 facebook 那样做,每个页面都有一个新的聊天框,并且该聊天框会定期获取聊天的当前状态。

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

    【讨论】:

    • 忘了说它是视频聊天。对不起。 =/
    【解决方案4】:

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

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

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

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

    【讨论】:

    • 是的,忘了说它是视频聊天。对不起。 =/
    猜你喜欢
    • 2013-04-28
    • 2015-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多