织梦dedecms数据量大生成栏目缓慢以及出现500错误一个可能原因及解决方法
搜收录网整理 发布日期:2018/1/15 17:05:30
后台数据量小的时候,栏目及文档生成很快,但是当织梦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;
    }

信息网址://www.13srd.cn/ziyuan/view16756.htm
相关信息
  • 足球盛宴来袭 省会首届迷你世界杯赛正式打响 2019-04-21
  • 全球最长玻璃环廊郑州落成相关新闻 2019-04-21
  • 杭宁高速改扩建加大通行压力 2019-04-17
  • 北新建材荣登“中国500最具价值品牌”100强 2019-04-17
  • 敢于空中拼刺刀(强军梦) 2019-04-05
  • 那奔腾不息的母爱幸福暖流,总有一天你会懂 2019-04-05
  • 特金明日将通电话 提醒谁莫忘感恩? (原创首发) 2019-04-02
  • 盐背夫—巴盐古道上的精神化石文章中国国家地理网 2019-04-02
  • 不是秀强大了,别人就会来做朋友,这逻辑不对 2019-03-29
  • 提倡朴素与切实的工作作风 2019-03-16
  • 李克强:今年再减少农村贫困人口1000万以上 2019-03-15
  • “分食金枪鱼”,创意再好也难掩难看吃相 2019-03-13
  • 冯翠玲:把党的声音传递给“国际大家庭” 2019-03-10
  • 11岁男孩登上中国诗词大会 夺得百人少年团第一名 2019-03-10
  • 球王登场!梅西抵达赛场一脸严肃 2019-03-02
  • 659| 823| 720| 131| 967| 894| 976| 397| 606| 226|