在 emlog 模板中,我们有时需要展示一些自定义列表,例如文章分类、标签云、友情链接等这些列表通常是从数据库中获取数据并通过模板引擎渲染展示的,对于一些频繁更新的列表,每次都从数据库中获取数据并进行
在 emlog 模板中,我们有时需要展示一些自定义列表,例如文章分类、标签云、友情链接等
这些列表通常是从数据库中获取数据并通过模板引擎渲染展示的,对于一些频繁更新的列表,每次都从数据库中获取数据并进行渲染可能会影响性能
为了解决这个问题,我们可以考虑在模板中增加数据缓存的功能
下面是一个完整的 emlog 模板中给自定义列表增加数据缓存的代码函数
可以直接复制到 emlog 模版文件夹下的 module.php 文件中,然后在 emlog 模版需要的位置写调用代码即可实现emlog模板读取列表加速的效果
<?php // 读取文章列表写入缓存 // 调用方式:Emlog_Listcache('1,2,3','20','listcache'); // 分为三个参数第一个是分类id,第二个是读取数量,第三个是缓存文件名称 function Emlog_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>'; } } }
粉丝
0
关注
0
收藏
0