我打算用廣義的術語來回答這個問題,因爲我沒有任何關於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