2012-03-02 8 views
0

私はいくつかのJSONデータをロードしようとしていますを取得し、動作していないが、イムはcrashes.The JSONオブジェが50,000以上持っている、それFirefoxでとChromeの応答のないスクリプトエラーを取得しますJSONデータをテーブルに挿入し、jquery dataTablesプラグインを使用してページング、ソート、フィルタリングを行う予定でした。jQueryのgetJSONは、getJSONメソッドを使用して、テーブルにに応答のないスクリプトエラー

いくつかのいずれかは、IMがやろうと何をやってのより良い方法を提案してくださいもらえますか?

$(document).ready(function(){ 
    $.getJSON("items.php",function(result){ 
    $.each(result, function(i, field){ 

     var html = '<tr><td>' + field['id'] + '</td>'; 
     html+='<td>'+ field['name'] + '</td>'; 
     html+='<td>'+ field['price'] + '</td></tr>'; 

     $('#itemsTable').append(html); 


    }); 
    }); 
}); 

私は今これに私のコードを変更しましたが、今、私はエラーjson.aaDataがUNDEFINED ..js/jquery.dataTables.min.jsオプションは、データを使用して取得され

$('#tbData').dataTable({ 
        "bProcessing": true, 
        "bServerSide": true, 
        "sAjaxSource": 'items.php' 
       }); 
+0

おそらく1回だけ(ループの外側に)追加しようとします – scibuff

+0

多分問題は応答ボディの重さです。 items.phpスクリプトがContent-Type:application/jsonヘッダーを返すことを確認しますか? –

+0

あなたの 'items.php'はうまく動作しますか?ブラウザウィンドウで 'items.php'を実行するときに適切なJSONを受け取りますか? – maialithar

答えて

0

そして、あなた自身のテーブルを解析し、その上のDataTableをトリガする必要は全くありません。 DataTableのプラグインに直接データを渡すと、それはすべての行のためのあなたの追記が著しく非効率的であるAPI

からデータソースオプションを使用してそれを処理しましょう。データテーブルはオブジェクト内のほとんどのデータを保持し、必要なビューのために十分なHTMLを生成するだけです

+0

あなたの答えに感謝しています。 PHPを使用すると良いCRUDの例は、APIに存在する場合が、今、私json.aaDataがUNDEFINED ../ JS/jquery.dataTables.min.js – manraj82

+0

でエラーが、そこから多くを伝えることはできません取得します。また、jsonの応答例 – charlietfl

0

一つであり得ますページング100、100からすべてのデータまで。すべて..

または起動と終了incremnet forachを作るまで、このような

$(document).ready(function(){ 
    $.getJSON("items.php?start=0&end=100",function(result){ 
    $.each(result, function(i, field){ 

     var html = '<tr><td>' + field['id'] + '</td>'; 
     html+='<td>'+ field['name'] + '</td>'; 
     html+='<td>'+ field['price'] + '</td></tr>'; 

     $('#itemsTable').append(html); 


    }); 
    }); 


$.getJSON("items.php?start=100&end=200",function(result){ 
    $.each(result, function(i, field){ 

     var html = '<tr><td>' + field['id'] + '</td>'; 
     html+='<td>'+ field['name'] + '</td>'; 
     html+='<td>'+ field['price'] + '</td></tr>'; 

     $('#itemsTable').append(html); 


    }); 

}); 

。ここ

uが1または連結文字列ずつaapendすることができます。