Ajax实现的原理

您所在的位置:网站首页 ajax可以同步吗 Ajax实现的原理

Ajax实现的原理

2024-07-02 15:14| 来源: 网络整理| 查看: 265

Ajax实现的原理--了解异步请求和局部刷新 1. AJAX 能做什么2.同步请求3.异步请求4.局部刷新

欢迎大家,经过我看一堆的ajax的文章,今天给大家总结做一个最实用,跟着思路走绝对明白的介绍。

首先我们要知道,AJAX是Asynchronous JavaScript and XML的缩写, 翻译一下“ 平行移动 JavaScript 和 XML ” 想要了解原理,我们首先要知道AJAX能做什么

1. AJAX 能做什么

ajax主要是实现页面和web服务器之间数据的异步传输。那么有同学就会问,什么是异步传输? 异步传输和同步传输相对应,同步传输就是,比如想要访问一个图,图下边有文字,你的浏览器发送了一个请求,在服务器正在解释你的请求,准备给你发文件的时候,你的浏览器会一直等。不会继续加载下边的字,直到拿到这个图片,才会继续加载下边的字。浏览器是直接向服务器发送请求,并直接接收、处理服务器响应的数据的。这就导致了浏览器发送完一个请求后,就只能干等着服务器那边处理请求,响应请求,在这期间其它事情都做不了。而异步请求就是在服务器还没投给你图片的时候,你的浏览器会继续向下工作。把文字加载出来。只要服务器响应把图片给你,会立即会执行一个JS的回调函数,把图片渲染上去。

2.同步请求

JavaScript 语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。那么,为什么JavaScript 不能有多个线程呢 ?这样能提高效率啊。

JavaScript 的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript 的主要用途是与用户互动,以及操作 DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScript 同时有两个线程,一个线程在某个 DOM 节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准?

所以,为了避免复杂性,从一诞生,JavaScript 就是单线程,这已经成了这门语言的核心特征,将来也不会改变。

为了利用多核 CPU 的计算能力,HTML5 提出 Web Worker 标准,允许 JavaScript 脚本创建多个线程,但是子线程完全受主线程控制,且不得操作 DOM。所以,这个新标准并没有改变 JavaScript 单线程的本质。

也正是因为JavaScript 单线程的本质所以就造成了上述的同步传输。

3.异步请求

那么?究竟AJAX是如何让让程序继续向下走的呢?

浏览器把请求交给代理对象—XMLHttpRequest(绝大多数浏览器都内置了这个对象),由代理对象向服务器发起请求,接收、解析服务器响应的数据,并把数据更新到浏览器指定的控件上。从而实现了页面数据的局部刷新。异步请求使浏览器不用等待服务器处理请求,不用重新加载整个页面来展示服务器响应的数据,在异步请求发送的过程中浏览器还能进行其它的操作。我们来看一下异步请求的执行流程图:

Alt 当服务器把数据返回时,会执行回调函数把数据渲染上去。

Alt

4.局部刷新

Web的运作原理:一次HTTP请求对应一个页面。如果要让用户留在当前页面中,同时发出新的HTTP请求,就必须用JavaScript发送这个新请求,接收到数据后,再用JavaScript更新页面,这样一来,用户就感觉自己仍然停留在当前页面,但是数据却可以不断地更新。而ajax就解决了这个问题可以,因为ajax一般就是直接操作DOM,所以AJAX能做到所谓的“无刷新”用户体验。

大家有什么见解评论区见



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3