您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > javascript

ajax的jquery写法和原生写法

时间:2019-09-24 10:58:31  来源:  作者:

一、ajax的简介

Ajax被认为是(Asynchronous(异步) JAVAScript And Xml的缩写)。现在,允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做Ajax.

同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。

异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式 。

二、ajax的缺陷

AJAX大量使用了JavaScript和AJAX引擎,而这个取决于浏览器的支持。IE5.0及以上、Mozilla1.0、NetScape7及以上版本才支持,Mozilla虽然也支持AJAX,但是提供XMLHttpRequest的方式不一样。所以,使用AJAX的程序必须测试针对各个浏览器的兼容性。

AJAX更新页面内容的时候并没有刷新整个页面,因此,网页的后退功能是失效的;有的用户还经常搞不清楚现在的数据是旧的还是已经更新过的。这个就需要在明显位置提醒用户“数据已更新”。

对流媒体的支持没有FLASH好。

一些手持设备(如手机、PDA等)现在还不能很好的支持Ajax。

三、ajax的四种type类型:

1、GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。

2、与GET不同的是,PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同。

3、POST请求同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,就像数据库的insert操作一样,会创建新的内容。几乎目前所有的提交操作都是用POST请求的。

4、DELETE请求顾名思义,就是用来删除某一个资源的,该请求就像数据库的delete操作。

简单的说就是

get理解为查询 delete就是删除 post就是新增 put就是更新数据

四、ajax的原生写法

window.onload = function () {
 var oBtn = document.getElementById("btn1");
 oBtn.onclick = function () {
 //1.创建ajax对象
 //只兼容非ie6的浏览器,在ie6浏览器上运行会提示没有被定义
 //var oAjax = new XMLHttpRequest();//这才是ajax实际的请求
 //alert(oAjax);
 //ie6浏览器下按照下面方法写,但是在别的浏览器中不能用,会报错。
 //var oAjax = new ActiveXObject("Microsoft.XMLHTTP");
 //alert(oAjax);
 //鉴于上面出现的问题,可以采取下面的方法解决,用if判断是否为IE6浏览器
 if (window.XMLHttpRequest)//如果有XMLHttpRequest,那就是非IE6浏览器。()里面加window的原因下面会有描述。
 {
 var oAjax = new XMLHttpRequest();//创建ajax对象
 }
 else//如果没有XMLHttpRequest,那就是IE6浏览器
 {
 var oAjax = new ActiveXObject("Microsoft.XMLHTTP");//IE6浏览器创建ajax对象
 }
 //2.连接服务器
 //open(方法、文件名、异步传输)
 //方法:
 //传输方式是get方式还是post方式。
 //文件名
 //告诉服务器要读哪个文件
 //异步传输
 //异步:多件事一件一件的做
 //同步:多件事情一起进行
 //但是js里面的同步和异步和现实的同步异步相反。
 //同步:多件事一件一件的做
 //异步:多件事情一起进行
 //ajax天生是用来做异步的
 oAjax.open("GET", "a.txt?t='+new Date().getTime()", true);//加上t='+new Date().getTime()"的目的是为了消除缓存,每次的t的值不一样。
 //3.发送请求
 oAjax.send();
 //4.接收返回
 //客户端和服务器端有交互的时候会调用onreadystatechange
 oAjax.onreadystatechange = function () {
 //oAjax.readyState //浏览器和服务器,进行到哪一步了。
 //0->(未初始化):还没有调用 open() 方法。
 //1->(载入):已调用 send() 方法,正在发送请求。
 //2->载入完成):send() 方法完成,已收到全部响应内容。
 //3->(解析):正在解析响应内容。
 //4->(完成):响应内容解析完成,可以在客户端调用。
 if (oAjax.readyState == 4) {
 if (oAjax.status == 200)//判断是否成功,如果是200,就代表成功
 {
 alert("成功" + oAjax.responseText);//读取a.txt文件成功就弹出成功。后面加上oAjax.responseText会输出a.txt文本的内容
 }
 else {
 alert("失败");
 }
 }
 };
 }
};

五、ajax的jquery写法:

$.ajax({
 url: "http://www.microsoft.com", //请求的url地址
 dataType: "json", //返回格式为json
 async: true, //请求是否异步,默认为异步,这也是ajax重要特性
 data: {
 "id": "value"
 }, //参数值
 type: "GET", //请求方式
 processData: false, //对表单data数据是否进行序列化
 contentType: false, //dataType设置你收到服务器数据的格式
 xhr: function () { //ajax进度条
 var xhr = $.ajaxSettings.xhr();
 if (onprogress && xhr.upload) {
 xhr.upload.addEventListener("progress", progressBar, false);
 return xhr;
 }
 },
 beforeSend: function () {
 //请求前的处理
 },
 success: function (req) {
 //请求成功时处理
 },
 complete: function () {
 //请求完成的处理
 },
 error: function () {
 //请求出错处理
 }
});

当然,jquery还有很多简单变形的写法。



