织梦dedecms数据量大生成栏目缓慢以及出现500错误一个可能原因及解决方法
发布日期:2018/1/15 17:05:30
后台数据量小的时候,pk10高手论坛:栏目及文档生成很快,但是当织梦cms系统数据量曾大以后,生成目录就会越来越慢,直至发生500内部服务器错误。
产生错误的原因是数据库数据量太大,生成时间太长导致超时错误。解决的办法是分批次生成。记得早期的织梦后台是分批次更新的,但不知为什么新版本没了这个功能。
通过查看代码发现分批次生成的代码被注释掉了,至于注释掉的原因不得而知。
 
一、在后台管理文件夹下找到makehtml_list_action.php 文件
在makehtml_list_action.php 的文件行 101 处
  //$lv->CountRecord();
  有这样一处注释掉的代码,似乎DEDECMS的开发工程师因为其他原因注释掉了这行代码,这就导致了计算某个栏目类有多少分页的代码不能运行,从而导致后面一行
 
  if($lv->TypeLink->TypeInfos[‘ispart’]==0 && $lv->TypeLink->TypeInfos[‘isdefault’]!=-1) $ntotalpage = $lv->TotalPage;
else $ntotalpage = 1;
 
  导致这里面的 $ntotalpage 根本得不到值 (NULL),
  因为 $lv->TotalPage 是在$lv->CountRecord 函数里面赋值
  所以分批次生成的功能不能运行。
 
  从而想到,取消此处注释,让栏目生成HTML 分批进行
 
//如果栏目的文档太多,分多批次更新
    if($ntotalpage <= $maxpagesize || $lv->TypeLink->TypeInfos['ispart']!=0 || $lv->TypeLink->TypeInfos['isdefault']==-1)
    {
        $reurl = $lv->MakeHtml('', '', $isremote);
        $finishType = TRUE;
    }
    else
    {
// 让代码进入此执行才是分批生成html
        $reurl = $lv->MakeHtml($mkpage, $maxpagesize, $isremote);
        $finishType = FALSE;
        $mkpage = $mkpage + $maxpagesize;
        if( $mkpage >= ($ntotalpage+1) ) $finishType = TRUE;
    }
北京pk10辉煌投注网站 北京赛车pk10必中技巧 pk10手机免费计划软件 北京pk10奖金 幸运飞艇
北京pk拾是什么 北京pk10输了怎么报警 北京赛车pk10是骗人的吗 【北京赛车pk10单码 皇家软件
pk10经验 北京pk10官网开奖 北京赛车代理怎么做 pk10有赢钱的吗 北京赛车改单骗局
北京pk10直播开奖记录 彩票号码预测 北京赛车pk10分析技巧 赛车pk10手机计划软件 pk10三期必中5个号
重庆时时彩软件下载 陕西快乐10分玩法技巧 极速赛车模拟机 江苏11选5 开奖走势 福彩3d免费试用
青海快3开奖 分分彩通用稳赚方案 排列5走势图带连线 河南福彩快3号码走势图 河南福彩网 3d开机号今天
北京pk10倍投器 内蒙古快3形态 重庆三分彩开奖结果 山东群英会开奖直播 云南福彩时时彩
pc蛋蛋平台 博彩资讯 重庆时时彩软件代理 六合彩白小姐 内蒙古快3直播开奖