1.url
:
发送请求的地址(默认为当前页地址)
2.type
:
请求方式(post或get)默认为get
4.async
:
默认设置为true,表示异步请求。如果需要发送同步请求,请将此选项设置为false
5.cache
:
默认为true(当dataType为script时,默认为false),设置为false将不会从浏览器缓存中加载请求信息
6.data
:
要求为Object或String类型的参数,发送到服务器的数据
7.dataType
:
预期服务器返回的数据类型
xml:返回XML文档,可用JQuery处理
html:返回纯文本HTML信息
script:返回纯文本JavaScript代码
json:返回JSON数据。
jsonp:JSONP格式
text:返回纯文本字符串
8.success
:要求为Function类型的参数,请求成功后调用的回调函数,有两个参数。
(1)由服务器返回,并根据dataType参数进行处理后的数据。
(2)描述状态的字符串。
function(data, textStatus){
//data可能是xmlDoc、jsonObj、html、text等等
this; //调用本次ajax请求时传递的options参数
}
9.error
:
要求为Function类型的参数,请求失败时被调用的函数。该函数有3个参数,即XMLHttpRequest对象、错误信息、捕获的错误对象(可选)。ajax事件函数如下:
function(XMLHttpRequest, textStatus, errorThrown){
//通常情况下textStatus和errorThrown只有其中一个包含信息
this; //调用本次ajax请求时传递的options参数
}
多个Ajax并发页面错误解决方法
(1)将并行改串行
function async1(){
// 第一个ajax请求
async2();
function async2(){
// 第二个ajax请求
//将并行变成串行
async1();
多次执行统一个接口也可以用此方法
var a=0;
function async1(a){
//ajax方法
a++; //执行次数
success(){ //获取接口成功后
if(a<执行次数){
async1(a)
(2)回调计数
设置计数实现
var n=0;
function async1(){
//ajax方法1
callback();
function async2(){
//ajax方法2
callback();
function callback(){
if(2==n) console.log('都已执行完毕');
(3)jquery
var d1 = $.Deferred();
var d2 = $.Deferred();
function async1(){
d1.resolve( "Fish" );
function async2(){
d2.resolve( "Pizza" );
$.when( d1, d2 ).done(function ( v1, v2 ) {
console.log( v1 + v2 + '已完成');
(4)ajax async设为同步执行
$.when($.ajax, $ajax).done(function() { "AJAX执行成功后,执行的方法"})
通常 为了减少页面加载时间,先把核心内容显示处理,页面加载完成后再发送ajax请求获取其他数据
这时就可能产生多个ajax请求,为了用户体验,最好是发送并行请求,这就产生了并发问题,应该如何处理?
(1)并行改串行
如果业务逻辑和用户体验允许的情况下,可以改为串行,处理起来最简单
function async1(){
//do sth...
浏览器打开
axios的并发请求其实并不是某一精确的时间段发送出两条异步消息而是在两条消息的状态完成之后能够执行同一个回调函数
手动实现并发请求
并发请求其实就是多次请求 而且能够在同时间处理同状态的两个请求
// 设置一个空对象 承载两次请求的结果
let endResult= {}
// 第一次请求发起
axios.get(url).then(result=>{
// 此时在第一次请求的回调中 不处理数据
endResult.
浏览器打开
更多前端信息可以关注博客:http://www.colbrus.com
通常 为了减少页面加载时间,先把核心内容显示处理,页面加载完成后再发送ajax请求获取其他数据,这时就可能产生多个ajax请求,为了用户体验,最好是发送并行请求,这就产生了并发问题,应该如何处理?
一、并行...
浏览器打开
AJAX作为网页异步处理的成功解决方法已经众所周知,但是在具体的使用上还是有一些不同的技巧。由于最近自己的一个小程序的需要,比较彻底的研究了一下AJAX多线程并发及其控制的方法。这里需要感谢Rick Chen和Tom Li在并发控制代码部分给出的意见和建议。下面我们来看看AJAX并发处理和控制的基本思路和流程控制。
由DOM对象触发AJAX请求生成AJAX对象,并检测当前并发请求数量是否大于最大...
浏览器打开
今天写程序时遇到这样一个问题,在js同一个方法中调用2个ajax。其中ajax2是要根据ajax1返回的条件来执行的。但是程序运行后发现2个ajax是同时执行的。在网上找了资料有个兄弟的解答完美解决了我的问题。
分析原因是:
从异步请求的执行原理来看,我们知道当一个异步请求发送时,浏览器不会处于锁死、等待的状态,从一个异步请求发送到获取响应结果的期间,浏览器还可以进行其它的操作。这就意味着多...
浏览器打开