2012-08-01 71 views
5

我爲自己挑戰今天寫了一個半小時內的jQuery聊天。它最終花了我40分鐘。jquery與PHP聊天mySQL

但是,我想改進它,所以服務器和瀏覽器的負載並不可怕。

當前用戶鍵入到文本框中,按回車鍵,這些數據被髮送到一個.php文件,該文件更新一個mySQL表並輸出表中的所有行。

如果有人在沒有用戶按下回車鍵的情況下說出任何內容,那麼每兩秒鐘更新一次div間隔。

我只想知道如何以更好的方式或最有效的方式來執行此操作。我想了解使用的最佳技術以及爲什麼。

感謝您的所有意見,我喜歡堆棧溢出,對我來說它是無價的。

+4

去和Node.js和受SignalR閱讀起來。 – mdm 2012-08-01 16:56:25

+0

你可以使用[Ajax](http://api.jquery.com/jQuery.ajax/) – Aust 2012-08-01 16:59:50

+0

這就是我正在做的.load() – Chud37 2012-08-01 17:00:44

回答

1

對於使用「php back」/「javascript front」技術堆棧的聊天應用程序使用ajax輪詢將不可避免地導致沉重的服務器負載。 Http並不是專爲這種通信而設計的,如果你使用apache(正如我所假設的那樣),每個請求的開銷都非常大。

作爲一些委員會表示,你可以使用全棧JavaScript框架(即在後端Node.js)進行調查。

當我使用PHP後端和JavaScript前端(使用定期ajax民意測驗)加速現有的聊天應用程序時,我最終使用第三方服務器端產品來處理輕量級XMPP請求。此服務器端產品爲OpenFire,但您可以使用eJabberd獲得更好的性能 - 但OpenFire更易於設置和維護。結果非常令人滿意,服務器負載顯着下降,並且大約1000名在線用戶立即傳送消息(在低於平均水平的性能專用Linux機器上)。

很難解釋SO答案範圍內的所有微小細節,但幸運的是,Ben Werdmuller @ IBM在這個主題上寫出了一個awesome tutorial

+1

請注意:XMPP實際上是Facebook用來聊天的地方,所以也許這是它的可擴展性的標誌 – Sammaye 2012-08-01 18:03:55