众所周知,浏览器是单线程的,它既可以渲染 UI,也可以执行 Javascript 代码片段。(webworker 是使其成为多线程的可能方法,但让我们坚持默认行为)。
我有兴趣知道的是,当我们进行 jQuery ajax 调用时
$.ajax(....)
它不会阻塞 Javascript 线程,它是如何发生的?
1)浏览器向服务器发出请求时会做什么?
2)当服务器响应数据时,浏览器的实现是否允许Javascript监听此类事件以允许承诺履行处理程序。
我在问这个问题,因为我注意到建议通过使用 AsyncTask 框架创建一个单独的线程来下载 Android 中的文件。为什么 Android 不能以与 Javascript 相同的方式实现。