国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > 織夢DEDE > 正文

織夢首頁列表頁AJAX無限加載瀑布流修正

2024-07-12 09:01:12
字體:
來源:轉載
供稿:網友

最近在學javascript,才慢慢開始讀懂JS代碼。對HTML前臺AJAX加載技術研究了一番,像博客站或者圖片站運用AJAX異步無限加載,做成瀑布流,提高用戶體驗,這是AJAX異步加載的優點。

  AJAX異步加載的弊端:屬于WEB前端技術,蜘蛛不會抓JS調用的內容,也就是并不利于SEO優化。所以要運用這個功能的話最好有一部分直接調用,另一部分采用AJAX異步加載。

  

接下來用織夢來做AJAX異步加載WEB前端開發。網上有諸多教程,經過筆者整理,給出詳細說明,修正后分享給大家。

  打開/plus/list.php,找到

  require_once(dirname(__FILE__)."/../include/common.inc.php");

  下面增加代碼


 

if(isset($_GET['ajax'])){  $typeid = isset($_GET['typeid']) ? intval($_GET['typeid']): 0;//傳遞過來的分類ID  $page = isset($_GET['page']) ? intval($_GET['page']): 0;//頁碼  $pagesize = isset($_GET['pagesize']) ? intval($_GET['pagesize']): 15;//每頁多少條,也就是一次加載多少條數據  $start = $page>0 ? ($page-1)*$pagesize : 0;//數據獲取的起始位置。即limit條件的第一個參數。  $typesql = $typeid ? " WHERE typeid=$typeid" : '';//這個是用于首頁實現瀑布流加載,因為首頁加載數據是無需分類的,所以要加以判斷,如果無需  $total_sql = "SELECT COUNT(id) as num FROM `dede_archives`  $typesql ";  $temp = $dsql->GetOne($total_sql);  $total = 0;//數據總數  $load_num =0;  if(is_array($temp)){  $load_num= round(($temp['num']-15)/$pagesize);//要加載的次數,因為默認已經加載了  $total = $temp['num'];  }  $sql = "SELECT a.*,t.typedir,t.typename,t.isdefault,t.defaultname,t.namerule,  t.namerule2,t.ispart, t.moresite,t.siteurl,t.sitepath  FROM `dede_archives` as a JOIN `dede_arctype` AS t ON a.typeid=t.id    $typesql ORDER BY id DESC LIMIT $start,$pagesize";  //echo "$sql";  $dsql->SetQuery($sql);  $dsql->Execute('list');  $statu = 0;//是否有數據,默認沒有數據  $data = array();  $index = 0;  while($row = $dsql->GetArray("list")){  $row['info'] = $row['info'] = $row['infos'] = cn_substr($row['description'],160);  $row['id'] =  $row['id'];  $row['filename'] = $row['arcurl'] = GetFileUrl($row['id'],  $row['typeid'],$row['senddate'],$row['title'],$row['ismake'],  $row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],  $row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']);  $row['typeurl'] = GetTypeUrl($row['typeid'],$row['typedir'],  $row['isdefault'],$row['defaultname'],$row['ispart'],  $row['namerule2'],$row['moresite'],$row['siteurl'],$row['sitepath']);  if($row['litpic'] == '-' || $row['litpic'] == ''){  $row['litpic'] = $GLOBALS['cfg_cmspath'].'/images/defaultpic.gif';  }  if(!preg_match("#^http:////#i", $row['litpic']) &&$GLOBALS['cfg_multi_site'] == 'Y'){  $row['litpic'] = $GLOBALS['cfg_mainsite'].$row['litpic'];  }  $row['picname'] = $row['litpic'];//縮略圖  $row['stime'] = GetDateMK($row['pubdate']);  $row['typelink'] = "<a href='".$row['typeurl']."'>".$row['typename']."</a>";//分類鏈  $row['fulltitle'] = $row['title'];//完整的標題  $row['shorttitle'] = $row['shorttitle'];//副標題  $row['title'] = cn_substr($row['title'], 60);//截取后的標題  $data[$index] = $row;  $index++;  }  if(!empty($data)){  $statu = 1;//有數據  }  $result =array('statu'=>$statu,'list'=>$data,'total'=>$total,'load_num'=>$load_num);  echo json_encode($result);//返回數據  exit();  }

   模板文件增加內容

 在需要用AJAX異步加載的模板的</head>前增加代碼


 

<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>  <script type="text/javascript">  var loadConfig = {  url_api:'{dede:global.cfg_cmspath/}/plus/list.php', //修正plus目錄  typeid:{dede:field name='typeid'/}, //首頁此處是typeid:0,  page:2,  pagesize:3,  loading : 0,  }  function  loadMoreApply(){  if(loadConfig.loading == 0){  var typeid = loadConfig.typeid;  var page = loadConfig.page;  var pagesize = loadConfig.pagesize;  var url = loadConfig.url_api,data={ajax:'pullload',typeid:typeid,page:page,pagesize:pagesize};  var sTop = document.body.scrollTop || document.documentElement.scrollTop, dHeight = $(document).height(), cHeight = document.documentElement.clientHeight;  console.log(dHeight);  if (sTop + cHeight >= dHeight - cHeight) {  loadConfig.loading = 1;  function ajax(url, data) {  $.ajax({url: url,data: data,async: false,type: 'GET',dataType: 'json',success: function(data) {  addContent(data);  }});  }  ajax(url,data);  }  }  }  function addContent (rs){  if(rs.statu== 1){  var data = rs.list;  var total = rs.total;  var arr=[];  var length = data.length;  for(var i=0;i<length;i++){  arr.push('<li>');  arr.push('<a href="'+data[i].arcurl+'" class="preview">');  arr.push('<img class="" width="" height="" alt="data[i].title" src="'+data[i].picname+'" />');  arr.push('</a>');  arr.push('[<b>'+data[i].typelink+'</b>]');  arr.push('<a href="'+data[i].arcurl+'" class="title">'+data[i].title+'</a>');  arr.push('</li>');  }  $('.data-list').append(arr.join(''));  loadConfig.load_num = rs.load_num;  if(total<loadConfig.page*loadConfig.pagesize || loadConfig.page > loadConfig.load_num){  window.removeEventListener('srcoll',loadMoreApply,false);  }  loadConfig.page++;  loadConfig.loading = 0;  }  }  function pullLoad(){  window.addEventListener('scroll', loadMoreApply, false);  }  pullLoad();  </script>

首頁HTML代碼示例  

  注意:首頁模板用arclist標簽,用row='3'是初始化調用的3條;列表模板用list標簽,用pagesize='3'。模板里面的<div class="data-list“>與js里面的data-list對應,需要把循環部分全部包裹起來
 

<div class="listbox">  <ul class="e2">  <div class="data-list">  {dede:arclist row='3'}  <li> [field:array runphp='yes']@me = (empty(@me['litpic']) ? "" : "<a href='{@me['arcurl']}' class='preview'><img src='{@me['litpic']}'/></a>"); [/field:array]  [<b>[field:typelink/]</b>] <a href="[field:arcurl/]" class="title">[field:title/]</a> <span class="info"> <small>日期:</small>[field:pubdate function="GetDateTimeMK(@me)"/] <small>點擊:</small>[field:click/] <small>好評:</small>[field:scores/] </span>  <p class="intro"> [field:description/]... </p>  </li>  {/dede:arclist}  </div><!--data-list-->  </ul>  </div>  <!-- /listbox -->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 滦南县| 微山县| 平遥县| 平和县| 西盟| 定襄县| 霍城县| 藁城市| 鸡泽县| 济宁市| 金山区| 鹿邑县| 星座| 新余市| 四平市| 津市市| 桃源县| 横峰县| 海口市| 南城县| 三门县| 龙泉市| 澳门| 岢岚县| 黄大仙区| 宁陕县| 孟州市| 四平市| 巢湖市| 阜阳市| 湘潭市| 崇州市| 共和县| 昂仁县| 裕民县| 武鸣县| 博野县| 阿勒泰市| 花垣县| 中牟县| 广西|