問題タブ [web-worker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
662 参照

javascript - Firefox Webワーカー内でJavascript1.7以降のイテレーターとジェネレーターを使用できますか?

または、Firefoxにmimetypeを使用してWebワーカー拡張機能を解析するように指示するにはどうすればよいですapplication/javascript;version=1.7か?

Firefox 4 Beta9のFirebug1.7a9は、次の機能を提供します。

これは、通常のスクリプトタグでジェネレーターのyieldキーワードを認識しない場合に表示されます。

0 投票する
1 に答える
1913 参照

javascript - Node.jsは外部スクリプトをダウンロードして実行します

Node.jsを使用して単純なhttpクライアントを構築しています。

WebサーバーからダウンロードしたJSスクリプトを実行する方法を知りたい(ブラウザーを模倣):私のJSコード(FF3.6ですでにテスト済み)には、WebワーカーとXMLHttpRequestレベル2の両方が含まれています。

Node.jsはそのようなコードを処理できますか?

0 投票する
27 に答える
101971 参照

javascript - 別のJavascriptファイルのないWebワーカー?

私の知る限り、Webワーカーは別のJavaScriptファイルに記述し、次のように呼び出す必要があります。

私はクロージャーコンパイラーを使用してすべてのJavaScriptソースコードを結合および縮小しているので、配布のためにワーカーを別々のファイルに入れる必要はありません。これを行う方法はありますか?

ファーストクラスの関数がJavaScriptにとって非常に重要であることを考えると、バックグラウンド作業を行う標準的な方法で、Webサーバーから他のJavaScriptファイル全体をロードする必要があるのはなぜですか?

0 投票する
5 に答える
238 参照

php - PHP/ブラウザのパフォーマンス: ブラウザによるサムネイルの生成

ユーザーが高解像度の画像をサーバーにアップロードします。この画像のサムネイルを作成する必要があります。PHP でサムネイルを作成するために GD を集中的に操作する代わりに、このプロセスを実際にクライアント/ブラウザーにオフロードできますか? 最近の最新のブラウザは、画像を迅速に縮小することをサポートしていますが、そのようなタスクを実行することには多くの短所と長所があると確信しているので、私の質問は...

  1. これはより効率的な方法ですが、サーバー側での GD 操作よりもどれくらい効率的でしょうか?
  2. Ajax経由でサーバーに送信できるように、画像をJPG形式ですばやく保存できるJavascriptライブラリはありますか?
  3. 一般的な注意として、変換はWeb Workers を使用して行われるため、ユーザーのブラウザーには影響しません。
  4. 明らかに、ユーザーはフル サイズの画像とはまったく関係のないサムネイルを悪用して送信する可能性があります。これを回避する良い方法はありますか?つまり、サムネイルとフルサイズの画像がどれだけ似ているかをすばやく計算し、98% 似ている場合は画像を許可しますか?

別のサーバーに完全にオフロードしたり、たとえば午前 3 時にバッチ ジョブを実行したりするなど、おそらくより良い方法があることは理解していますが、最新のブラウザーとその改良された Javascript エンジンの出現により、学術的/情報的な目的で機能する可能性があります。このようにクライアントのブラウザに置くことはできますか?

0 投票する
1 に答える
245 参照

javascript - ネストされた SharedWorker

別の SharedWorker のハンドラー内で SharedWorker をインスタンス化することは (たとえ賢明ではなくても) 可能ですか?

0 投票する
2 に答える
2107 参照

javascript - JavaScript:Webワーカーと型付き配列

new Worker()いくつかの処理を行い、を返すことになっているWebワーカー(で始まる)がありFloat32Arrayます。
ただし、ワーカーpostMessage()がデータを取得した後、JSONへのシリアル化とdesirializationを経て、メッセージを受信したときに最終的にはプレーンなJavaScript Array(元の型指定された配列が持っていたすべてのプロパティを含む)になります。

簡単な回避策は、JavaScript配列から型付き配列を再作成することですが、これは無駄であり、時間とメモリを消費します。

これを行うためのより良い方法はありますか?JSONの逆シリアル化にFloat32Arrayjavascript配列の代わりにインスタンス化するように指示する何らかの方法はありますか?または、バイナリデータを転送する方法はありますか?

0 投票する
1 に答える
178 参照

javascript - WebWorkers を使用して、非常に長いページで単語の頻度を計算できますか?

HTML からテキストを抽出し、文や単語などの言語単位を抽出するブラウザー ベース (Javascript および jQuery) の言語分析ツールを作成しています。

テキストをインポートするために、PHP バックエンドは特定の URL をスパイダーし、結果の HTML をサニタイズします。次に、その HTML がインターフェイスの a に挿入されdiv#containerます。次のようになります。

ソース HTML ページが非常に長い場合、いくつかの問題に遭遇しました。このようなページを読み込んでインターフェイスに挿入しても、DOM問題は発生しないようです (時間がかかりますが)。

しかし、スパイダーされたコンテンツに対して単語頻度アルゴリズムを実行すると、ページが長い場合、非常に遅くなります。たとえば、ページが 100K ワードに近づくと、物事はほとんど停止します。

したがって、いくつかのオプションがあります。

  1. ソース ドキュメントを切り捨てるか、複数のドキュメントに分割するように PHP スパイダーを変更します。
  2. 単語頻度アルゴリズムを変更して正確性を低くし、単語分布を完全に記録するのではなくサンプリングします
  3. この新しい Web Worker を試して、計算を複数のバックグラウンド プロセスに分散できるかどうかを確認してください。

(3) は、Web Workers が実行するように設計された言葉にすぎないように思えます。スパイダーされたコンテンツをチャンクに分割し、各チャンクに 1 つの Web ワーカーを割り当てることを想像しています。各チャンクの単語頻度プロファイルは、Web ワーカーから返され、合計されてグラフに表示されます。

これを試す前に、以前に Web Workers で働いたことがあるかもしれない他の人々から健全性チェックを受けられることを願っていました。div#container1 つには、 のコンテンツを効率的に分割することが問題になるかどうか疑問に思っていdiv#containerます。.

0 投票する
2 に答える
1814 参照

javascript - Chrome 11は、ECMAScript5厳密モードのworker.jsに対してonmessageが定義されていないことについて文句を言います

最近、すべてのプロジェクトをECMAScript 5の厳密モードに切り替えました(つまり、"use stricts";すべてのJSファイルの先頭に追加します)が、次のMDCサンプルコードはChrome11を除くすべての場所で機能します。

https://developer.mozilla.org/en/Using_web_workers#The_JavaScript_code

Webワーカーのコードはエラーを引き起こします

Uncaught ReferenceError: onmessage is not defined.

回避策として使用しようとしvar onmessageましたが、Chrome 11では機能しますが、Firefox 4では機能しません。varとにかく使用しないでください。cozAFAIKonmessageは、のようにグローバル変数でありwindow、再定義しても意味がありません。

私は何をすべきか?

0 投票する
1 に答える
927 参照

html - 複数のpostMessage呼び出しを使用すると、HTML5 Webワーカーのエラー「UncaughtSyntaxError:引数が足りません」

約30のAJAXリクエストを行う単一のWebワーカーがあり、各リクエストの後に、postMessageを使用してUIにメッセージを送信し、進行状況をログに記録します。例えば:

約10〜20のリクエスト(常に同じ数とは限りません)の後、次のエラーが表示されます。

Uncaught SyntaxError:引数が足りません

postMessage呼び出しを削除すると、すべてが正常に機能し、postMessage呼び出しを追加すると、Webワーカーはさらに少ない要求の後にエラーを出します。

データのタイプにも依存しているようです。postMessage呼び出しに文字列ではなくJSONオブジェクトが含まれていると、Webワーカーはすぐに終了します。

なぜこれが起こるのか誰かが知っていますか?

0 投票する
1 に答える
1741 参照

concurrency - Chrome拡張機能で複数の並列Web HTMLリクエストを作成するには?

Chrome 拡張機能内の複数の HTML ページを取得して解析したいと考えています。

リクエストごとに Web Workers を使用することは、それらを並行して実行するための簡単な方法のように思えました。それは可能ですか?おそらく、既知のアクセス許可のバグであるため、試みは失敗しました。

回避策として、メイン拡張ページで複数の非同期 XmlHttpRequests を実行し、コールバックで結果ページを Web ワーカーに送信して並列解析を行うことができると思います。しかし、この方法では、Chrome が一度にいくつの非同期並列リクエストを作成できるかという疑問が生じます。その質問はここで尋ねられましたが、答えはありません。

私が書いている Chrome 拡張機能は Browser Action です。

ワーカーのコード: