1

私はjavascriptが初めてです。

これは Web サイトのシナリオではありませんが、ローカルの JavaScript と HTML、CSS を使用した Android WebView はまだ使用されています。

私がやっていることは、n AJAXリクエストを使用してローカルファイルをリクエストすることです.コールバックで現在のドキュメントに追加し、ドキュメントの長さを計算します(element.scrollWidthを介して、実際のレイアウトをトリガーするように見え、数秒かかることがあります-あらゆる要求に対して、重労働)

ここで、この操作全体をキャンセルする必要があるかもしれません。

しかし

私が学んだように、JavaScript はイベント キューを使用するため、AJAX は並列ですが、コールバックは同期的です。したがって、私の場合、AJAX は高速ですが、コールバックには時間がかかります。ここに問題があります。Android から cancel() を呼び出すと、それはすべてのコールバックの後に事実上イベント キューに置かれるだけなので、このキャンセル メソッドが既にコールバックをキューに入れているイベント ループに対して何かを行う方法はありません。 true グローバル変数。すべての ajaxed が返されたため、中止しても何もせず、コールバックだけがキューで待機しています。

これをキャンセルする方法はありますか?または、まったく異なるアプローチが必要ですか?(Javaではメソッドをキャンセルし、処理は異なるスレッドで実行されるため、ここではJSではすべてが単一のスレッドで実行されるため、私の推測ではそうではありません)

4

0 に答える 0