2012-08-17 18 views
0

我不知道下面會是一個好主意還是相當禁忌生產性能明智:PHP - 使用會話臨時保存爲Ajax應用程序變量

一個Ajax的應用程序,例如像pagebrowser需要一定的語言 - 和配置值,它們存儲在數據庫中。所以每次用戶都在使用這個應用程序,在ajax腳本中,mysql-query一次又一次地完成變量的獲取。對於pagebrowser來說,可能會有10個或更多的請求(後退和前進,後退,前進等等),也就是10×數據庫選擇,而實際上只需要一次。

我的想法是,第一次安全會話數組中的config-vars,請求ajax-app。如果sessions-array存在,那麼mysql-query不會再次完成。 如果用戶調用另一個常規頁面,則會再次刪除這些會話數組。

現在我不太清楚,什麼會消耗更多的服務器資源,使用會話以上述方式進行存儲,或者每次只使用一個mysql查詢來獲取變量,用戶敲ajax -app。

Thanx提前,傑登

回答

1

我敢打賭會議會更有效,但最好的方法是檢驗和衡量不同的執行時間。

+0

好的,謝謝,我們會檢查這個接受的答案,因爲它與問題匹配,即使不是很確定,更像是猜測。也許我會以某種方式基準測試,不得不考慮,如何做到這一點。你會堅持你的意見嗎?即使會議包含30個鍵,那麼會話會更有效率?謝謝,jayden – jayden 2012-08-17 10:29:54

2

如果您使用大量數據,則可以考慮使用Cookie而不是會話來獲取服務器資源,這些資源將存儲在用戶的本地瀏覽器中。

+0

這實際上是一個非常好的主意,會考慮一下。 – jayden 2012-08-17 10:30:51

+0

當然,如果你看到會話是如何工作的,它實際上會在瀏覽器中存儲會話ID cookie,並且每次在請求通信中使用會話ID。因此,使用cookies代替會話不會有害,因爲整個過程有所減少。因爲我專門用來存儲用戶界面和其他東西的用戶喜好設置。同樣,如果您使用cookie,您也可以靈活地使用服務器端和JavaScript訪問cookie值。 – Sutha 2012-08-17 10:58:26

+0

雖然cookie隨每個http請求一起發送,所以如果您使用大量的數據,那麼不使用cookie的任何請求將會減慢。 – 2012-08-18 21:45:26