about ajax,ajax

1、ajax 是什么?有什么作用?

AJAX代表异步JavaScript和XML。简而言之,它是使用 XMLHttpRequest 对象与服务器端脚本进行通信。它可以发送以及接收各种格式的信息,包括JSON,XML,HTML,甚至文本文件。AJAX最吸引人的特性是,它的“异步”性质,这意味着它可以做所有这一切,而不必刷新页面。这让您可以根据用户事件更新页面的某些部分。

AJAX的两个主要功能允许您执行以下操作:

1、向服务器发出请求,而不重新加载页面

2、接收和处理服务器中的数据

2、前后端开发联调需要注意哪些事情?后端接口完成前如何 mock 数据?

注意事项

约定数据:有哪些需要传输的数据,数据类型是什么;

约定接口:确定接口名称及请求和响应的格式,请求的参数名称、响应的数据格式;

根据这些约定整理成接口文档

如何mock

1、将 mock 数据写在代码中。

// $.ajax({

// url: ‘https://cntchen.github.io/userInfo’,

// type: 'GET',

// success: function(dt) {

var dt = {

"isSuccess": true,

"errMsg": "This is error.",

"data": {

"userName": "Cntchen",

"about": "FE"

},

};

if (dt.isSuccess) {

render(dt.data);

} else {

console.log(dt.errMsg);

}

// },

// fail: function() {}

// });

优点:可以快速修改数据

缺点:无法模拟异步的网络请求,无法测试网络异常;联调前需要做较多改动,增加最终上真实环境的切换成本。接口文档变化需要手动更新

2.搭建本地服务器

3.使用在线mock服务,比如 https://www.easy-mock.com

3、点击按钮,使用 ajax 获取数据,如何在数据到来之前防止重复点击?

使用状态锁

var lock=false,

btn = document.qureySelector('#btn');

btn.addEventListener('click', function(){

if(lock){

return;

}else{

lock=true;

ajax({

....

lock=false //收到响应之后才把false赋值给lock

})

}

})

4、封装一个 ajax 函数,能通过如下方式调用。后端在本地使用server-mock来 mock 数据

function ajax(opts) {

var xmlhttp;

if(window.XMLHttpRequest) { //IE7+,chrome,Safari,Opera,Firefox

xmlhttp = new XMLHttpRequest();

} else {

xmlhttp = new AcitveXObject("Microsoft.XMLHTTP"); //IE5,IE6

}

xmlhttp.onreadystatechange = function() {

if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {

var json = JSON.parse(xmlhttp.responseText);

opts.success(json);

}

if(xmlhttp.status == 404) {

opts.error();

}

}

var dataStr= '';

for(var key in opts.data) {

dataStr += key + '=' + opts.data[key] + '&';

}

dataStr = dataStr.substr(0,dataStr.length-1);

if(opts.type.toLowerCase() == 'get') {

xmlhttp.open(opts.type, opts.url + '?' + dataStr, true);

xmlhttp.send();

}

if(opts.type.toLowerCase() == 'post') {

xmlhttp.open(opts.type, opts.url, true);

xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

xmlhttp.send(dataStr);

}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值