你对Ajax的了解有多少

8 篇文章 0 订阅
2 篇文章 0 订阅
  • 首先对ajax的认识,我们要明白他是对数据库的一个请求,就是把数据库里的数据拿到script脚本里面,然后再渲染到我们需要的页面,所以它不是另一种语言,是一个由JS敲出来的公式
  • 那么ajax可以用来干什么?基本就是用来增删改查,我们对页面的数据都需要从后台获取

那么进入正题,ajax是什么样子的?
首先是原生JS里面的:

四部曲

// 1.创建
		// 兼容性的处理
		var xhr;
		if (window.XMLHttpRequest){
			xhr = new XMLHttpRequest();
		}else{
		 	xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}
		// 2.监听函数
		xhr.onreadystatechange = function(){
			if(xhr.readyState == 4){
				if(xhr.status == 200){
					// 完成以后,并且成功的ajax请求
				}else{
					console.log("发生错误的响应码:" + xhr.status)//ajax请求已经完成,但是发生了错误
				}
			}
		}
		// xhr.readyState   ajax请求的状态码
		 0
		 1
		 2
		 3
		 4
		// xhr.status    ajax请求完成以后的响应码
		 1xx
		 2xx
		 3xx     301    304
		 4xx
		 5xx
	
		这里是GET请求
		
		// 3.建立连接   注意点:get请求的参数位置 在地址栏之后拼接的
		 xhr.open("GET",地址?参数名1=参数值1&参数名2=参数值2....,true)
		// 4.发送请求
		xhr.send(null)
		
		这里是POST请求
		// 3.建立连接    post请求的参数不需要拼接
		xhr.open("POST","02.php",true);
		
		// 3.5 设置一个请求头
		// post请求在发送之前,得把post请求的参数格式指定一下
		// text/html
		// multipart/form-data
		// multipart/json
		// application/x-www-form-urlencoded
		// ...
		xhr.setRequestHeader("content-type","application/x-www-form-urlencoded")

		// 4.发送  post请求的参数写在send中
		// key1=value1&key2=value2
		xhr.send("username=jack&score=100")

可能看上去很麻烦,也不好理解,不过没关系,我们还有jQuery版的
相比原生这个就好理解的多

$.ajax({
			// GET或POST请求
            type: 'GET',	//'POST'
            // 请求地址路径
            url: 'http://127.0.0.1/admin/index/',
            // 请求的媒体类型,一般不写
            contentType: 'application/x-www-form-urlencoded;charset=utf-8',  
            // 转为json格式
            dataType: 'JSON',
            // 异步改同步,默认为true,也就是异步,一般不去改变
            async: false,
            // 请求成功
            success: function(data) {
                console.log(data);	//获取到的后台数据
            },
            // 请求失败
            error: function(err) {
                console.log(err);	//获取到的失败结果
            }
        })

至于增删改查,我们只需要把数据传到后台就行,那都是后台的事
大致的ajax实例就是这样,但是对ajax仅仅了解这些还远远不够
任何东西都有两面性,ajax也不例外,虽然方便了请求后台数据,但也有了些微的缺点
AJAX优点:

  1. 无刷新更新数据
  2. 异步服务器通信
  3. 前端和后端负载平衡
  4. 基于标准备广泛支持
  5. 界面与应用分离

AJAX缺点:

  1. AJAX干掉了Back和History功能,即对浏览器机制的破坏
  2. AJAX安全问题
  3. 对搜索引擎支持较弱
  4. 破坏程序的异常处理机制
  5. 违背了URL和资源定位的初衷
  6. AJAX不是很好支持移动设备

AJAX注意点及适用和不适用场景

(1)注意点
Ajax 开发时,网络延迟——即用户发出请求到服务器发出响应之间的间隔——需要慎重考虑。不给予用户明确的回应,没有恰当的预读数据,或者对 XMLHttpRequest的不恰当处理,都会使用户感到延迟,这是用户不希望看到的,也是他们无法理解的。通常的解决方案是,使用一个可视化的组件来 告诉用户系统正在进行后台操作并且正在读取数据和内容。

(2).Ajax适用场景
<1>.表单驱动的交互
<2>.深层次的树的导航
<3>.快速的用户与用户间的交流响应
<4>.类似投票、yes/no等无关痛痒的场景
<5>.对数据进行过滤和操纵相关数据的场景
<6>.普通的文本输入提示和自动完成的场景

(3).Ajax不适用场景
<1>.部分简单的表单
<2>.搜索
<3>.基本的导航
<4>.替换大量的文本
<5>.对呈现的操纵

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值