dou*_*ack 1 javascript ajax jquery asynchronous coordinate
我试图围绕协调异步操作.我需要一点帮助理解:
大多数情况下,向$ .get()这样的异步函数添加回调效果很好.然而,在某种程度上,这确实决定了我的代码编写的方式和位置,我不喜欢.
$(function() {
var r = AjaxResults( page );
// loop prevents further processing until GetResults() is done
while( isComplete == false )
isComplete = $('body').data('isComplete');
// reset isComplete boolean
$('body').data('isComplete', false);
// this will only continue after GetResults() has exited
paintTheTownRed();
var whateverElse = true;
});
function AjaxResults( page ) {
// do something before async operation
switch( page ){
case '1': {...} break;
...
default: break;
}
$.getJSON("/controller/page", null, function(data) {
// do something after async operation
{...}
$('body').data('isComplete', true);
return data;
});
}
Run Code Online (Sandbox Code Playgroud)
因为它会刺激我的CPU并激怒我.
当你写你的代码几乎从来没有非同步/同步决定; 函数是函数,无论它们是匿名的还是内联编写的,还是作为引用命名和传递的.
此外,promises和deferred对象有助于决定实现功能的位置和方式.
有关其他详细信息和想法,请参阅.when(docs)等内容,但还有其他方法可以使用它们.
| 归档时间: |
|
| 查看次数: |
880 次 |
| 最近记录: |