2012-03-12 63 views
1

我建立了一個web應用程序「頭腦風暴」。以下是它的工作原理:用戶可以進入應用程序,然後提交一個挑戰,或者點擊一個已經存在的挑戰,然後想出解決方案來解決這個挑戰併發布。我在這裏一起砍死一個基本的例子對CouchDB的:http://wamoyo.iriscouch.com/ideageneration/_design/IdeaGeneration/attachments%2findex.html的最佳方式和多用戶

我要從頭開始,所有重建它,和我打起來反對這是非常生疏了一個挑戰。我希望多個用戶能夠同時爲相同的挑戰生成想法。有點像谷歌文檔允許多人編輯共享文檔的方式。我對如何解決這個問題有一些初步的想法,但我想我會在這裏問專家網絡。

我相當熟悉AJAX,有一個純AJAX方法,使生活和多用戶?使用node.js會有巨大好處嗎?什麼可能是其他一些選擇?

感謝洙多!

+0

有一個名爲SignalR的.net庫,如果你正在做asp.net webf或asp.net mvc – 2012-03-12 06:13:28

+0

謝謝!我在couchdb上使用普通的舊html和js。 – Costa 2012-03-13 03:56:06

回答

3

有在做這樣的網頁的幾種方法,使用普通AJAX輪詢,使用長輪詢和使用網絡套接字。

  • 阿賈克斯投票 - 容易實現,本質上連接到服務器反覆通過javascript計時器,從服務器檢索數據並將其發送回通過定期阿賈克斯。

    • 優點:易於實現,作品無處不
    • 缺點:更新不是實時的,只有當計時器滴答交換數據。
  • Long polling - 想法是連接保持打開狀態直到超時,然後連接重新建立。可能會非常棘手,因爲對請求超時對於不同的Web服務器,路由器等不同的設置來實現

  • Web sockets - HTML5傘的一部分,只能在非常現代的瀏覽器,協議發生變化往往可以在開發過程中造成不兼容和生產。可以在現代瀏覽器中使用,也可以通過舊版Flash插件使用。這項技術是最輕量級的,因爲它不會導致所有的HTTP開銷。把它看作通過TCP在瀏覽器和Web服務器之間建立的雙向全雙工通信通道。

如需詳細討論,我建議您閱讀this good post by Scott Hanselman。它講述了有關SignalR的故事,但適用於其他服務器端框架。

還有一個podcast由同一作者,客人進入相當深入解釋這些技術。值得聆聽,IMO。

要獲得關於Node.js的問題,請與我們分享您的當前服務器技術,這樣我們就可以更深入地瞭解你的籌碼。

+0

太棒了!非常感謝您提供詳細的答案。實際上我對HTML5網絡套接字非常好奇,並感謝所有鏈接!我打算潛入。 – Costa 2012-03-12 17:31:27