热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

何时使用AJAX异步或同步?

AJAX代表异步JavaScript和XML,是一种允许异步更新web页面的技术,这意味着当页面上只有一小部分数据发生更改时,浏览器不需要重新加载整个页面。AJAX只在服务器之间传递更新后的信息。
AJAX代表异步Javascript和XML,是一种允许异步更新web页面的技术,这意味着当页面上只有一小部分数据发生更改时,浏览器不需要重新加载整个页面。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页面需要在用户单击某些内容后返回一个确认页面。这个任务需要同步请求。


推荐阅读
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • XMLhttpREquest_Ajax技术总结之XmlHttpRequest
    Ajax1、 什么是ajax   ... [详细]
  • 1、概述首先和大家一起回顾一下Java消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了:然后在另一篇博客《Java消息队列-ActiveMq实战》中 ... [详细]
  • 这篇文章给大家讲解如何利用dhtmlxGantt在服务器端集成数据。脚本数据保存如果您已初始化dataProcessor,则用户或以编程方式所做的任何更改都将自动 ... [详细]
  • 表单提交前的最后验证:通常在表单提交前,我们必须确认用户是否都把必须填选的做了,如果没有,就不能被提交到服务器,这里我们用到表单的formname.submit()看演示,其实这个对于我们修炼道 ... [详细]
  • Itwasworkingcorrectly,butyesterdayitstartedgiving401.IhavetriedwithGooglecontactsAPI ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
author-avatar
最好的骨头518_822
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有