沃梦达 / IT编程 / CMS教程 / 正文

dedecms数据量大的时候生成栏目html经常502或者非常慢的解决办法

我们在用到dedecms数据量大的时候生成栏目html经常502或者非常慢,要怎么处理呢? 在dede\makehtml_list_action.php 的文件行 101 处 //$lv-CountRecord(); 有这样一处注释掉的代码,注释后,这一个计算某个栏目类有多少分页的代码居然不运行,从而导致后面这

我们在用到dedecms数据量大的时候生成栏目html经常502或者非常慢,要怎么处理呢?
在dede\makehtml_list_action.php 的文件行 101 处
//$lv->CountRecord();
有这样一处注释掉的代码,注释后,这一个计算某个栏目类有多少分页的代码居然不运行,从而导致后面这行不执行
if($lv->TypeLink->TypeInfos[‘ispart’]==0 && $lv->TypeLink->TypeInfos[‘isdefault’]!=-1) $ntotalpage = $lv->TotalPage;
else $ntotalpage = 1;
导致这里面的 $ntotalpage 根本得不到值 (NULL),解决办法就是把第一行代码前面的注释去掉,这样的话当一个栏目分页过多,会执行分批次更新,保持连接,就不会出现更新缓慢或者502错误了。去掉注释后,下面的代码就会运行
 //如果栏目的文档太多,分多批次更新
    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;
    }

本文标题为:dedecms数据量大的时候生成栏目html经常502或者非常慢的解决办法