非同期サービスコールを行う最も軽い方法は何ですか?私のマネージャは80kでかなり大きいので、デフォルトでjqueryを使いたくないです。非同期呼び出しはie8内で動作する必要があります。これは普通のjsでやるのはどれくらい難しいですか?または、私が探しているものに適している、jqueryのサブセットまたは他の証明された小さな特殊なjsライブラリがありますか?jsで非同期サービスコールを行う最も軽量な方法は何ですか?
答えて
私はこのような要求を取得するJavaScriptのシンプルな無地については何(私は作者ないよ!)それを試してみると、そのような場合に
をtinyxhrを使用していますか?
var request = new XMLHttpRequest();
request.open('GET', '/my/url', true);
request.onreadystatechange = function() {
if (this.readyState === 4) {
if (this.status >= 200 && this.status < 400) {
// Success!
var resp = this.responseText;
} else {
// Error :(
}
}
};
request.send();
request = null;
私はちょうどこれを見ていた、それはIE9 +が必要です;そうです。 :) –
@AdamAzadいいえ、そうではありません。私はあなたにIE8 +のバージョンを示しました。サイトでは、少なくともサポートする必要があるもの(ie)を選択することができます。これはIE8-Versionです。 – MattDiMu
それはかなり簡単です。このサンプルコードはここで使用できますが、気にしています。それはスケールされません!非同期プログラミングは非常に複雑で非常に迅速になります。 2つまたは3つの非同期呼び出しが混在している場合(サーバー上のデータレベルを妨害する)、自分が何をしているかについて2回考えてください。
クライアントで非同期ジョブキューを使用して、呼び出しが非同期であるが、順番に実行されるようにすることができます。これは約束をもって行うのが最善です。
これは、例えばAJAX呼び出しです:
send({ "hello": "world" }, function (response) {
document.getElementById("response").innerText = response;
});
コールバックの種類が関数であるかどうかチェックし、OPが望むものを渡す 'callback.apply(this、arguments)'はどうですか? –
が簡単です。これが彼のコードコールバックであれば(なぜ彼は自分自身を傷つけるでしょうか?)他のユーザーが「はい」を使用するフレームワークコードの場合は、必要なチェックをすべて行うことをお勧めします。 – pid
@pidサンプルコードとスケーラビリティに関する警告に感謝します。ここでは主な使用例があります。私は警告を表示するjsフレームワークコンポーネントを開発しています。このコンポーネントはページロード時にアラートサービスを呼び出して、新しい通知を確認します。異なる開発者は、自分のWebサイトでこのjsコンポーネントにrefを追加します。したがって、このサービスは1ページごとに1回非同期に独立して実行されます。したがって、複雑さとスケーラビリティはネイティブxhrの権利を使用することで懸念すべきではありませんか? – user6604655
多くのJavaScriptマイクロXHRの機能に特化したライブラリが、場合があります。このよう
function send(data, callback)
{
var xhr;
xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhttp.status === 200)
{
callback(xhr.responseText);
}
};
xhr.open("GET", "http://..../route/to/your/service/port", true);
xhr.send();
}
は、コールバック関数に渡すことによって、それを使用しますあなたはjQueryに慣れていて、それを好むだけで、独自のビルドを作成して、必要のない他のモジュールを単純に除外することができます(これはもちろん、サイズを大幅に縮小します)。
https://github.com/jquery/jquery#modules
また、独自のカスタムバージョンを構築するためにこのサイトを使用することができます。
http://projects.jga.me/jquery-builder/
GZIP形式の結果を使用すると、17KBの周りになるために。
- 1. 最もシンプルで軽量なWSGIフレームワークは何ですか?
- 2. 非同期Webサービスコール
- 3. 最も軽量なキャンバスやグリッドはどれですか?
- 4. 非同期コールバックで同期操作を行う方法は?
- 5. Flatiron js - ディレクター - テーブルから非同期ルーティングを行う方法?
- 6. 通常のメソッドを非同期の方法で呼び出す最も良い方法は何ですか?
- 7. 軽量CSSフレームワークとは何ですか?
- 8. ノードjsで非同期関数を同期的に実行する方法
- 9. Directory.CreateDirectoryは非同期ですか、それとも何ですか?
- 10. WPFアプリケーションからの非同期Webサービスコール
- 11. Lagomで非同期の2つのマイクロサービス間で通常のhttpサービスコールを行う方法
- 12. nodeunitで非同期を処理する適切な方法は何ですか?
- 13. ノードjsで非同期コールバックを作成する方法は?
- 14. アンドロイドの非同期メソッドに情報を渡す最も良い方法は何ですか?
- 15. cでプロパティゲッターの非同期サービスコール結果を取得する方法
- 16. HTMLを扱う非同期呼び出しの最適な方法は何ですか?
- 17. 非常に少量のデータを記録する最も効率的な方法は何ですか?
- 18. ドッカーファイルの作成に使用できる最も軽量なベースイメージは何ですか?
- 19. 何百ものチェックボックスにonclick()を追加する最も軽い方法は何ですか?
- 20. PHPで "foreach x except y"を行う最もエレガントな方法は何ですか?
- 21. トリガーで否定を行う最も簡単な方法は何ですか?
- 22. Javaでパッケージを非難する最も明白な方法は何ですか?
- 23. Reactive Forms(Angular2 RC3)で非同期検証を行う方法は?
- 24. NSDecimalの軽量なフローリング方法は?
- 25. なぜJSONはXMLよりも軽量ですか?
- 26. 非同期バージョンと同じ、何も返さない非同期待機関数ですか?
- 27. RxJavaで非同期メソッドを同期する方法は? RxJavaの非同期ウォーターフォール
- 28. Javaで単純な非同期タスクを実行する最も良い方法は?
- 29. Java Webアプリケーションで非同期操作を実行する最も簡単な方法は、
- 30. 非同期サービスコールが確実に行われるようにするには
[reqwest](https://github.com/ded/reqwest)をご覧ください。 –