ajax的重新学习,以及axios
首先在这次学习之前已经又过了简单的入门,并且在上学期vue的开发中对其中的ajax语法以及方法有所认识,但是还有很多别的框架不同种的写法,因此我需要掌握原生ajax的知识
一、对ajax的简单认识
ajax是一种以现有标准为基础的新方法,能够与服务器交换数据并且更新页面局部的技术,无需加载整个网页,
ajax是一种异步的js和mxl,一种创建快速动态网页的技术
xmlhttprequest是ajax的基础(xmlhttprequest是一个对象,用于与后台服务器交换数据)
要使用XmlHttpRequest必须检查运行浏览器是否支持它(老板浏览器支持ActiveXObject)
以下是检查并创建方法:
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
如果需要向服务器发送请求则使用对象的方法:
open(method,url(服务器上文件的位置),true(异步)/false(同步)),sent(仅支持post请求类型)
以下情况使用post:发送大量数据,无法使用缓存文件 指更新服务器上的文件,用户的私密输入;
如果希望向服务器发送请求,并传输数据给服务器,需要在url添加信息:
   xmlhttp.open("GET","demo_get2.asp?fname=Bill&lname=Gates",true);
  xmlhttp.send();
   *其中url所指向的文件可以是任何类型的,txt,xml又或者是服务器脚本类型:asp,php,jsp等
  如果要使用ajax的话,asyn必须设置为true,这样在执行到向服务器的请求等待(响应时),可以执行其他脚本,等响应完成后再对其处理
当使用 async=true 时,请规定在响应处于 onreadystatechange 事件中的就绪状态时执行的函数:
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","test1.txt",true);
xmlhttp.send();
当asyn为false时不使用onreadystatechange事件
把代码放到.send()语句后就行:
   xmlhttp.open("GET","test1.txt",true);
   xmlhttp.send();
 
     document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    如需获得服务器的响应,有两种返回值:reponsetext(返回字符串),reponsexml(返回xml类型的文件)
请求 books.xml 文件,并解析响应:
function loadXMLDoc()
{
var xmlhttp;  //提前定义好所需变量
var txt,x,i;  //提前定义好所需变量
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
//over创建xmlhttprequest对象
xmlhttp.onreadystatechange=function()   
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200) //判断服务器状态   readystate存有xmlhttprequest的状态,4代表请求完成并响应成功;status=200代表ok,404代表未找到页面
    {
    xmlDoc=xmlhttp.responseXML;
    txt="";
    x=xmlDoc.getElementsByTagName("title");
    for (i=0;i<x.length;i++)
      {
      txt=txt + x[i].childNodes[0].nodeValue + "<br />";
      }
    document.getElementById("myDiv").innerHTML=txt;
    }
  }
