首先在这次学习之前已经又过了简单的入门,并且在上学期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的更多相关文章

  1. 状态保持以及AJAX的初步学习

    嘿嘿,今天学习的有点迷茫哦,主要学习把验证码使用在登录页面时间的一些逻辑,学习这个时间并没有那么的迷惑哦,可是自己写程序时间倒是有点反应迟钝,不过还好总是在最后搞清楚啦,另外就是一步一步的学习是接近项 ...

  2. vue实现ajax请求(vue-resource和axios)

    1.vue-resouce实现ajax请求 vue1中主要用vue-resouce实现ajax请求, 2.1 引用vue-resouce 引入axios,直接在index.html文件中引入; 或者在 ...

  3. 最新JavaScript、Ajax典藏级学习资料下载分类汇总 (2011年12月21日更新)

    其他网站开发相关资料            超强HTML和xhtml,CSS精品学习资料下载汇总                                               最新htm ...

  4. vue 学习笔记—axios(替代vue-resource)

    一.使用 1. 引入CDN的方式   https://unpkg.com/axios@0.16.2/dist/axios.min.js  或者 npm方式 npm install axios --sa ...

  5. ajax具体实现学习记录

    记录自己对ajax\的理解, 首先要明白ajax是为了解决什么问题,简单来讲就是为了局部刷新页面,而不刷新整个界面.就比如现在有一个实时热度的显示,它是不断变化的,所以你肯定要不停的从数据库当中获取热 ...

  6. Ajax全面基础学习(二)

    两种配置ajax的方式 $.ajax('url',{ 配置ajax}); $.ajax({ url : 'url' 其他ajax配置}) ajax的回调函数 $.ajax('url',{ //请求成功 ...

  7. Ajax全面基础学习(一)

    快捷方法: $.get(url,[data],[callback],[type])get方法的[data]将被链在url后面[callback]是请求成功后的回调,可以得到响应数据,如果请求失败,看不 ...

  8. Ajax的进阶学习(二)

    JSON和JSONP 如果在同一个域下,$.ajax()方法只要设置dataType属性即可加载JSON文件.而在非同域下,可以使用JSONP,但也是有条件的. Ajax进阶.html: <!D ...

  9. Ajax的进阶学习(一)

    在Ajax课程中,我们了解了最基本的异步处理方式.本章,我们将了解一下Ajax的一些全局请求事件.跨域处理和其他一些问题. 加载请求 在Ajax异步发送请求时,遇到网速较慢的情况,就会出现请求时间较长 ...

  10. Ajax及jQuery学习

    AJAX(Asynchronous JavaScript and XML),异步的javaScript与XML AJax中一个重要的对象是XMLHttpRequest. function ajaxSu ...

随机推荐

  1. linux 复合页( Compound Page )的介绍

    1.复合页的定义: 复合页(Compound Page)就是将物理上连续的两个或多个页看成一个独立的大页,它可以用来创建hugetlbfs中使用的大页(hugepage),  也可以用来创建透明大页( ...

  2. 【视频】R语言生存分析原理与晚期肺癌患者分析案例|数据分享|附代码数据

    原文链接:http://tecdat.cn/?p=10278 最近我们被客户要求撰写关于生存分析的研究报告,包括一些图形和统计输出. 生存分析(也称为工程中的可靠性分析)的目标是在协变量和事件时间之间 ...

  3. CToolsDetachBehaviors

    CTools dispatches the event "CToolsDetachBehaviors" when the modal gets closed. Careful th ...

  4. Fortran 笔记之 继承和聚合

    继承(类扩展)和聚合 参考自Introduction to Modern Fortran for the Earth System Sciences 我们在3.3部分的开头提到过,OOP范式通常会导致 ...

  5. PyTables文件格式、PyTables 文件支持的数据类型

    翻译自 https://www.pytables.org/usersguide/file_format.html,http://www.pytables.org/usersguide/datatype ...

  6. ERA5气压层数据驱动WRF的一些问题

    感谢Dawn的建议,兰溪之水的WRF教程 参考了一些经验,并结合实际后,成功用ERA5驱动WRF.实际上,用ERA5数据驱动WRF的方法和用ERA-Interim 数据驱动WRF极其类似. 总结几点是 ...

  7. VS Code 快速下载

    最近在官网下载Visual Studio Code时,下载速度特别慢,经过搜索后发现,将下载地址前部分更换为国内地址后,下载速度飞快. 具体步骤如下: VSCodeSetup-x64-1.72.0 官 ...

  8. 图片上传造成VS关闭

    原来的地方:https://q.cnblogs.com/q/129719/ VS2019开启调试,测试图片上传的时候,一点到图片上传,直接导致VS调试崩掉,返回 程序"[14764] iis ...

  9. oracle中将同一组的数据拼接(转)

    需要用wm_concat函数来实现. 如目前在emp表中查询数据如下: 要按照deptno相同的将ename以字符串形式合并,可用如下语句: 1 select deptno,wm_concat(ena ...

  10. chrome浏览器启用es6语法支持,初次体验浏览器端模块化加载

    医院项目,记录下,花了一个晚上的时间. 注意:最新版本的chrome浏览器已支持module语法,需要在web服务器环境下运行! 注:chrome76版本及以上不再需要设置了,浏览器已默认支持,至于从 ...