织梦首页列表页AJAX无限加载瀑布流修正_织梦CMS教程


  *近在学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代码示例

<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 -->

  注意:首页模板用arclist标签,用row='3'是初始化调用的3条;列表模板用list标签,用pagesize='3'。模板里面的<div class="data-list“>与js里面的data-list对应,需要把循环部分全部包裹起来。



# 盐田区网站优化公司推荐  # dsql  # total  # 关键词排名进前50  # 网站优化seo运营  # 渭南网站建设培训  # 在什么网站可以免费推广  # 网站设计建设方案  # seo jc什么意思  # 菏泽专业网站优化公司  # *seo付费  # 网店推广及营销策略  # temp  # 雅漾网站建设银行  # 网站推广在用易速达  # 技术宅网站建设游戏  # 深圳汽车网站建设  # 成都网站推广威星hfqjwl下拉  # 房屋网站建设公司*  # 太仓建设银行网站  # 宿迁网站优化营销推广  # 通化网站关键词优化公司  # 聊城网站建设可以吗  # 详细说明  # 织梦CMS教程  # 织梦首页  # 织梦列表页  # AJAX无限加载  # 瀑布流  # 加载  # 首页  # 这是  # 有一  # 每页  # 给大家  # 织梦首页列表页AJAX无限加载瀑布流修正  # 来做  # 技术研究  # 需要用  # 读懂  # 来用  # 图片站  # 直接调用  # 网上  # 博客  # GetOne 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 网络优化91478 】 【 技术知识72672 】 【 云计算0 】 【 GEO优化84317 】 【 优选文章0 】 【 营销推广36048 】 【 网络运营41350 】 【 案例网站102563 】 【 AI智能45237


相关推荐: 织梦二次开发调用指定模型自定义字段值的文章列表_织梦CMS教程  帝国cms全站去除版权教程方法_帝国CMS教程  dedecms织梦kindeditor编辑器整合七牛云支持支持图集_织梦插件  如何快速搭建高效香港服务器网站?  小建面朝正北,A点实际方位是否存在偏差?  dedecms织梦调用三级四级无限级栏目教程_织梦CMS教程  修改织梦cms默认文件让其更利于SEO优化 _SEO优化教程  如何通过宝塔面板实现本地网站访问?  帝国cms网站不同地方生成不同的缩略图_帝国CMS教程  如何通过智能用户系统一键生成高效建站方案?  织梦后台不支持上传bmp格式图片的解决方法_织梦CMS教程  织梦cms插件图集图片模型整合下载功能 可判断会员金币数会员权限_织梦插件  如何用低价快速搭建高质量网站?  如何用y主机助手快速搭建网站?  帝国CMS会员中心每日签到,可领取全勤奖励_帝国CMS教程  如何在万网ECS上快速搭建专属网站?  建站助手开启FTP配置教程:服务器管理与站点搭建步骤解析  织梦dedecms5.7SP2手机版上一页下一页链接错误404问题 _织梦CMS教程  织梦全站伪静态设置+全套伪静态规则精华教程_织梦CMS教程  织梦后台更新了广告而前台没有变化的彻底解决办法_织梦CMS教程  dedecms织梦dede:arclist按照自定义字段的条件调用相关文章_织梦CMS教程  织梦列表页多种属性排序[ajax]-支持select方式和降序升序切换_织梦插件  织梦cms开启二级域名手机站(多站点)内容页图片无法显示_织梦CMS教程  织梦栏目导航{dede:channel}标签添加序号教程_织梦CMS教程  教你如何修改PHPCMS V9版本管理后台路径_PHPCMS教程  织梦DedeTag Engine Create File False的彻底解决方法_织梦CMS教程  建站之星3.0如何解决常见操作问题?  如何彻底卸载建站之星软件?  如何用景安虚拟主机手机版绑定域名建站?  织梦dedecms标签调用代码大全_织梦CMS教程  如何快速搭建自助建站会员专属系统?  织梦后台直接添加会员功能开发方法_织梦CMS教程  织梦栏目增加缩略图功能的实现教程_织梦CMS教程  织梦实现在图集文章内容页调用缩略图和原图教程_织梦CMS教程  建站主机SSH密钥生成步骤及常见问题解答?  建站主机与虚拟主机有何区别?如何选择最优方案?  建站之星论坛模板定制与建站交流技巧解析  DedeCMS系统SEO优化之URL目录化设置_SEO优化教程  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  如何在云指建站中生成FTP站点?  织梦全站GBK编码转UTF-8编码图文教程 _织梦CMS教程  如何通过VPS建站无需域名直接访问?  建站之星导航菜单设置与功能模块配置全攻略  建站之星代理如何获取技术支持?  织梦*新发表的文章在24小时内标题显示红色_织梦CMS教程  织梦UTF-8编码模板顶部空白一行解决方法_织梦CMS教程  子杰智能建站系统|零代码开发与AI生成SEO优化指南  帝国CMS网站管理系统常见问题解决_帝国CMS教程  如何在Windows 2008云服务器安全搭建网站?  建站助手如何操作?三步打造高效网站 

 2018-06-09

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

南京市珐之弘网络技术有限公司


南京市珐之弘网络技术有限公司

南京市珐之弘网络技术有限公司专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。

 87067657

 13565296790

 87067657@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.