//over异步响应方法
xmlhttp.open("GET","/example/xmle/books.xml",true);
xmlhttp.send();     //注意一切方法定义声明好后再写向服务器请求的语句
}
ps:::解读以上程序:放请求发向服务器时,我们要执行一些基于响应的任务
每当readystate发生改变时就执行一遍onreadstatechange事件
onreadystatechange 事件被触发 5 次(0 - 4),对应着 readyState 的每个变化。 0:请求未初始化1:服务器已建立连接,2:请求已接受3:请求处理中
function loadxmldoc(url,fun) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = fun;
xmlhttp.open("GET",url,true);
xmlhttp.sent();
}
function myFunction()
{ loadxmldoc("/ajax/test1.txt",function()
{ if(xmlhttp.readystate ==4 && xmlhttp.status ==200)
{
documenti.queryselector('#abc').innerhtml = xmlhttp.responsetext;
}
});
ajax的重新学习,以及axios的更多相关文章
- 状态保持以及AJAX的初步学习
		
嘿嘿,今天学习的有点迷茫哦,主要学习把验证码使用在登录页面时间的一些逻辑,学习这个时间并没有那么的迷惑哦,可是自己写程序时间倒是有点反应迟钝,不过还好总是在最后搞清楚啦,另外就是一步一步的学习是接近项 ...
 - vue实现ajax请求(vue-resource和axios)
		
1.vue-resouce实现ajax请求 vue1中主要用vue-resouce实现ajax请求, 2.1 引用vue-resouce 引入axios,直接在index.html文件中引入; 或者在 ...
 - 最新JavaScript、Ajax典藏级学习资料下载分类汇总 (2011年12月21日更新)
		
其他网站开发相关资料 超强HTML和xhtml,CSS精品学习资料下载汇总 最新htm ...
 - vue 学习笔记—axios(替代vue-resource)
		
一.使用 1. 引入CDN的方式 https://unpkg.com/axios@0.16.2/dist/axios.min.js 或者 npm方式 npm install axios --sa ...
 - ajax具体实现学习记录
		
记录自己对ajax\的理解, 首先要明白ajax是为了解决什么问题,简单来讲就是为了局部刷新页面,而不刷新整个界面.就比如现在有一个实时热度的显示,它是不断变化的,所以你肯定要不停的从数据库当中获取热 ...
 - Ajax全面基础学习(二)
		
两种配置ajax的方式 $.ajax('url',{ 配置ajax}); $.ajax({ url : 'url' 其他ajax配置}) ajax的回调函数 $.ajax('url',{ //请求成功 ...
 - Ajax全面基础学习(一)
		
快捷方法: $.get(url,[data],[callback],[type])get方法的[data]将被链在url后面[callback]是请求成功后的回调,可以得到响应数据,如果请求失败,看不 ...
 - Ajax的进阶学习(二)
		
JSON和JSONP 如果在同一个域下,$.ajax()方法只要设置dataType属性即可加载JSON文件.而在非同域下,可以使用JSONP,但也是有条件的. Ajax进阶.html: <!D ...
 - Ajax的进阶学习(一)
		
在Ajax课程中,我们了解了最基本的异步处理方式.本章,我们将了解一下Ajax的一些全局请求事件.跨域处理和其他一些问题. 加载请求 在Ajax异步发送请求时,遇到网速较慢的情况,就会出现请求时间较长 ...
 - Ajax及jQuery学习
		
AJAX(Asynchronous JavaScript and XML),异步的javaScript与XML AJax中一个重要的对象是XMLHttpRequest. function ajaxSu ...
 
随机推荐
- jdbc封装工具类(连接池)
			
c3p0配置文件: c3p0-config.xml <c3p0-config> <!-- 使用默认的配置读取连接池对象 --> <default-config> & ...
 - DOS批处理自动定期清除生成的备份文件
			
此功能实现生产环境自动定期清除备份文件. @echo off rem 功能:只保留7天的备份,每天运行. rem 日期:2022.8.15 rem 制作人:zl rem 自动删除7天前的备份 rem ...
 - 如何使用css绘制三角形
			
背景 用迪卡侬官方主页进行页面练习,发现头部导航栏需要使用到梯形 分析 图形分解 通过图片我们可以发现该梯形可以分解成一个长方形和一个直角三角形,长方形:110*65:直角三角形:11*65(底边*另 ...
 - 【Windows】Microsoft Store 应用列表
			
更新优质微软商店应用: 『购买 WSA工具箱 - Microsoft Store zh-CN』 『购买 Apk安卓安装器 - Microsoft Store zh-CN』 『购买 KMS激活: Win ...
 - vs输出重定向
			
1.右键点击解决工程->项目属性 2.配置属性->生成事件->生成后事件 在命令行中输入:"$(TargetPath) >$(outdir)\1.txt" ...
 - <<运算?&=、|=、 ^=、<<=、>>=的意思? 十六进制前缀是 0x。
			
<<运算? a<<b 表示把a转为二进制后左移b位(在后面添加 b个0).例如100的二进制表示为1100100,100左移2位后(后面加2个零):1100100<< ...
 - mysql8 更改root密码(windows)
			
1.停止服务 net stop mysql; 2.控制台输入 mysqld --console --shared-memory --skip-grant-tables 3.重新打开一个窗口,进入bin ...
 - C++ primer笔记 -标准库类型
			
最重要的两个标准库类型:string和vector string 类型的输入操作符: 1.读取并忽略开头所有的空白符 2.读取字符直至再次遇到空白字符,读取终止 string对象的基本操作: stri ...
 - fftw安装
			
1. 下载fftw 2.tar -zxvf fftw.tar.gz 3. ./configure --prefix=path --enable-sse2 --enable-avx --enable-f ...
 - C++实现链式表示多项式加法运算
			
#include<iostream>#include<cstdlib>using namespace std;#define MAXSIZE 100#define OK 1#d ...