【问题标题】:Web application, Update members status to other memberWeb 应用程序,将成员状态更新为其他成员
【发布时间】:2012-09-09 14:18:37
【问题描述】:

如果他在线或离线,我想制作朋友状态。

c#代码,javascript,html5

有一个类似的问题,但它使用.php,我对php一无所知。

无论如何,我一直在想,对于在线,您可以跟踪用户实际登录的时间。(将在线数据库中的字段设置为 true)

但是,您如何将该信息发送给需要知道其他用户是否登录的人? codebehind 或者 js 能不能像他上线时调用的接收函数/方法?(像观察者模式?)

当它更新时,我们不希望整个页面刷新,但页面的@flickering 最少。回传?

最后要跟踪用户是否离线,它可以像一个 http 响应来检查在线用户是否仍然在线的响应。但是怎么做? :P

如果我们最终得到它离线,我们是否可以使用我们通知其他人在线的相同接收功能/方法?

任何帮助将不胜感激。希望这可以成为类似线程的参考。

【问题讨论】:

    标签: c# javascript web-applications postback observer-pattern


    【解决方案1】:

    但是如何将该信息发送给需要知道其他用户是否登录的人?

    您无法将信息发送给用户。他必须自己获取信息。我的意思是http是一个“拉协议”,这意味着你不能向客户端推送信息,你只是给他请求的东西。

    现在,您想要的是客户端请求信息而没有注意到他的浏览器正在发送请求的事实。最好的方法是在 javascript 中使用 Ajaxweb 服务 发送请求。这样,您可以从服务器获取信息,而无需进行任何回发。然后,为了给实时信息留下印象,您需要在 setTimeout 中设置您的 ajax 调用,以便在任何给定的时间间隔(30 秒、1 分钟,您的选择)中获取信息。

    为了简化 - 很多 - 您的 ajax 调用,请查看 Jquery Ajax

    如果您对此一无所知,请不要放弃,它可能看起来比实际更复杂。

    最后跟踪用户是否离线

    我的建议是跟踪该用户的每个请求,并在一段时间没有任何请求后,声明该用户已注销。

    希望这会有所帮助!

    【讨论】:

    • 因此使用 ajax 会发出请求以“获取”其他用户的状态。但是,如果您想在网络应用程序上显示该信息,那么您需要回发以将状态更改为在线或离线,对吗?
    • 您的 ajax 调用将收到状态,然后您在 javascript 中使用它做您想做的事情。例如,Facebook 在用户名旁边将一个小点变为绿色。
    • 我也不太了解javascript,但是如果你设置了一个计时器,你是否需要一个新线程或无关紧要的东西?我的意思是如果你有另一个绑定到按钮的 javascript 函数会发生什么?会引起什么问题吗?
    • 它本身就可以正常工作,请参见此处的 setInterval :w3schools.com/js/js_timing.asp。 javascript 中没有多线程,但类似的函数会“模拟”它。
    • 我熟悉 javascript 中的计时器,只是不知道 Threads 发生了什么,非常感谢您提供的所有信息!
    猜你喜欢
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 2011-10-29
    • 2011-10-14
    相关资源
    最近更新 更多