首页
学习
活动
专区
圈层
工具
发布

详解Ajax请求(四)——多个异步请求的执行顺序

首先提出一个问题:点击页面上一个按钮发送两个ajax请求,其中一个请求会不会等待另一个请求执行完毕之后再执行?   ...从异步请求的执行原理来看,我们知道当一个异步请求发送时,浏览器不会处于锁死、等待的状态,从一个异步请求发送到获取响应结果的期间,浏览器还可以进行其它的操作。这就意味着多个异步请求的执行时并行的。   ...要求:ajax1从后台请求下拉列表的数据,ajax2从后台请求下拉列表要选中的某一项的数据。...而且有一个现象是:最后下拉框显示的是   ajax2请求的下拉列表要选中的某一项的数据没有展示出来,这说明ajax2对页面的操作快于ajax1,这时ajax1对页面的操作还没开始,所以导致ajax2对页面的操作没有效果...(2)Ajax1()的异步请求方法中,增加一个回调函数 :complete : Ajax2 亲测可行   (3)当然针对这个问题而言还有很多解决办法,比如下拉列表采用同步的方式来画,而数据的回显使用异步

3.6K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    前端:如何处理AJAX请求的重复使用

    作者|FloatFlower 翻译|小丑 在开发前端时,我们经常使用AJAX来初始化数据并动态渲染在页面上,但是在遇到一连串的相同数据都要进行请求时,就有可能对同一个API 发出并发请求,然而,因为这些请求是同时发出...我们打开开发者模式就会发现,每个组件向该API发出了请求,因此就产生了10次的并发请求,但是在这种情况下,实际上我们仅需要让一个请求出去,另外9个元件等待这个请求的响应然后重新使用即可。...改进的方法 接下来将讲解要如何实现关于在同一个组件之间唯一指定API请求一次并分配请求,我们会用到这个元件EventTarget,这个元件有点类似Node.js中的EventEmitter,主要就是用于接收事件...请求已经被减少到剩下一个了,这是因为所有的元件都重复使用了一个同一个响应。通过这种方法将可以大大减少服务器的负载以及前端的运行时间。...总结 并非每一种情况下都可以使用这种方式来请求资源,如:每次请求资源都一定会发送不一样的API就不能使用这种方式进行API调用,但是像是上述范例中的用户资料,电商网站中的商品资料或文章等,类似能够确保在极短时间之内资源都是相同的

    2K10

    springboot|前端发ajax请求到后台Controller及常见的坑

    前端发ajax请求 这块是web的基础,发web请求大概需要以下几步 1.引用web相关的依赖 2.前端页面引入jquery.js 3.编写ajax请求 4.编写对应的Controller 引入web...请求 参考文档: https://api.jquery.com/jQuery.ajax/ 这里只展示一些常用的参数 $.ajax({ url:'/test/testAjax1',...url type:标明是get还是post请求 async:是异步的还是同步的,这里有个坑,有时候下拉框用ajax去请求数据,这里默认是异步的,结果数据还没回来,下拉框就开始渲染,然后发现下拉没有数据...contentType: 前端的参数格式 dataType:接口返回的数据的格式,一般来说,经常不写,让系统自己去判定 这里ContentType的值一般来说有两种取值, 默认是application/...DEMO总评 ajax请求是web开发中的第一步,我们可以按Http请求来理解他, 有相应的header,有相关的各种type , 其中最麻烦的是要和后端Controller的参数对应关系,稍不留神对应错了后端就收不了参数

    6.6K10

    什么是跨域?如何解决跨域问题?

    2.跨域是指浏览器不能执行来自其它网站的脚本,是由浏览器的同源策略造成的,是浏览器对JavaScript 施加的安全限制。...(需要注意的是,跨域并不是请求发不出去,请求能发出去,服务端能收到请求并正常返回结果,只是结果被浏览器拦截了)引出同源策略1.之所以会出现跨域现象,是因为受到了同源策略的限制,同源策略要求源相同才能正常进行通信...使用JSONP:前端技术使用 jQuery的ajax解决方案,服务端使用JSON.toJSONString。...(对比jsonp,优点在于功能更加强大支持各种HTTP Method,缺点是兼容性不如JSONP)前端:支持原生ajax、jQuery ajax、vue、axios服务端:支持Java、Nodejs、Python...Nginx反向代理:配置nginx(修改nginx目录下的nginx.conf),在这个服务器上配置多个前缀来转发http/https请求到多个真实的服务器即可。

    1.1K60

    深入浅出 Nodejs ( 一 ) :Nodejs 的简介

    1.1 异步I/O 关于异步I/O对于前端工程师来说,理解起来容易一些,因为异步发送Ajax请求对于前端工程师来说是最熟悉不过的场景,下面的代码用于发起一个Ajax请求。...$.post('/url', function(data){ console.log('收到响应'); }); console.log('发送Ajax请求'); 运行这段代码,我们发现”收到响应”...是在”发送Ajax请求”之后输出的。...图1经典的Ajax请求 在Node中,异步I/O也很常见。我们以读文件为例,我们可以发现它与前端Ajax请求的处理方式是极其相似的。...3000端口的服务器发起一个Ajax请求,这时服务器的data事件会被触发,从前端接收数据并保存在chunk,如果前端发送的数据很大,会触发多次data事件,每次接收到的chunk会拼接到postData

    3.9K10

    详细梳理ajax跨域4种解决方案

    要实现这个前提是,前端开发环境必须运行在nodejs服务中,所幸的是,现在前端的开发自动化工具都是建立在nodejs上的,所以这个前提也不是很重要。...1、nodejs+express+http-proxy-middleware 插件代理 如果是express项目,可以使用http-proxy-middleware 来处理,这个插件主要用于将前端请求代理到其它服务器...请求的时候,可以看到数据可以收到了。...JSONP JSONP基本思想是,网页通过添加一个元素,向服务器请求JSON数据,这种做法不受同源政策限制;服务器收到请求后,将数据作为参数放在一个指定名字的回调函数里传回来,这个回调函数的名字我们需要通过...对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。

    1.5K40

    前后端分离架构:Web 实现前后端分离,前后端解耦

    API 输出 JSON 给 NodeJS; 4)NodeJS 收到 JSON 后再渲染出 HTML 页面; 5)NodeJS 直接将 HTML 页面 flush 到浏览器; 这样,浏览器得到的就是普通的...HTML 页面,而不用再发 Ajax 去请求服务器了。...有了NodeJs之后,前端可以在NodeJs中去代理这5个异步请求。还能很容易的做bigpipe,这块的优化能让整个渲染效率提升很多。...从该角度来看,我们,请求一个页面,可能要响应很多个后端接口,请求变多了,自然速度就变慢了,这种现象在mobile端更加严重。...采用node作为中间层,将页面所需要的多个后端数据,直接在内网阶段就拼装好,再统一返回给前端,会得到更好的性能。

    3.1K40

    前后端分离架构概述「建议收藏」

    这也就是Ajax与SPA应用(单页应用)结合的方式,其结构图如下: 步骤如下: (1)浏览器请求,CDN返回HTML页面; (2)HTML中的JS代码以Ajax方式请求后台的Restful...API输出JSON给NodeJS; 4)NodeJS收到JSON后再渲染出HTML页面; 5)NodeJS直接将HTML页面flush到浏览器; 这样,浏览器得到的就是普通的...有了NodeJs之后,前端可以在NodeJs中去代理这5个异步请求。还能很容易的做bigpipe,这块的优化能让整个渲染效率提升很多。...从该角度来看,我们,请求一个页面,可能要响应很多个后端接口,请求变多了,自然速度就变慢了,这种现象在mobile端更加严重。...采用node作为中间层,将页面所需要的多个后端数据,直接在内网阶段就拼装好,再统一返回给前端,会得到更好的性能。

    4.4K22

    jsonp-反向代理-CORS解决JS跨域问题的个人总结(更新 v2.0)

    一、什么是跨域问题 跨域问题一般只出现在前端开发中使用 javascript 进行网络请求的时候,浏览器为了安全访问网络请求的数据而进行的限制。...3.1.2 如何使用反向代理服务器来解决跨域问题 前端 ajax 请求的是本地反向代理服务器 本地反向代理服务器接收到后: 修改请求的 http-header 信息,例如 referer,host,端口等...现在前端开发一般使用 nodejs 来做本地反向代理服务器 // 在 express 之后引入路由var app = express();var apiRoutes = express.Router()...源端会先请求 nodejs 反向代理服务器的之前设置的那条路由,会将参数传给他,然后 nodejs 反向代理会将它的请求进行改写,然后转发到目标服务器。...对于开发者来说,CORS 通信与同源的 AJAX 通信没有差别,代码完全一样。浏览器一旦发现 AJAX 请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。

    1.9K20

    nodejs作为中间层的实践「详细介绍」

    前端工程化,比如rollup,webpack在工程化方向的探索 nodejs中间层 客户端集成nodejs,比如electron 市面上一些不太复杂的应用选择nodejs作为后端编程语言,本文主要讲一讲...原来客户端直接向Server发送请求,Server层收到请求后经过计算处理将结果返回给浏览器....代理转发 代理转发在实际中有很多广泛的应用.浏览器首先将请求发送给node服务器,请求收到后node服务器可以对请求做一些处理,比如将原来的路径变换一下,请求头的信息改变一下,再把修改后的请求发送给远程真实的服务器...接口数据可靠性修复 有的时候服务端返回给我们的数据可能并不是前端想要的结构,所有用到的展现数据都是后端通过异步接口(AJAX/JSONP)的方式提供的,前端只管展现。...淘宝常见的需求解决方案 需求:在淘宝,单日四亿PV,页面数据来自各个不同接口,为了不影响体验,先产生页面框架后,在发起多个异步请求取数据更新页面,这些多出来的请求带来的影响不小,尤其在无线端。

    2.6K00

    干货 | 前端常用的通信技术

    作者简介 陈为平,携程市场部前端工程师,目前主要负责“携程运动”项目的大前端相关工作。 前段时间在忙开发携程运动项目和相应的微信小程序,其中和后端通信犹为频繁。...get、post请求方法是很多前端童鞋使用最频繁的;websocket在11年盛行后方便了客户端和服务器之间传输,……and so on ,除了这些,还有很多我们不常使用的其他方式,但是在实际的业务场景中却真实需要...侵删 这个的服务端是基于 nodejs实现的(不要问为什么不是php,因为 nodejs 简单些!)...console.log('收到客户端来的消息: %s', message); ws.send('服务端收到来自客户端的消息:' + message); });...document.getElementById('sendbox2').addEventListener('click', function(){ window.parent.post2.postMessage('收到来自左边

    2.5K60

    前后端不分离到分离演变,优势,前后端接口联调,排错及优化

    服务器接收到浏览器的请求后,进行处理得到数据,然后将数据填充到静态页面中,最终返回给浏览器。...输出JSON给NodeJS; 4)NodeJS收到JSON后再渲染出HTML页面; 5)NodeJS直接将HTML页面flush到浏览器; 这样,浏览器得到的就是普通的...有了NodeJs之后,前端可以在NodeJs中去代理这5个异步请求。还能很容易的做bigpipe,这块的优化能让整个渲染效率提升很多。...从该角度来看,我们,请求一个页面,可能要响应很多个后端接口,请求变多了,自然速度就变慢了,这种现象在mobile端更加严重。...采用node作为中间层,将页面所需要的多个后端数据,直接在内网阶段就拼装好,再统一返回给前端,会得到更好的性能。

    3.2K50

    一文弄懂跨域的全部解决方法

    无法操作不同源网页的DOM。每个网页的DOM只能由其自己的脚本访问,不能被其他源的脚本操作。 无法向不同源地址发起AJAX请求。这限制了网页与不同源服务器之间的数据交互。...它是 W3C 标准,属于跨源 AJAX 请求的根本解决方法。...1、普通跨域请求:只需服务器端设置Access-Control-Allow-Origin 2、带cookie跨域请求:前后端都需要进行设置 前端只需要根据xhr.withCredentials字段判断是否带有...先下载nginx,然后将 nginx 目录下的 nginx.conf 修改如下: server { #nginx监听所有localhost:8080端口收到的请求 listen...include /etc/nginx/default.d/*.conf; #localhost:8080 会被转发到这里 #同时, 后端程序会接收到 "192.168.25.20:8088"这样的请求

    13K21

    前端开发中的几种资源重定向方法

    在前端开发,尤其是开发SPA(单页应用)的时候,一个常见的需求是在调试和测试环境下搭建服务器实现资源的重定向。...简单说就是静态资源直接返回,前端路由统归index.html,而ajax请求都指向入口请求地址等 嗯,但是为嘛需要这么做呢.........) URI请求会被发送到PHP所在的的工作目录(Working Directory)进行处理,除非你使用了-t参数来自定义不同的目录 如果请求未指定执行哪个PHP文件,则默认执行目录内的index.php...404, 而是定向到配置的选项historyApiFallback.index对应的文件(或直接到index.html),也就实现了前端重定向 用proxy选项代理请求到一个http服务器(用express...配置的ajax响应),从而实现ajax请求重定向 该组合一般用于开发时调试 //webpack.config.js devServer: { port: serverConfig.port,

    3.1K10

    Nodejs之RPC协议简介

    背景 随着 Nodejs 的兴起,越来越多的 Web 服务中间层被搭建起来。...前端视角看RPC 与 Ajax 对比相同点 都是两个计算机之间的网络通信,Ajax 是浏览器和服务器通信,RPC 是服务器和服务器通信 都需要双方约定一个数据格式 与 Ajax 对比不相同点 RPC...调用不一定使用 DNS 作为寻址服务,Ajax 一般是浏览器向服务器请求,请求地址一般是https://域名/xxx,服务器需要根据域名区寻找对应的 IP 地址,这就是 DNS 寻址过程,而 RPC...简单包结构设计 标记包的类型,比如:0 表示请求,1 表示响应,需要一个Byte 关联ID,将请求和它对应的响应关联起来,这个 ID 我们选择用一个 Int32 类型(4 Bytes)自增的数字表示 Payload...Nodejs实现RPC通信协议 Nodejs 中有个 Buffer 模块,可以提供对二进制数据的操作。所以我们可以用来进行二进制的编码和解码,结合上面的通信协议,可以写出编码和解码部分代码。

    2.3K30

    文件切片上传原理解析

    为了避免上传大文件时上传超时,就需要用到切片上传,工作原理是:我们将大文件切割为小文件,然后将切割的若干小文件上传到服务器端,服务器端接收到被切割的小文件,然后按照一定的顺序将小文件拼接合并成一个大文件...实例中运用到的技术包括:H5(前端使用)和nodejs(后端使用)。这个实例为了演示简便,我们使用大的图片上传来演示。 首先,我们来看一下上传表单的演示效果和代码,效果如下: ?...因为这里使用的是ajax上传,所以没有使用form元素,直接使用一个上传文件的input来获取上传图片的数据。...,全部上传完成后,请求合并接口,这个接口返回合并后的图片的url。...前端将切片信息传递到后端,后端用过nodejs接受切片,然后按照索引将切片拼接成完整的文件,这里用到了两个工具包multer和concat-files,前一个是负责接收切片信息,后一个负责合并切片。

    8.9K51

    实现前后端分离的心得

    而前端开发人员则可以利用nodejs来搭建自己的本地服务器,直接在本地开发,然后通过一些插件来将api请求转发到后台,这样就可以完全模拟线上的场景,并且与后台解耦。...:实现整一个前端页面以及交互逻辑,以及利用ajax与nodejs服务器(中间层)交互 后端的工作:提供API接口,利用redis来管理session,与数据库交互 我们项目的整一个架构如下: 接下来进入正题...但如果本地没有开启服务器的话,不仅无法模拟线上的环境,而且还面临到了跨域的问题,因为你如果写静态的html页面,直接在文件目录下打开的话,你是无法发出ajax请求的(浏览器跨域的限制),因此,你需要在本地运行一个服务器...前端服务器如何部署 nodejs前端服务器的职责 作为静态文件服务器,当用户访问网站的时候,将index.html以及其引入的js、css、fonts以及图片返回给用户 负责将客户端发来的ajax请求转发给后台服务器...的请求,就转发到后台服务,访问其它的请求,就转发到nodejs服务) 以上,就是我对于前后端分离的一些看法,以及一些实践,如果大家有什么好的想法,欢迎交流。

    2.5K10

    01 . Go之Gin+Vue开发一个线上外卖应用

    前端项目目录说明 本项目的前端项目是使用nodejs的vue框架进行开发而成的。...运行前端项目 安装好了nodejs环境后,可以使用命令对前端项目进行操作 进入项目中 cd shop-client 常用命令 ......请求接口API 在shop-client前端项目的src目录下的api目录中,有两个js文件,分别为ajax.js文件和index.js文件。...ajax.js文件:该文件中封装了前端项目进行异步网络请求的方法ajax,该函数包含三个参数,分别是:url、data、type,表示请求路径,请求参数和请求方法。...index.js文件:在该文件中,引入了ajax.js文件和其中的ajax方法,定义了基础请求路径BASE_URL常量,此项目中的请求端口为8090,与后台服务器监听的端口一致。

    1.5K71

    什么是跨域跨域解决方法_500错误原因解决方法

    核心思想:网页通过添加一个元素,向服务器请求 JSON 数据,服务器收到请求后,将数据放在一个指定名字的回调函数的参数位置传回来。...它是 W3C 标准,属于跨源 AJAX 请求的根本解决方法。...withCredentials: true // 前端设置是否带cookie }, crossDomain: true, // 会让请求头中包含跨域的额外信息,但不会含cookie...我们只需要配置nginx,在一个服务器上配置多个前缀来转发http/https请求到多个真实的服务器即可。这样,这个服务器上所有url都是相同的域 名、协议和端口。...先下载nginx,然后将 nginx 目录下的 nginx.conf 修改如下: server { #nginx监听所有localhost:8080端口收到的请求 listen

    2.4K20
    领券