2

私はページ付けにデータテーブルを使用しています。これはクライアント側であるため、データ全体(50000を超える)を取得するとページがビジーになりすぎてクラッシュします。これが私のコードです。どうすればよいですか?

$q="select * from table";
$rs = $oAppl->query($q);
<table class="display" id="example">
            <thead>
                <tr>
                   <th class="th_title">ID</th>
                   <th class="th_title"> Name</th>
                  </tr>
            </thead>
            <tbody>
            <?php
             while ( $rw = $oAppl->row($rs) ) {
             ?>
                <tr class="item">
                    <td ><?php echo $rw["id"]; ?></td>
                   <td class="subject"><?php echo $rw["name"]; ?></td>
   </tr>
               <?php
               }
               ?>
            </tbody>
        </table>
 $(document).ready(function() {
$('#example').dataTable();
 }
4

1 に答える 1

2

それほど多くのデータをブラウザにロードしないでください。ユーザーにそれをさせるだけです。ユーザーがクリックするデータブロックの下にページ番号を配置できます。たとえば、ユーザーがページ2をクリックした場合、JQuery関数を呼び出します。この関数AJAXはサーバーを呼び出し、テーブルから2番目の(たとえば再び)行を取得します。50000行のデータを任意のページ数に分割してpage_number*minimum_row_countから、サーバーから行数を読み込むことができます。

更新:(コメントの後)

残念ながら、私は会議に参加しているため、現在コードサンプルを提供することはできません;)Datatablesには、bServerSide基本的にコンストラクターに「フェッチする」ことを通知するキーがあります。また、を指定することsAjaxSourcesServerMethodiDisplayLength初期化子で、必要なものを設定できます。ここにいくつかの便利なリンクがあります。さらに問題があれば、今晩遅くにコードサンプルを提供できます;)

datatablesサーバー側のもの

datatablesカスタム変数

于 2013-01-07T14:16:21.250 に答える