在emlog模板中,我们有时需要展示一些自定义列表,例如文章分类、标签云、友情链接等。这些列表通常是从数据库中获取数据并通过模板引擎渲染展示的。然而,对于一些频繁更新的列表,每次都从数据库中获取数据并进行渲染可能会影响性能。为了解决这个问题,我们可以考虑在模板中增加数据缓存的功能。
下面是一个完整的emlog模板中给自定义列表增加数据缓存的代码函数,可以直接复制到emlog模版文件夹下的module.php文件中,然后在emlog模版需要的位置写调用代码即可实现emlog模板读取列表加速的效果。
<?php //读取文章列表写入缓存 //调用方式:lanye_Listcache('1,2,3','20','listcache'); //分为三个参数第一个是分类id,第二个是读取数量,第三个是缓存文件名称 function lanye_Listcache($sortid = 0, $lognum = '10', $cachename = 'listcache'){ global $CACHE; $db = Database::getInstance(); if($sortid){$query = "and sortid in ($sortid)";}else{$query = '';} $sql = "select * from ".DB_PREFIX."blog WHERE type='blog' and hide='n' and checked='y' $query ORDER BY `date` DESC LIMIT 0,$lognum"; $listcache = $CACHE->readCache($cachename); if(empty($listcache)){ $list = $db->query($sql); $listcache = array(); while($row = $db->fetch_array($list)){ $listcache[] = $row; echo '<li><a href="'.Url::log($row['gid']).'" title="'.$row['title'].'" target="_blank">'.$row['title'].'</a></li>'; } $cacheData = serialize($listcache); $CACHE->cacheWrite($cacheData, $cachename); }else{ foreach($listcache as $row){ echo '<li><a href="'.Url::log($row['gid']).'" title="'.$row['title'].'" target="_blank">'.$row['title'].'</a></li>'; } } }
免责声明:
本页网址:点击复制分享给朋友吧!
本站分享的一切内容资源如若没有备注,均为蓝叶原创,如需转载请注明出处;如有侵权请与我们联系处理。敬请谅解!