我正在开发基于 SalesForce 构建的 HTML5 移动 Web 应用程序。我们大量使用 JavaScript Remoting 函数,我想知道一种方法来等待 N(多个)这些远程函数调用完成,然后触发另一个事件或函数调用。我们试图完成的用例如下:
- 使用 $.mobile.showPageLoadingMsg() 显示 jQuery Spinner/Loader;
- 调用远程函数 1、2、3、...、N。
- 等待远程功能 1、2、3、...、N 返回,但不要冻结浏览器。
使用 $.mobile.hidePageLoadingMsg(); 隐藏 jQuery Spinner/Loader;
// 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();