织梦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
相关信息
  • “一带一路”结硕果 以色列科技助力中国农业 2018-12-11
  • 国际货币基金组织称土库曼斯坦缩减开支或让货币贬值 2018-12-02
  • 中华龙舟大赛福州站收官 黑马异军突起摘大满贯 2018-12-02
  • 【十九大·理论新视野】动漫:“伟大工程”如何造就 2018-11-30
  • 中共武警西藏消防总队二届六次全体(扩大)会议召开 2018-11-27
  • 营销误导难绝? 保险销售实行可回溯管理 2018-11-25
  • 女性之声——全国妇联 2018-11-25
  • 2017环广西公路自行车世界巡回赛举行 南宁收获各方赞誉 2018-11-14
  • [雷人]你以为城市改造基础配套等用的钱是从哪里来的?不还是被你们享受了? 2018-11-14
  • “龙江二号”微卫星传回地月合影 2018-11-05
  • 揭幕战闪现大师级表现,俄罗斯22岁小将一战惊天下 2018-08-12
  • 高分六号卫星发射 系首颗精准农业观测高分卫星 2018-08-12
  • 宁波上周理财收益率有升有降 6月末回暖仍然可期 2018-08-04
  • 南通如皋为应对督察“回头看”违法掩埋危险废物 2018-08-04
  • 189| 910| 179| 627| 508| 496| 194| 634| 331| 936|