靜態(tài)頁面相對動態(tài)頁面更利于優(yōu)化,其實本來沒有太大區(qū)別,動態(tài)頁面維護更方便,但用戶每次訪問都讀取數(shù)據(jù)庫,對服務(wù)器有一定要求。如果需要在靜態(tài)頁面增加動態(tài)內(nèi)容主要有以下方法,一是用Ajax異步加載文章;二是用自定義宏標記。
自定義宏標記并不是實時的,有緩存時間,本文將介紹的修改方法。
建立自定義宏標記隨機動態(tài)調(diào)用文章
增加名為Hot的標記,在正常顯示內(nèi)容里面填寫隨機文章通用標簽(orderby根據(jù)實際情況修改),其他默認即可。
{dede:arclist row="10" titlelen="38" orderby="rand"} <li><a href="[field:arcurl/]" target="_blank">[field:title/]</a></li> {/dede:arclist}
用js調(diào)用并取消緩存才能動態(tài)顯示,下面橙色部分是增加內(nèi)容。
<script src='/plus/mytag_js.php?aid=1&nocache=1' language='javascript'></script>
另一種自定義宏標記動態(tài)調(diào)用方法
找到/plus/mytag_js.php,復(fù)制一份并另存為mytag_js_hot.php。打開該文件,替換成下面代碼
<?php /** *自定義標簽js調(diào)用方式(調(diào)用熱點文章) */ require_once(dirname(__FILE__).'/../include/common.inc.php'); require_once(DEDEINC.'/arc.partview.class.php'); if(isset($arcID)) $aid = $arcID; $arcID = $aid = (isset($aid) && is_numeric($aid)) ? $aid : 0; if($aid==0) die(" document.write('Request Error!'); "); //這是新加的代碼,表示typeid if(isset($typeID)) $tid = $typeID; $typeID = $tid = (isset($tid) && is_numeric($tid)) ? $tid : 0; if($tid==0) die(" document.write('Request Error!'); "); $pv = new PartView($typeid=$typeID); $row = $pv->dsql->GetOne(" SELECT * FROM `dede_mytag` WHERE aid='$aid' "); if(!is_array($row)) { $myvalues = " "; } else { $tagbody = $row['normbody']; $pv->SetTemplet($tagbody, 'string'); $myvalues = $pv->GetResult(); $myvalues = str_replace('"','\"',$myvalues); $myvalues = str_replace("\r","\\r",$myvalues); $myvalues = str_replace("\n","\\n",$myvalues); $myvalues = " \r\n"; //file_put_contents($cacheFile, $myvalues); echo $myvalues; //不寫入緩存文件,直接輸出JS代碼 }
這個方法本人未測試成功,推薦用第一種方法。