0

サーバー (BE) からサービスを利用する js lib を作成しています。これらのサービスを利用するために Jquery - AJAX を使用しています。ただし、このサーバーを使用するには、成功/エラーのコールバックを設定する必要があります

function CallAjax(callback){

$.ajax({
  url: 'http://server.com/service1.svc',
  success: function(data) {
        callback(data);
      }
});

}

そのため、コールバックが適切な値を返すのを待つ必要がありますが、do関数は既にメイン ページに戻っています。

myLib = (function () {

   do = function ()
   {
       var callback = function() { return true };

          CallAjax(callback);
   }


 }())

メインページ:しかし、lib 同期を使用したいのですが、呼び出しの性質から、それを行う方法がわかりません。

 I would like something like 
   if ( mylib.do() == true)
     { }

何か助けはありますか?

4

1 に答える 1

1

asyncスイッチをfalseに設定できます。これにより、サーバーへの同期呼び出しが発生します。ただし、この結果に注意してください。リクエストの実行中にクライアントブラウザがフリーズします。これを望まない場合は、ライブラリを再設計して、コールバックで機能するようにする必要があります。これは、IMHOがAJAXを使用する正しい方法です。したがって、ライブラリの利用者にコールバックを提供します。

于 2012-06-16T20:52:22.103 に答える