前言:
本文主要讨论同步和异步原理,讨论对象为javascript XMLHttpRequest,jQuery中封装的ajax使用将会在后续的博客中继续讨论。
如需要更多了解XMLHttpRequest的详情烦请查看《异步交互(二)》,如需快速上手使用ajax请查看《异步交互(一)》。
一、ajax
ajax是指异步javascript和xml,用于客户端与服务器端异步交互的技术,其核心为XMLHttpRequest对象。
二、同步和异步
附注:这里涉及的同步和异步是指客户端和服务器端的交互形式。
如何理解同步和异步?举例来说,同步就好像领导亲自出差,这时候无论是谁需要批章都要等到领导出差回来之后才能进行;异步就好像领导吩咐某一个人代表他去出差,出差的结果等着出差的人回来汇报就行了,中间无论谁需要批章,都可以直接进行,无需等待。
同理,ajax能够让客户端和服务器端进行异步交互,是浏览器把交互这个过程委托给了XMLHttpRequest对象,再通过js来刷新页面,因此请求之后和响应之前,非异步刷新的浏览器部分都无需等待。
1. 同步
传统客户端和服务器端的交互通常都是同步方式,和异步访问的明显区别有:
a. 客户端每一次请求服务器端,服务器端都会响应一个完整的网页,而不是网页中的某一部分数据,浪费带宽资源;
b. 在发出请求之后和接收到响应之前,用户不能对页面进行操作,交互方式不友好;
2. 异步
通过XMLHttpRequest对象和服务器端进行异步交互,只需要刷新页面中某一部分需要请求的数据,而不需要加载整个网页,在发出请求之后和接受响应之前,用户依旧可以访问整个页面,只是对于数据刷新的部分不能进行操作。
附注:
本文如有错漏,烦请指正,不胜感激!