再次嘿!我试图编写一组脚本,只有在它们上次运行超过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