再次嘿!我試圖編寫一組腳本,只有在它們上次運行超過15分鐘後才能在頁面上運行。基本上,一個自動腳本每半小時更新一次我的數據庫 - 並且顯示該信息和更新會話變量的頁面顯然必須在數據庫打開時查詢數據庫。需要時間間隔測試腳本的代碼批判PHP
因此,爲了最大限度地減少查詢,並保持安全,我認爲會話變量只會在數據庫中更新,如果該頁面上次查看時已超過15分鐘。我寫了一些代碼,我希望你們可以在我嘗試實現它之前看看它?
if(!isset($_SESSION['time_next'])){
$_SESSION['time_next'] = time() + (15 * 60);
//15 minutes
}
else if(time() >= $_SESSION['time_next']){
//update all the session variables, etc...
$_SESSION['time_next'] = time() + (15 * 60);
}
您怎麼看?這會工作嗎?
你知道每個用戶都有自己的一套會話數據嗎?如果有100人查看此頁面,您的代碼最終會每15分鐘運行一次。如果你想每15分鐘運行一次,你應該使用類似於數據庫的東西。或者,甚至更好,只需使用cron。 – 2010-08-19 22:18:53
是的,我想 - 這實際上是必要的。這個項目是一個網絡應用程序,所以每個同時使用它的用戶都需要從數據庫訪問他們自己的特定數據。根據每個用戶的一系列不同因素,他們的數據可能會以不同的方式顯示。 因此,本質上,是的腳本需要更新每個用戶在他們自己的時間表,因爲每個用戶將看到不同的數據。 – user405056 2010-08-19 22:22:21
哦,其實很抱歉,我誤解了你的答案。是的,數據庫中已經有一個CRON腳本,每30分鐘更新一次。每個INDIVIDUAL USER都訪問該數據,並將其放入顯示(並在其他頁面中使用)的某些會話變量中 - 因此,如果它們導航到不同的頁面然後返回,那麼數據可能會在此處不同。我試圖做到這一點,因此數據庫不會被查詢每次他們回到那個頁面,只是如果它是15分鐘,因爲我的30分鐘自動腳本很可能不會在那15分鐘的時間內運行。 – user405056 2010-08-19 22:26:45