您的位置:首页 > 其它

自动更新ssi页面的思路汇总

2016-08-28 11:46 169 查看
最近在试图将页面静态化,有三种思路,    1 静态生成html,需要在发布文章的时候点击生成,缺点是需手工生成,而且每一次改动都需要重新生成整个页面。实时性差吗,不能保证是最新发布的。    2 ajax调用,不用手工生成,js直接读取最新显示,实时性好,但缺点是搜索引擎不收录。    3 ssi 不需要手动生成,自动完成静态化,但是还有有点小的问题,就是实时性不好,尽管有的可以支持包涵动态文件,但兼容性不好。   结合这三种思路,于是想到 了用ajax+ssi的思路,先用ssi调用完成静态化,并用js定时更新所包含的ssi片段核心代码如下
js代码function ssi_update(ssi_name,ssi_time,templates){//alert(ssi_name);    $.get("public/data/ajax.php?action=get_time",function(data){var t=data-ssi_time;//alert(t);                      if(t>360){$.get("public/data/ssi.php?ssi_name="+ssi_name,function(data){//alert(data);  });} });                        //每隔6分钟更新一次}
html代码 <!--#include file="public/data/ssi/ssi_rdwt_comment.shtml"--><script>ssi_update(ssivar,mtbd_time,"asdas");</script>
ssi子文件中写入<script>var ssivar="rdwt_commemnt";var mtbd_time="1317103220";</script>
ajax.php<?php   include '../../include/common.php';   switch($_GET['ssi_name']){      case "news":         $query=$db->query("select * from jzadmin_news where 1 limit 14"); while($value=$db->fetch_array($query, $result_type = MYSQL_ASSOC)) { $ssi_news.='<li><a href="show.php?id='.$value[id].'">·'.$value[title].'</a></li>'; } $ssi_news.='<script>var ssivar="'.$_GET['ssi_name'].'";var mtbd_time="'.time().'";</script>'; file_put_contents("public/ssi/ssi_news.shtml",$ssi_news);         break;        case "answer":         $query=$db->query("select * from jzadmin_news where 1 limit 4"); while($value=$db->fetch_array($query, $result_type = MYSQL_ASSOC)) { $ssi_answer.='<li><a href="show.php?id='.$value[id].'">·'.$value[title].'</a></li>'; } $ssi_answer.='<script>var ssivar="'.$_GET['ssi_name'].'";var mtbd_time="'.time().'";</script>'; file_put_contents("ssi/ssi_answers.shtml",$ssi_answer);         break;     case "fhxx":        $ssi_fhxx='<div class="scroll_multl"><table class="mulitline" cellpadding="0" cellspacing="0"><tr><th>收件人</th><th>地区</th><th>快递公司</th><th>发货日期</th><th>预到日期</th><th>包裹票号</th></tr>';         $query=$db->query("select * from jzadmin_fhxx where 1 limit 10"); while($value=$db->fetch_array($query, $result_type = MYSQL_ASSOC)) { $ssi_fhxx.='<tr height="22">                                <td align="center" width="67">'.$value[name].'</td>                                <td align="center" width="156">'.$value[province].$value[city].'</td>                                <td align="center" width="104">'.$value[postcorp].'</td>                                <td align="center" width="87">'.date('Y-m-d',$value[date_fh]).'</td>                                <td align="center" width="135">'.date('Y-m-d',$value[date_yd]).'</td>                                <td align="center">'.$value[num].'</td></tr>'; } $ssi_fhxx.='</table></div><script src="public/js/jquery.lazyload.js" type="text/javascript"></script><script>$(function(){$("img").lazyload({ threshold : 600 });$("#ac").floatdiv("right");';  $ssi_fhxx.='var _wrap=$(\'table.mulitline\');'; $ssi_fhxx.='var _interval=2000;';  $ssi_fhxx.='var _moving;';  $ssi_fhxx.='_wrap.hover(function(){ '; $ssi_fhxx.='clearInterval(_moving);';  $ssi_fhxx.='},function(){ '; $ssi_fhxx.='_moving=setInterval(function(){ '; $ssi_fhxx.='var _field=_wrap.find(\'tr:eq(1)\');';  $ssi_fhxx.='var _h=_field.height();'; $ssi_fhxx.='_field.animate({marginTop:-_h+\'px\'},600,function(){'; $ssi_fhxx.='_field.css(\'marginTop\',0).appendTo(_wrap);';  $ssi_fhxx.='}) '; $ssi_fhxx.='},_interval)';  $ssi_fhxx.='}).trigger(\'mouseleave\');'; $ssi_fhxx.='});';    $ssi_fhxx.='</script>'; $ssi_fhxx.='<script>var ssivar="'.$_GET['ssi_name'].'";var mtbd_time="'.time().'";</script>'; file_put_contents("ssi/ssi_fhxx.shtml",$ssi_fhxx);                 break;    case "ly":        $query=$db->query("select * from jzadmin_comments where 1 limit 7"); while($value=$db->fetch_array($query, $result_type = MYSQL_ASSOC)) { $ssi_ly.='<li class="top6_p1">Q: '.$value[title].'</li><li class="top6_p3"><span class="top6_p2">A:</span>'.$value[reply].'</li>'; } $ssi_ly.='<script>var ssivar="'.$_GET['ssi_name'].'";var mtbd_time="'.time().'";</script>'; file_put_contents("ssi/ssi_ly.shtml",$ssi_ly);         break;    case "mtbd":     $query=$db->query("select * from jzadmin_news where 1 limit 10");   while($value=$db->fetch_array($query, $result_type = MYSQL_ASSOC)) {   $ssi_mtbd.='<li><a href="'.$value[id].'><strong>环球财经:</strong>'.$value[title].'</a></li>';  }  $ssi_mtbd.='<script>var ssivar="'.$_GET['ssi_name'].'"; var mtbd_time="'.time().'";</script>';  file_put_contents("ssi/ssi_mtbd.shtml",$ssi_mtbd);         break;    case "fx_comemnt":        $query=$db->query("select * from jzadmin_comments where 1 limit 7"); while($value=$db->fetch_array($query, $result_type = MYSQL_ASSOC)) { $ssi_other_comment.='<div class="wd_main"><div class="wd_wt">'.$value[title].'<br /><span class="wd_p1">['.date("Y.m.d",$value[time]).']</span></div><div class="wd_sj">买家:<span class="wd_p2">'.$value[username ].'</span></div><div class="al_x"></div></div>'; } $ssi_other_comment.='<script>var ssivar="'.$_GET['ssi_name'].'";var mtbd_time="'.time().'";</script>'; file_put_contents("ssi/ssi_fx_comment.shtml",$ssi_other_comment);         break;     case "rdwt_commemnt":        $query=$db->query("select * from jzadmin_comments where 1 limit 18"); while($value=$db->fetch_array($query, $result_type = MYSQL_ASSOC)) { $ssi_rdwt_commemnt.='<div class="wd_main"><div class="wd_wt">'.$value[title].'<br /><span class="wd_p1">['.date("Y.m.d",$value[time]).']</span></div><div class="wd_sj">买家:<span class="wd_p2">'.$value[username ].'</span></div><div class="al_x"></div></div>'; } $ssi_rdwt_commemnt.='<script>var ssivar="'.$_GET['ssi_name'].'";var mtbd_time="'.time().'";</script>'; file_put_contents("ssi/ssi_rdwt_comment.shtml",$ssi_rdwt_commemnt);         break;    case "fx_answers":         $query=$db->query("select * from jzadmin_news where catid=5 limit 5"); while($value=$db->fetch_array($query, $result_type = MYSQL_ASSOC)) { $ssi_fx_answers.=' <li><strong>问:'.$value[title].'</strong></li><li><span>答:</span>'.$value[content].'</li>'; } $ssi_fx_answers.='<script>var ssivar="'.$_GET['ssi_name'].'";var mtbd_time="'.time().'";</script>'; file_put_contents("ssi/ssi_fx_answers.shtml",$ssi_fx_answers);         break;  case "rdwt_answers":         $ssi_rdwt_answers='';         $query=$db->query("select * from jzadmin_news where catid=5 limit 7"); while($value=$db->fetch_array($query, $result_type = MYSQL_ASSOC)) { $ssi_rdwt_answers.=' <li><strong>问:'.$value[title].'</strong></li><li><span>答:</span>'.$value[content].'</li>'; }print_r($ssi_rdwt_answers); $ssi_rdwt_answers.='<script>var ssivar="'.$_GET['ssi_name'].'";var mtbd_time="'.time().'";</script>'; file_put_contents("ssi/ssi_rdwt_answers.shtml",$ssi_rdwt_answers);         break;       }?>问题解决,但是分页怎么办呢,不急,用ajax来做 <table border="0" cellspacing="0" cellpadding="0"  class="wd_left">  <tr bgcolor="#ffe9f5" style="padding:3px 0;">    <td width="610">        <span class="STYLE1">反馈</span></td>    <td width="100"><span class="STYLE1">反馈者</span></td>    </tr>  <tr>    <td colspan="2" id="comment_list">  <!--#include file="public/data/ssi/ssi_rdwt_comment.shtml"--><script>ssi_update(ssivar,mtbd_time,"asdas");</script>    </td>    </tr>  <tr><script>  /*function request(paras){  var url = location.href;  var paraString = url.substring(url.indexOf("?")+1,url.length).split("&"); var paraObj = {}  for (i=0; j=paraString[i]; i++){  paraObj[j.substring(0,j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=")+1,j.length);  }   var returnValue = paraObj[paras.toLowerCase()]; if(typeof(returnValue)=="undefined"){  return "1";  }else{  return returnValue;  } }   var pagenow=request('page');*/  var pagenow=1;  </script>    <td colspan="2">       <table width="555" border="0" cellspacing="0" cellpadding="0" class="wd_fy">  <tr>    <td bgcolor="#eaeaea"><a href="javascript:pageshow($('#comment_list'),'first',pagenow,'public/data/page.php?type=ly&jsoncallback=?');">首页</a></td>    <td> </td>    <td bgcolor="#eaeaea"><a href="javascript:pageshow($('#comment_list'),'pre',pagenow,'public/data/page.php?type=ly&jsoncallback=?');">上一页</a></td>    <td> </td>    <td bgcolor="#eaeaea"><a href="javascript:pageshow($('#comment_list'),'next',pagenow,'public/data/page.php?type=ly&jsoncallback=?');">下一页</a></td>    <td> </td>    <td bgcolor="#eaeaea"><a href="javascript:pageshow($('#comment_list'),'last',pagenow,'public/data/page.php?type=ly&jsoncallback=?');">尾页</a></td>    <td>页次:<strong>1/19</strong>页</td>    <td>共200条记录</td>    <td>11条记录/页</td>  </tr></table>

function pageshow(obj,pagetag,page,url){        var pagesize=18; $.get(url,{op:"count",pagesize:pagesize},function(data){  if(pagetag=="first")pagenow=1;  else if(pagetag=="pre")pagenow=(page-1<1)?1:(page-1);  else if(pagetag=="next")pagenow=(page+1>=data)?data:(page+1);  else if(pagetag=="last")pagenow=data;  $.getJSON(url,{pagenow:pagenow,pagesize:pagesize},function(data1){  json=eval(data1); var html="";  for(var key in json.data) { html=html+'<div class="wd_main"><div class="wd_wt">'+json.data[key].title; html=html+'<br /><span class="wd_p1">['+json.data[key].addtime+']</span></div><div class="wd_sj">买家:<span class="wd_p2">'+json.data[key].username+'</span></div><div class="al_x"></div></div>';  }  obj.html(html);  }); });}<?php

   include '../../include/common.php';   switch($_GET['type']){      case "news":         $query=$db->query("select * from jzadmin_news where 1 limit 14"); while($value=$db->fetch_array($query, $result_type = MYSQL_ASSOC)) {$value=encodeGBK($value); $ssi_news.='<li><a href="show.php?id='.$value[id].'">·'.$value[title].'</a></li>'; }                  echo  $ssi_news;         break;        case "answer":         $query=$db->query("select * from jzadmin_news where 1 limit 4"); while($value=$db->fetch_array($query, $result_type = MYSQL_ASSOC)) {$value=encodeGBK($value); $ssi_answer.='<li><a href="show.php?id='.$value[id].'">·'.$value[title].'</a></li>'; }                echo  $ssi_answer;         break;     case "fhxx":         $query=$db->query("select * from jzadmin_fhxx where 1 limit 10"); while($value=$db->fetch_array($query, $result_type = MYSQL_ASSOC)) {$value=encodeGBK($value); $ssi_fhxx.='<tr height="22">                                <td align="center" width="67">'.$value[name].'</td>                                <td align="center" width="156">'.$value[province].$value[city].'</td>                                <td align="center" width="104">'.$value[postcorp].'</td>                                <td align="center" width="87">'.date('Y-m-d',$value[date_fh]).'</td>                                <td align="center" width="135">'.date('Y-m-d',$value[date_yd]).'</td>                                <td align="center">'.$value[num].'</td></tr>'; }  echo  $ssi_fhxxs;              break;    case "ly":   $pagesize=$_GET[pagesize]; if($_GET[op]=="count"){ $count=$db->num_rows($db->query("select * from jzadmin_comments where 1")); echo intval($count/$pagesize); }else{ $pagenow=$_GET[pagenow]-1; $lylist[count]=$db->num_rows($db->query("select * from jzadmin_comments where 1")); $query=$db->query("select username,title,addtime from jzadmin_comments where 1 limit ".$pagenow*$pagesize.",".$pagesize); while($value=$db->fetch_array($query, $result_type = MYSQL_ASSOC)) { $value[username]=mb_convert_encoding($value[username],"UTF-8","GBK"); $value[title]=mb_convert_encoding($value[title],"UTF-8","GBK"); $value[addtime]=date("Y-m-d",$value[addtime]); $lylist[data][]=$value; } echo $_GET['jsoncallback'].'('.json_encode($lylist).")"; }         break;      }?>好,大功告成,自动刷新+静态化而又不影响收录。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: