0

Javascriptコントローラークラスでロジックを抽象化したWebアプリケーションを構築しようとしています。そのクラス外の関数呼び出しを最小限に抑えたい。

アプリケーションのページに入ると、ユーザーがタスクを実行するたびに、サーバーで前のアクションを完了としてマークする必要があります。そこで、Javascriptクラスのメソッドを呼び出します。たとえばEndTask(id)、このメソッドはajaxコマンドをサーバーに送信します。いいえ、ユーザーが先に進むことを許可する前に、ajaxコマンドへの応答を待ちたいです。

また、Javascript APIを最小限に抑え、ページにコールバックを登録する必要がないことを確認したいと思います。

したがって、本質的には、だけを呼び出したいと思いEndTask()ます。関数が戻ると、ページは、タスクを完了としてマークするプロセス全体が実行されたことを理解します。

ajax呼び出しを同期としてマークせずに、Javascriptでこれを行う方法はありますか?

4

1 に答える 1

2

JavaScriptで非同期関数を同期させることは可能ですが、そのためには、現在Firefoxでのみサポートされているジェネレーターを使用する必要があります。

XMLHttpRequest同期オブジェクトをサポートしていないため、同期AJAX呼び出しを行い、Firefoxのジェネレーターにフォールバックすることをお勧めします。ただし、これによりコードの冗長性が生じる可能性があることに注意してください。

于 2012-06-15T06:26:55.620 に答える