为什么Javascript异步检索数据(ajax,...)而PHP同步(mysql_query)?

时间:2015-07-27 20:01:49

标签: javascript php ajax

为什么不同步或同时异步检索它们?  或者,更好的是,为什么反之亦然?

2 个答案:

答案 0 :(得分:2)

同步,单线程编程几乎无疑更容易,但它需要在IO和其他长时间运行的任务中“阻塞”主线程。当您阻止主线程时,不会发生任何其他事情(包括处理其他用户输入)。

因此,在浏览器的上下文中,我们异步执行网络请求,以确保在等待响应时我们可以保持页面的响应性和交互性。

另一方面,在PHP中,每个(传入)请求都获得它自己的线程(有时甚至是它自己的进程),因此通过“阻塞”(传出)网络请求可以减少伤害。这不是最有效的解决方案,但是编写代码要小得多,而且大部分时间都“足够好”。

答案 1 :(得分:0)

AJAX异步工作,因为它通常用于交互式应用程序,即Web浏览器。这允许浏览器在等待响应时响应其他用户操作。

PHP在服务器上运行,并且不直接与用户交互。因此,在等待对网络请求的响应时,通常没有其他任何事情可做。