让我们谈谈每秒都有setInterval方法的JavaScript代码2.
我还有一个onblur控件的动画事件.
在onblur发生(+动画)的情况下,我可能会得到这个setInterval功能.
所以我的问题是:
异步编程是否意味着多线程?(以任何方式?)
我知道Javascript不是一种多线程语言.
所以...?
当与编程相关时,我对术语异步感到困惑.在编程术语中,它似乎意味着与词典中定义的相反.例如,同步一词意味着:
同时发生; 时间一致; 同期; 同时.
以相同的速度和完全一起进行; 一起重复.
然而,维基百科说:
"在编程中,异步事件是独立于主程序流的事件.异步动作是在非阻塞方案中执行的动作,允许主程序流继续处理."
是不是"非阻塞"并且允许"主程序流程继续处理"的同步或"同时发生"?似乎同步一词表示"非阻塞"和异步,"阻塞".为什么这些术语在与编程相关时似乎反向使用,或者它与我不理解的低级计算有关?
当我使用同步AJAX调用时,我会执行以下操作...
$.ajax({
url: somefile.php,
async: false,
success: {
...code that gets run on success...
}
});
...code that gets run after the ajax-success code runs...
Run Code Online (Sandbox Code Playgroud)
有了这个,它实际上在运行脚本的其余部分之前等待响应,这是一个阻塞动作.那么为什么这个被称为同步,当它与任何其他过程不同步时,实际上却相反?