2016-08-26 8 views
0

私はAPIにGETを行い、次に1000個のアカウントを持っています。APIから表への巨大なデータセットのレンダリング

enter image description here

その後、私はこのように私のテーブルをレンダリングするdatatableを使用しています。

enter image description here


パフォーマンスが少し遅いようだ、と私はそれを改善しようとしています。 私はいくつかの調査を行いましたが、thisが見つかりましたが、データベースにアクセスできませんが、1000個のアカウントを配列として返すAPIにアクセスできます。


私は、このプロセスに関するすべてのご意見やご提案をお待ちしております。ここで


私のデータテーブルの設定は、 "AJAX" については

var account_table = $('#account-table').DataTable({ 
    "bPaginate": true, 
    "processing": true, 
    "serverSide": true, 
    "ajax": "scripts/server_processing.php", 
    "deferLoading": 10, 

}); 

です:私はAPIを使用しておりますので、私はちょうど

"AJAX" を行うことができ、 "スクリプト/ server_processing.php": "https://jsonblob.com/57c08bb2e4b0dc55a4f0eec7" ????ここで

はすべての私のサンプルデータです:https://jsonblob.com/57c08bb2e4b0dc55a4f0eec7

+0

はhttps://datatables.net/reference/option/deferLoadingはオプションですか? – saj

+0

これらの1000レコードの長さ(バイト)はどれくらいですか?サーバーに要求を送信するのにどれくらいの時間がかかりますか? – Dekel

+0

@Dekel:今のところ、リクエストは1000件のアカウントオブジェクトに戻るのに1秒以下かかりました。 – ihue

答えて

1

はほとんど間違いなく、このプロセスについての最も遅い部分は、ウェブ上でそれらのアカウントを取得しています。

毎回それらを要求するのではなく、キャッシュすることができ、x時間ごとに一度だけ要求することができます。

擬似コード

function getAccounts() { 
    if (!cache.has("accounts")) { 
     // supposedly cache data for 1 hour 
     cache.set("accounts", getAccountsFromAPI(), 3600); 
    } 

    return cache.get("accounts"); 
} 
+0

ご意見ありがとうございます。 **キャッシング**はこのような状況に適していますが、ユーザーがアカウントを作成/更新した場合は、私たちのアカウント情報につながります。どのように私はそれに対処するのですか?キャッシングに関するさらなる提案はありますか? – ihue

関連する問題