2

jQueryからajax機能を除くすべてを削除しようとしています。ばかげた質問で申し訳ありませんが、私に聞いてください:

  • 私はWebワーカーを使用してajax呼び出しを行っているため、core.jsのものをそこに入れることはできません。
  • 私が使用している別のライブラリはjQueryを呼び出しますが、jQuery.Hive.Pollenライブラリで動作させることができませんでした。何時間ものトラブルシューティングを行った後、このChemDoodle WebコンポーネントライブラリはjQueryでのみ機能するようで、その理由を理解するのに十分な経験がありません。
  • makefileを使用してjQueryを構築するのは非常に簡単なことのようですが、何を含めるべきかわかりません。makefileで、ajax関連のものを除くすべてを取り出しました。

BASE_FILES = ${SRC_DIR}/ajax.js\
    ${SRC_DIR}/ajax/jsonp.js\
    ${SRC_DIR}/ajax/script.js\
    ${SRC_DIR}/ajax/xhr.js\

ただし、/ ajaxソースファイルをさらに調べると、「document」を呼び出すメソッドが示されます。つまり、モジュールをいくつ削除しても、これはまったく機能しないということですか?

更新:jQueryのバグ問題#9889は、コアがWebワーカーが使用できるajax関数を少なくともすぐには提供しないことを示しているようです。

興味のある人のために、私がやろうとしていることと、なぜWebワーカーを使用する必要があるのか​​について少し説明します。化合物のデータベースから分子シミュレーション/スクリーニングを行う分散コンピューティングアプリケーションを配置しています。通常のJavaScriptはページの速度を低下させ、アプリケーションをブラウザーで継続的に実行して、分子を次々に計算するため、機能しません。これが私の希望するWebワーカーの擬似コードの概要です

while (true){main();}

main(){
 get job from server via ajax
 process data//must use web worker
send results to server via ajax
}

はい、メインページから渡されたデータ文字列を逆シリアル化し、ページにajaxデータをフェッチするようにプログラムを実装できます。

//page-side javascript
var slave = new Worker()
slave.onMessage(event){
if status = "ready" {
check if data is available- if so, send it to server via ajax
fetch job data from server via ajax
slave.postMessage(job data)
}
}

//worker (slave)
self.onmessage(data) {
//process results
//send back to page
}

これはうまくいくと思いますが、少し粘着性があり、おそらく労働者にすべてをやらせるよりも遅いでしょう。Rick Waldronによると、「ポーリングを行っていたシステムがある場合、たとえばワーカーを開く、ループ内でxhrリクエストを永久に行う場合、各応答でpostMessage()の結果をクライアントに返すと、メリットが得られます」

私はxhrリクエストを永久にループで行っているので、このアプリケーションは有益だと思います。

jQuery.Hive.pollen.jsを見つけましたが、必要なajax呼び出しを行う他のライブラリでは機能していません。ただし、これは別の質問です(実際には私の主な質問です)。したがって、誰かがここに興味を持っている場合は、その投稿へのリンクがあります。

4

1 に答える 1

0

ああ、jQuery の問題はまだわかりませんが、pollen.js を jQuery に近づける方法はわかりました。

pollen の 2 つのリクエスト ヘッダーを削除 (またはコメント アウト) します。

_xhr.setRequestHeader("X-Requested-With", "Worker-XMLHttpRequest");
_xhr.setRequestHeader("X-Worker-Hive", "Pollen-JS" );

jQuery とは異なり、pollen.js の ajax 関数は、サーバーから返された JSON データと文字列化されたフォームを含む JSON オブジェクトを返します。

data = {"json":{jsonobjecthere},"text":"stringifiedversionofthedata"}

この2つの修正を加えれば、花粉はjQueryのajaxとほぼ同じだと思います

于 2011-09-08T02:01:39.730 に答える