2010-02-16 71 views
4

我目前正在研究輕型php框架,以便與我的站點的某些高請求ajax一起使用,並且遇到了讓我完全陷入困境的一個有趣問題。 ajax用於一系列通知,所以javascript每隔30秒發送一次ajax請求獲取新信息。這個Ajax在整個網站的每個頁面都是活躍的,所以我意識到它有很多請求,因爲有幾百個用戶在任何時候瀏覽網站,許多用戶打開幾個窗口。高頻Ajax和MySQL睡眠過載

句法明智的一切都是完美的。問題是,當我爲我的社區激活ajax時,在MySQL數據庫中會建立30-40個SLEEP命令。所有這些似乎都忽略了10秒的設置超時時間。它會影響整個網站的性能。

我的理解是,遺留的睡眠命令是未連接的連接的結果。我使用MySQLi面向對象類,並用我自己的一些函數擴展它。所有內容都由教科書組成,然後再對照文檔進行檢查,並確保每一小部分MySQLi類都關閉併發布。

如果任何人有這種類型的效果的任何智慧或經驗,我將非常感謝任何意見。

回答

1

您是否嘗試過與目前的拉/投票方法相比的推送方式?在彗星看看:

不過,也有一些缺點,其中最主要的,你必須保持開放的連接,一些瀏覽器會限制您可以維護的連接數量。有關使用彗星的利弊下面的文章會談,並提出了一種混合輪詢方法:

這是一個計算器疑問,談論彗星也:


+0

我不確定我能如何將COMET整合到我的設計中。感謝您的建議,我會牢記在心。 – rayblasdel 2010-02-16 20:09:32

+0

我發佈的一些鏈接討論了實現Comet,即使是使用AJAX。 – 2010-02-16 21:20:31