2017-07-08 206 views
-1

我正在使用ajax從一個php文件中拉取數據庫,每分鐘更新(截斷/插入)。我每30秒用一個setInterval()函數調用ajax。大約50人上網後,它墜毀了。有沒有更好的方法來設置它來處理更多的用戶?輕量級javascript實時股票行情

+1

描述'它崩潰'... – YvesLeBorg

+0

它開始給予禁止的錯誤,並採取超長時間來加載頁面 – MyRealNameIsBlaze

+0

我剛纔意識到你正在運行截斷,然後插入。運行truncate的原因是什麼?你正在進行的是試圖在截斷操作中訪問數據庫的人等。 – Difster

回答

-2

你可以嘗試使用cron作業運行的單個查詢每30秒,存儲在一個全局變量$GLOBALS['results'];結果,然後讓你的用戶是拉回到自己的瀏覽器,而不是讓每個用戶訪問數據庫。

根據你的存儲情況(也許總計),你可以通過只拉取自上次更新後創建的記錄來優化查詢。

+0

1)cron不低於1分鐘。 2)'$ GLOBALS'不好。 3)cron作業的上下文(_that_' $ GLOBALS')仍然不能用於其他頁面,因爲... PHP生命週期和共享內存。結果將需要以另一種方式持久(可能在數據庫中) –

+0

他試圖避免爲每個用戶命中數據庫。我的方法沒有錯,你只是不喜歡它。 運行一分鐘的兩個cron作業會做同樣的事情。我的答案仍然沒有錯。 – Difster

+1

_approach_本身並不壞。這是細節。公平地說,用一些技巧,腳本可以每30秒執行一次(但不能用cron調用)。另外,拋開我對'$ GLOBALS'的厭惡,你仍然不能直接將cronjob的結果傳遞給webscript。兩者之間沒有聯繫。沒有共享的上下文/內存。因此,結果_must_被「寫」到某處(文件,表格等) –