2

表形式のデータにdatatables(javaスクリプト)を使い始めたばかりです。jsのおかげで、検索、ページあたりの行数、並べ替え、ページ付けなどの機能を使用できます。jsを使用する前は、単にデータをテーブルに表示していましたが(ページネーションにAjaxを使用)、上記の機能を使用できませんでした(この場合のパフォーマンスは良好でした)。現在、テーブル構造にjquery.dataTables.jsファイルとjquery.jsファイルを使用しています。しかし、問題は、これがサイトのパフォーマンスに大きな打撃を与えたことです。最初はすべてのスクリプトが1ページのみでしたが、Firefoxは「応答しないスクリプト」として警告メッセージを表示し、テーブル用に別のファイルを作成した後、これを取得しなくなりました。メッセージですが、パフォーマンスが低下します。私がやっていることは、APIからデータをフェッチし、それをデータベースに保存してから表示することですが、jsには多くの時間がかかり、単にそうでない場合もあります。
私は本当にテーブルにjsを使用する必要がありますが、このパフォーマンスの低下を許容することはできません。誰かが以前にこの問題を抱えたことはありますか?
貴重なアドバイスを待っています。

4

1 に答える 1

2

Javascriptでは、数千行のデータを効率的に保存および操作することはできません。MySQLなどのデータベースエンジンには、検索(クエリ)を高速化するために、あらゆる種類のガビン(インデックス、キャッシュ)があります。Javascriptにはこれがなく、ストレージと検索アルゴリズムの方法を必要なだけ最適化できますが、効率的なソリューションを実現することはできません。

ページネーションはサーバー上にある必要があります。サーバーは30行のデータを送信します。さらに必要な場合は、サーバーにさらに要求します。通常、現在のコンテンツを別の結果セットに置き換えるための新しいページの読み込み、または既存のコンテンツに新しいコンテンツを追加/追加するためのAJAXリクエストのいずれかの形式で行われます。

データを検索する場合、Javascriptを使用すると、ページにあるコンテンツ(数十行)内を検索できますが、データセット全体を検索するには、クエリをサーバーに送信して、データベースエンジンに処理を任せます。 。

于 2010-09-25T08:19:37.977 に答える