Ajax实现的原理 |
您所在的位置:网站首页 › ajax可以同步吗 › Ajax实现的原理 |
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(绝大多数浏览器都内置了这个对象),由代理对象向服务器发起请求,接收、解析服务器响应的数据,并把数据更新到浏览器指定的控件上。从而实现了页面数据的局部刷新。异步请求使浏览器不用等待服务器处理请求,不用重新加载整个页面来展示服务器响应的数据,在异步请求发送的过程中浏览器还能进行其它的操作。我们来看一下异步请求的执行流程图: 当服务器把数据返回时,会执行回调函数把数据渲染上去。 4.局部刷新Web的运作原理:一次HTTP请求对应一个页面。如果要让用户留在当前页面中,同时发出新的HTTP请求,就必须用JavaScript发送这个新请求,接收到数据后,再用JavaScript更新页面,这样一来,用户就感觉自己仍然停留在当前页面,但是数据却可以不断地更新。而ajax就解决了这个问题可以,因为ajax一般就是直接操作DOM,所以AJAX能做到所谓的“无刷新”用户体验。 大家有什么见解评论区见 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |