1

我正在为 jquery 数据表使用下面的查询和初始化代码,但是由于返回的行超过 5000,浏览器变得无响应,我也尝试使用服务器端选项,但没有成功,谁能指导我如何进行提前谢谢

 $data1 = mysql_query("select b.bcode as bcode,upper(b.bname) as branch,
         upper(st.new_state) as state,upper(b.dist) as dist,sum(a.amt) as amt,
         count(a.amt) as num from mtrans a join ipbs_brmst b on a.brcd=b.bcode 
         and orgdate between '$fdate_new' 
         and '$tdate_new' join state_mapping st on b.state=st.org_state
         group by b.bcode");

while($info = mysql_fetch_array( $data1 )) 
     { 

      $brch = $info['branch'];
      $st = $info['state'];
      $dt = $info['dist'];
      $bcode = $info['bcode'];
      $amt = $info['amt'];
      $num = $info['num'];


     $msg .=  "<tr>";                
     $msg .=  "<td align='left' ><a href=\"mtnx_details.php?b_code=".$bcode."&fdate=".$fdate_new."&tdate=".$tdate_new."\">" . $brch . "</a></td>";
     $msg .=  "<td align='center'>".$st. "</td> ";
     $msg .=  "<td align='center'>".$dt. "</td> "; 
     $msg .=  "<td align='center'>".$num. " </td>"; 
     $msg .=  "<td align='right'>".$amt. " </td></tr>"; 
     } 

   }

        echo $msg;


        ========================

<script>
   $(document).ready(function(){
      $('#Table').dataTable({
          "sPaginationType": "full_numbers"
      });
   });
</script>
4

2 回答 2

2

在 GUI 中显示大量行是不好的做法。对于永远不会滚动浏览如此大量数据的用户来说,这毫无用处。相反,您应该提供一种方法来过滤数据或呈现用户可以向下钻取的层次结构。然后,您可以使用 jquery 延迟加载选定的详细数据。

于 2013-11-07T07:35:15.793 回答
0

您的查询工作正常,但浏览器不支持在单页上显示大量数据,因此它超时或破坏列表。您可以使用以下选项:1)为数据添加过滤器 2)添加分页 3)使用延迟加载 jquery

于 2013-11-07T09:05:58.243 回答