这个……不知道怎么解决了……可能是由于使用了smart使得服务器变的不稳定了?主要问题可能出现在浏览器上吧,缓存不彻底造成的BUG?今天状态不好,你当我胡言乱语得了

解决方案 »

  1.   

    $smart->clear_compiled_tpl();之后就可以了。与服务器php.ini设置的页面过期时间太短有关么?清除了编译的模板后就正常,不知道什么原因!
      

  2.   

    smarty的原理是,开启cache后,当你第一次运行一个页面时,他先判断你是不是第一次运行,如果是,他就会请求这个php页面,解析,然后生成一个临时的静态html页面对应这个php页面返回的结果,位于template_c目录.下次再运行,就会直接找这个页面了.但你不把一个页面运行完整,它的计数器会记录你不是第一次运行这个页面,但是那个静态缓存页面并没有生成出来.所以当它去尝试查找那个页面会找不到,未找到页面.执行$smart->clear_compiled_tpl();这个函数后,smarty会将所有页面是否第一次运行的计数器重置,并清除所有php文件对应的静态缓存页面,重新解析php页面.所以就可以了.不过如果这句要用在if($smarty->isCache('xxx.php')){ ... }并且发现数据库内容有改动的时候,否则你的缓存等于没用一样.
      

  3.   

    因为这个系统是关系到数据的准确,数据不断更新,所以我没有开启cache,我没说清楚,php打开的是浏览器的缓存,今早再出现同样问题。