以前の記事では、JavaScriptの実行とブラウザーの制限、およびタイマーベースの擬似スレッドを使用した「スクリプトのない」警告を解決する方法を検討しました。今日は、ブラウザで大量のデータを処理する方法を検討します。数年前、開発者は複雑なサーバー側の処理に代わるものを考慮したことはありませんでした。この概念は変更され、多くのAJAXアプリケーションはクライアントとサーバーの間に大量のデータを送信します。さらに、コードはDOMを更新する場合があります。これは、特に時間のかかるブラウザプロセスです。ただし、この情報を一度に分析しようとすると、アプリケーションが反応しなくなり、スクリプト警告が発生する可能性があります。 JavaScriptタイマーは、長いデータ分析プロセスをより短いブロックに分割することにより、ブラウザのロック問題を防ぐのに役立ちます。これがJavaScript関数の始まりです:
function ProcessArray(data, handler, callback) {
processArray()関数は、3つのパラメーターを受け入れます
var maxtime = 100; // 每块处理时间(毫秒) var delay = 20; // 处理块之间的延迟(毫秒) var queue = data.concat(); // 克隆原始数组
の使用を使用して処理を開始できます
setTimeout(function() { var endtime = +new Date() + maxtime; do { handler(queue.shift()); } while (queue.length > 0 && endtime > +new Date());
if (queue.length > 0) { setTimeout(arguments.callee, delay); } else { if (callback) callback(); } }, delay); } // ProcessArray 函数结束
このコードは、すべてのブラウザ(IE6を含む)で実行されます。これは実行可能なクロスブラウザーソリューションですが、HTML5はより良いソリューションを提供します!私の次の投稿では、Webワーカーについて説明します…
// 处理单个数据项 function Process(dataitem) { console.log(dataitem); } // 处理完成 function Done() { console.log("Done"); } // 测试数据 var data = []; for (var i = 0; i < 1000; i++) { data.push(i); } ProcessArray(data, Process, Done);
JavaScriptの単一の読み取りの性質により、JavaScriptの大きなデータセットを処理するのは難しい場合があります。ただし、従うことができるベストプラクティスがいくつかあります。まず、Webワーカーの使用を検討してください。これらを使用すると、JavaScriptを別のバックグラウンドスレッドで実行して、大規模なデータ処理がユーザーインターフェイスをブロックするのを防ぎます。第二に、ストリーミングデータ処理テクノロジーを使用します。 oboe.jsのようなライブラリは、データが到着したときにデータを処理するのに役立ち、メモリの使用量を削減します。最後に、データベースの使用を検討してください。 IndexEdDBは、大量の構造化データのクライアント側ストレージの低レベルAPIであり、大きなデータセットで高性能検索を実行するために使用できます。
はい、JavaScriptはデータサイエンスで使用できます。伝統的にデータサイエンスとは関係ありませんが、フルスタックJavaScriptの台頭と、データ分析と視覚化のためのライブラリとフレームワークの開発により、実行可能なオプションになります。 danfo.jsのようなライブラリは、PythonのPandasライブラリと同様のデータ操作ツールを提供し、D3.JSは強力なデータ視覚化ツールです。
大規模なデータ処理にJavaScriptを使用することの制限は何ですか?
Webワーカーを使用してJavaScriptで大規模なデータ処理を実行するにはどうすればよいですか?
JavaScriptのデータ処理のストリーミングとは何ですか?
indexedDBは、クライアントが大量の構造化データを保存するための低レベルAPIです。これにより、ユーザーのブラウザに大きなデータセットを保存、取得、検索できます。 IndexEdDBを使用するには、最初にデータベースを開き、次にデータベースを作成してデータを保存します。その後、トランザクションを使用してデータを読み書きできます。
タイプ付き配列は、バイナリデータを処理する方法を提供するJavaScriptの機能です。これらは、よりメモリを節約する方法でデータを処理できるため、大規模なデータ処理タスクに特に役立ちます。タイプ付き配列を使用するには、最初にArrayBufferを作成してデータを保存し、次に型付けられた配列タイプの1つを使用してバッファを指すビューを作成します。
JavaScriptでデータの視覚化に利用できるライブラリがいくつかあります。 D3.JSは、さまざまな視覚効果を作成できる最も強力で柔軟なライブラリの1つです。 Chart.jsはもう1つの一般的な選択肢であり、一般的なチャートタイプを作成するためのよりシンプルなAPIを提供します。その他のオプションには、HighCharts、Google Charts、Plotly.jsが含まれます。
非同期プログラミングにより、JavaScriptはデータ処理が完了するのを待ちながら他のタスクを実行できます。これは、メインスレッドがブロックされないため、大規模なデータ処理タスクに特に役立ち、ユーザーエクスペリエンスがよりスムーズになります。 JavaScriptは、コールバック、Promise、Async/awaitなど、非同期プログラミングにいくつかの機能を提供します。
以上がJavaScriptで大量のデータを処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。