私はSalesForce上に構築されたHTML5モバイルWebアプリに取り組んでいます。JavaScript Remoting関数を多用しているので、これらのリモート関数呼び出しのN個(複数)が完了するのを待ってから、別のイベントまたは関数呼び出しを発生させる方法を知りたいと思います。私たちが達成しようとしているユースケースは次のとおりです。
- $ .mobile.showPageLoadingMsg();を使用してjQueryスピナー/ローダーを表示します。
- リモート関数1、2、3、...、Nを呼び出します。
- リモート機能1、2、3、...、Nが戻るのを待ちますが、ブラウザをフリーズしないでください。
$ .mobile.hidePageLoadingMsg();でjQueryスピナー/ローダーを非表示にします。
// Show a Loading Spinner while we wait for our remote requests to complete. $.mobile.showPageLoadingMsg(); // Remote Request 1 MyController.f1( function(result, event){ if(event.type == 'exception') { alert('Error: ' + event.message); } else { // Do stuff here such as fill in a form with the results from f1 } }, {escape:true}); // Remote Request 2 MyController.f2( function(result, event){ if(event.type == 'exception') { alert('Error: ' + event.message); } else { // Do stuff here such as fill in a form with the results from f2 } }, {escape:true}); // ... // Remote Request N MyController.fN( function(result, event){ if(event.type == 'exception') { alert('Error: ' + event.message); } else { // Do stuff here such as fill in a form with the results from fN } }, {escape:true}); // I want to wait until all of my requests to finish before I hide the loading spinner. wait_for_all(); $.mobile.hidePageLoadingMsg();