何时使用AJAX异步或同步?

来源:07素材网 04月11日 22:55

AJAX代表异步JavaScript和XML,是一种允许异步更新web页面的技术,这意味着当页面上只有一小部分数据发生更改时,浏览器不需要重新加载整个页面。AJAX只在服务器之间传递更新后的信息。


何时使用AJAX异步或同步?

标准web应用程序同步处理web访问者和服务器之间的交互。这意味着一件事接着另一件事发生;服务器不执行多任务。如果单击按钮,消息将发送到服务器,并返回响应。在接收到响应并更新页面之前,不能与任何其他页面元素交互。

显然,这种延迟会对web访问者的体验产生负面影响——因此,AJAX就是这样。

AJAX是什么?

AJAX不是一种编程语言,而是一种结合了与web服务器通信的客户端脚本(即在用户浏览器中运行的脚本)的技术。此外,它的名称有点误导人:虽然AJAX应用程序可能使用XML发送数据,但它也可以只使用纯文本或JSON文本。但通常,它使用浏览器中的XMLHttpRequest对象从服务器请求数据,并使用JavaScript显示数据。

AJAX:同步或异步

AJAX可以同步和异步访问服务器:

同步,其中脚本停止并等待服务器在继续之前发回一个响应。

异步方式,其中脚本允许继续处理页面,并在响应到达时处理响应。

同步处理请求类似于重新加载页面,但是只下载所请求的信息,而不是下载整个页面。因此,同步使用AJAX比完全不使用它要快得多——但它仍然要求访问者等待下载完成,然后才能继续与页面进行任何进一步的交互。大家知道他们有时需要等待页面加载,但大多数人不习惯在他们进入站点后继续显著延迟。

异步处理您的请求避免了从服务器检索时的延迟,因为您的访问者可以继续与web页面交互;请求的信息将在后台处理,响应将在页面到达时更新页面。此外,即使响应延迟(例如,在非常大的数据情况下),站点访问者也可能没有意识到这一点,因为他们在页面的其他地方被占用了。

因此,使用AJAX的首选方法是尽可能使用异步调用。这是AJAX中的默认设置。

为什么使用同步AJAX?

如果异步调用提供了这样一种改进的用户体验,那么为什么AJAX提供了一种进行同步调用的方法呢?

虽然异步调用在大多数情况下是最佳选择,但是在极少数情况下,在特定的服务器端流程完成之前,允许访问者继续与web页面交互是没有意义的。

在许多情况下,最好根本不使用AJAX,而是重新加载整个页面。AJAX中的同步选项适用于少数情况,在这种情况下,你不能使用异步调用,但是没有必要重新加载整个页面。例如,你可能需要处理一些事务,其中顺序很重要。考虑这样一种情况:web页面需要在用户单击某些内容后返回一个确认页面。这个任务需要同步请求。
原文出处:http://www.php.cn/js-tutorial-416497.html
版权声明:本文来源地址若非本站均为转载,若侵害到您的权利,请及时联系我们,我们会在第一时间进行处理。

头条

在使用SQLite3时遇到的几个坑

在使用SQLite3时遇到的几个坑

《本打算在SQLite3数据库里执行一个查询语句,使用的是php语言,起初遇到的是权限问题: permission denied,因为SQLite3数据库文件和PHP执行者属于两个不同的用户,首先需要对这个文件执行mode 777的权限开放,然后,又遇到了下面这样的PHP错误