一、全局刷新和局部刷新
1. 全局刷新
- 概念 : 整个浏览器被新的数据覆盖。 在网络中传输大量的数据。 浏览器需要加载、渲染页面。
- 具体实例:
登录请求处理:
index.jsp 发起登录请求--------LoginServlet--------result.jsp
首先,在发起请求阶段,浏览器内存是index.jsp数据。服务器在收到请求后,对该请求进行应答:sevlet 返回后把数据全部覆盖掉原来 index 页面内容, result.jsp 覆盖了全部的浏览器内存数据。 整个浏览器数据全部被刷新。重新在浏览器窗口显示数据,样式,标签等。这就是全局刷新,即通过响应的方式来更新整个网页的数据。 - 原理:
(1) 必须由浏览器亲自向服务端发送请求协议包。
(2) 这个行为导致服务端直接将【响应包】发送到浏览器内存中
(3) 这个行为导致浏览器内存中原有内容被覆盖掉
(4) 这个行为导致浏览器在展示数据时候,只有响应数据可以展示
2. 局部刷新
- 概念:浏览器在展示数据时,此时在窗口既可以看到本次的响应数据, 同时又可以看到浏览器内存中原有数据。局部刷新在浏览器器的内部,发起请求,获取数据,改变页面中的部分内容。其余的页面无需加载和渲染。 网络中数据传输量少, 给用户的感受好。
- 原理:
(1) 不能由浏览器发送请求给服务端
(2) 浏览器委托浏览器内存中一个脚本对象代替浏览器发送请求.
(3) 这个行为导致导致服务端直接将【响应包】发送脚本对象内存中
(4) 这个行为导致脚本对象内容被覆盖掉,但是此时浏览器内存中绝大部分内容没有收到任何影响.
(5) 这个行为导致浏览器在展示数据时候,同时展示原有数据和响应数据
二、异步请求对象
-
概念:在局部刷新,需要创建一个对象,代替浏览器发起请求的行为,这个对象存在内存中。代替浏览器发起请求并接收响应数据。这个对象叫做异步请求对象。
全局刷新是同步行为, 局部刷新是异步行为[浏览器数据没有全部更新]
这个异步对象用于在后台与服务器交换数据。XMLHttpRequest 就是我们说的异步对象。 -
XMLHttpRequest 对象可以:
(1) 在不重新加载页面的情况下更新网页
(2) 在页面已加载后向服务器请求数据
(3) 在页面已加载后从服务器接收数据 -
创建XMLHttpRequest 对象语法:
<script>
var xmlhttp = new XMLHttpRequest();
</script>
AJAX 中的核心对象就是 XMLHttpRequest
三、AJAX简介
AJAX ,即 Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分页面内容的新方法。
AJAX 不是新的编程语言,而是使用现有技术混合使用的一种新方法。ajax 中使用的技术有JavaScript, html , dom , xml ,css 等。主要是 JavaScript , XML.
JavaScript: 使用脚本对象 XMLHttpRequest 发送请求, 接收响应数据
XML: 发送和接收的数据格式,现在使用 json
AJAX 不单需要前端的技术,同时需要后端(服务器)的配合。服务器需要提供数据,数据是 AJAX 请求的响应结果。