#1 SunPSP
根据说明,spAccess是文件缓存,缓存文件有生存周期在周期内再次使用时直接调用缓存文件而不再查询数据库
而更新是通过对比时间戳来判断的
目前发现个很灵异的事情,spAccess的缓存文件在每次刷新页面的时候都会更新一次。。。。
而无论缓存周期设置的是多少
看了下spAccess的实现函数,发现变化的部分貌似就是缓存周期的时间
我缓存周期设置的是永久缓存,即-1,生成缓存文件之后
文件头5374004972a
刷新一次页面
文件头5374005043a
发现数字部分,也就是记录缓存的生存周期部分发生变化
变化了71,差不多就是我这打字的时间
那么问下J大,这个缓存周期一直在变,他还怎么判定缓存过期?
附上代码
$$$$uuid = $$$$this->spArgs('subject','b9a5c345');还有另外一个问题,如果我在接下来的foreach循环中同时使用与相同的缓存方式
$$$$blocks = spAccess('r',$$$$uuid);
if(!$$$$blocks)$$$$blocks = spClass('spBlock')->getBlock($$$$uuid);
spAccess("w",$$$$uuid,$$$$blocks);
那么生成的缓存文件是空的(只有文件头:5374005582b:0;)
附上代码:
$$$$uuid = $$$$this->spArgs('subject','b9a5c345');如果去掉spAccess,那么就正常了
$$$$blocks = spAccess('r',$$$$uuid);
if(false == $$$$blocks)$$$$blocks = spClass('spBlock')->getBlock($$$$uuid);
spAccess("w",$$$$uuid,$$$$blocks,-1);
dump($$$$blocks);
foreach($$$$blocks as $$$$block){
switch($$$$block[query]){
case"0";
$$$$block[value] = spAccess('r',$$$$block[blockid]);
if(false == $$$$block[value])spAccess("w",$$$$block[blockid],$$$$block[value],300);
$$$$this->$$$$block[blockid] = $$$$block[value];
break;
}
}
$$$$this->display('index.html');
附代码:
foreach($$$$blocks as $$$$block){求解惑
switch($$$$block[query]){
case"0";
$$$$this->$$$$block[blockid] = $$$$block[value];
break;
}
}
2013-07-17 04:19:33