我打算用广义的术语来回答这个问题,因为我没有任何关于asp.net或mvc3的知识。但是,在我看来,你正在寻找更多的架构方向。
您将需要设置生成状态页面的端点,将其称为/status.asp
。这将创建文本区域并加载数据库中的现有状态消息。
然后创建第二个终结点,例如/api/status.asp
。这不是视图,而是应用程序中的一个API,让用户可以创建(如果需要,还可以检索/修改/删除?)状态。
当用户点击输入textarea时,用新状态发出一个XHR请求到/api/status.asp
。这是通常的做法,但不是必须的,可以将其作为POST请求(请参阅REST - http://en.wikipedia.org/wiki/Representational_State_Transfer)。然后,此API应将新状态保存到数据库,并将状态的uid与状态消息一起返回,可能为JSON(如果您愿意,也可以是XML或YAML,由您决定)。例如,在JSON:
{
status: [
{
uid: '1234567890987654321'
msg: 'Hello World'
}
]
}
(要发送XHR请求,这是最容易使用的一个JS库像道场(http://dojotoolkit.org/reference-guide/dojo/xhr.html#dojo-xhr)或JQuery的(http://api.jquery.com/jQuery.ajax/))
当你的XHR请求返回,检查状态是200(一切正常),然后读取返回的数据。编写一些Javascript来创建一个新的DOM节点,将状态消息注入到该DOM节点并将其添加到以前状态节点的底部。
积分:
如果你想某乙被看的人A的/status.asp
页面,该页面自动更新,当人一帖一个新的状态,你需要做一些更多的工作。首先,修改/api/status.asp
以在通过HTTP GET调用时返回最后一个x(比如10?)状态更新的列表。包括每个状态的UID以及状态文本。
反复调用您的/api/status.asp
API *(可能包含上次调用它的时间戳,并让您的API仅在该时间之后返回状态帖),循环查看结果并检查该帖是否为已经包含在用户页面中(可能是由于每个DOM节点上的ID与状态的UID相匹配)。如果没有,请将其添加到页面中。
*您有多个选项可供选择。例如,简单地设置JS超时(容易,但不是非常有效),或者使用Comet(例如http://cometd.org/)或WebSockets(http://websocket.org/)。我会先超时,让它工作,然后弄清楚是否需要更好的技术。
删除Facebook标签,因为您不需要任何Facebook技术或API的帮助 – mrtom