Tags:ajax   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
本人已经过原 Danny Markov 授权翻译在本教程中,我们将学习如何使用 JS 进行AJAX调用。1.AJAX术语AJAX 表示 异步的 JavaScript 和 XML。AJAX 在 JS 中用于发出异步网络请求...【详细内容】
2021-01-12  Tags: ajax  点击:(195)  评论:(0)  加入收藏
报错:Access to XMLHttpRequest at 'http://localhost:8080/SpringBootServer/testfile' from origin 'null' has been blocked by CORS policy: No 'Ac...【详细内容】
2020-09-03  Tags: ajax  点击:(57)  评论:(0)  加入收藏
跨域产生的原因: 浏览器限制。如果浏览器发现请求是跨域的时候,就会做校验,如果校验不通过就会报跨域的错误 跨域。发出去的请求只要域名、端口、协议中的任意一个与当前域不同...【详细内容】
2020-07-02  Tags: ajax  点击:(61)  评论:(0)  加入收藏
本文将详细解读JavaScript、ajax、jQuery是什么?他们可以实现什么?1、JavaScript定义:javaScript的简写形式就是JS,是由Netscape公司开发的一种脚本语言,一种广泛用于客户端Web开...【详细内容】
2020-04-29  Tags: ajax  点击:(55)  评论:(0)  加入收藏
反向Ajax技术,又称为服务器推技术,server push等。一般用于“在线客服”、“消息推送”、“即时通信”等功能中,比如新浪微博的私信功能,就是客户端不断的请求服务器并创建连接,...【详细内容】
2020-04-18  Tags: ajax  点击:(70)  评论:(0)  加入收藏
一、跨域问题的来源浏览器跨域处理原由:浏览器安全防护的“同源政策”影响。关于什么是“同源政策”,可以看这边文章,讲解比较详细易懂https://blog.csdn.net/dreamcatcher1...【详细内容】
2019-12-20  Tags: ajax  点击:(68)  评论:(0)  加入收藏
AJAX即“Asynchronous JavaScript and XML”(非同步的JavaScript与XML技术),指的是一套综合了多项技术的浏览器端网页开发技术。Ajax的概念由杰西·詹姆士·贾瑞特...【详细内容】
2019-12-10  Tags: ajax  点击:(73)  评论:(0)  加入收藏
在网上看了很久,发现数据的利用ajax提交数据到后台其实很简单,但是很多讲解的并不清楚,对于初学者来说,很多真的是看着有点糊涂,拿来直接用,又想去了解怎么回事,其实利用ajax提交数...【详细内容】
2019-10-18  Tags: ajax  点击:(166)  评论:(0)  加入收藏
目前web开发,大部分公司都用的是前后端分离模式,即前端专注于前端页面交互,后端专注于功能实现及提供web api接口。在某次新站点的开发过程中,为了网站的安全性,要求web站点使用h...【详细内容】
2019-10-18  Tags: ajax  点击:(949)  评论:(0)  加入收藏
一、ajax的简介Ajax被认为是(Asynchronous(异步) JavaScript And Xml的缩写)。现在,允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做Ajax.同步是指:发送方发出数据后,...【详细内容】
2019-09-24  Tags: ajax  点击:(120)  评论:(0)  加入收藏
▌简易百科推荐
1、通过条件判断给变量赋值布尔值的正确姿势// badif (a === 'a') { b = true} else { b = false}// goodb = a === 'a'2、在if中判断数组长度不为零...【详细内容】
2021-12-24  Mason程    Tags:JavaScript   点击:(6)  评论:(0)  加入收藏
给新手朋友分享我收藏的前端必备javascript已经写好的封装好的方法函数,直接可用。方法函数总计:41个;以下给大家介绍有35个,需要整体文档的朋友私信我,1、输入一个值,将其返回数...【详细内容】
2021-12-15  未来讲IT    Tags:JavaScript   点击:(20)  评论:(0)  加入收藏
1. 检测一个对象是不是纯对象,检测数据类型// 检测数据类型的方法封装(function () { var getProto = Object.getPrototypeOf; // 获取实列的原型对象。 var class2type =...【详细内容】
2021-12-08  前端明明    Tags:js   点击:(23)  评论:(0)  加入收藏
作者:一川来源:前端万有引力 1 写在前面Javascript中的apply、call、bind方法是前端代码开发中相当重要的概念,并且与this的指向密切相关。本篇文章我们将深入探讨这个关键词的...【详细内容】
2021-12-06  Nodejs开发    Tags:Javascript   点击:(19)  评论:(0)  加入收藏
概述DOM全称Document Object Model,即文档对象模型。是HTML和XML文档的编程接口,DOM将文档(HTML或XML)描绘成一个多节点构成的结构。使用JavaScript可以改变文档的结构、样式和...【详细内容】
2021-11-16  海人为记    Tags:DOM模型   点击:(35)  评论:(0)  加入收藏
入口函数 /*js加载完成事件*/ window.onload=function(){ console.log("页面和资源完全加载完毕"); } /*jQuery的ready函数*/ $(document).ready(function(){ co...【详细内容】
2021-11-12  codercyh的开发日记    Tags:jQuery   点击:(36)  评论:(0)  加入收藏
一、判断是否IE浏览器(支持判断IE11与edge)function IEVersion() {var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串var isIE = userAgent.indexOf("comp...【详细内容】
2021-11-02  V面包V    Tags:Javascript   点击:(40)  评论:(0)  加入收藏
Null、Undefined、空检查普通写法: if (username1 !== null || username1 !== undefined || username1 !== '') { let username = username1; }优化后...【详细内容】
2021-10-28  前端掘金    Tags:JavaScript   点击:(51)  评论:(0)  加入收藏
今天我们将尝试下花 1 分钟的时间简单地了解下什么是 JS 代理对象(proxies)?我们可以这样理解,JS 代理就相当于在对象的外层加了一层拦截,在拦截方法里我们可以自定义一些个性化...【详细内容】
2021-10-18  前端达人    Tags:JS   点击:(51)  评论:(0)  加入收藏
带有多个条件的 if 语句把多个值放在一个数组中,然后调用数组的 includes 方法。// bad if (x === "abc" || x === "def" || x === "ghi" || x === "jkl") { //logic } // be...【详细内容】
2021-09-27  羲和时代    Tags:JS   点击:(58)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条