AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)

原生

例子

点击按钮,访问服务器上的ajax_info.txt文件,获得txt文件的内容,并修改显示的文本

<!DOCTYPE html>
<html>
<head>
<script>
var xmlhttp;//xmlhttp对象
function loadXMLDoc(url,cfunc){
//不同的浏览器,或得xmlhttp对象所调用的方法不同
if (window.XMLHttpRequest){
// IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}else{
// IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
//回调函数
xmlhttp.onreadystatechange=cfunc;
xmlhttp.open("GET",url,true);
xmlhttp.send();
}
function myFunction(){
//访问服务器上的/try/ajax/ajax_info.txt,并回调函数
loadXMLDoc("/try/ajax/ajax_info.txt",function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
});
}
</script>
</head>
<body> <div id="myDiv"><h2>使用 AJAX 修改文本内容</h2></div>
<button type="button" onclick="myFunction()">修改内容</button> </body>
</html>

参考链接菜鸟教程

XMLHttpRequest对象

ajax的核心对象,是服务器和客户端中间的桥梁,客户端向服务器发送请求和客户端获得服务器响应都是通过此对象的属性和方法来进行。

var xmlhttp;
//window.XMLHttpRequest不为空,就是true
if (window.XMLHttpRequest){
// IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}else{// IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

发送请求

  • open(method,url,async) 连接服务器

    • method:请求的类型;GET 或 POST
    • url:文件在服务器上的位置
    • async:true(异步)或 false(同步),推荐使用异步
  • send(string) 发送请求

    如果请求方式为get,send中的参数可以省略不写

onreadystatechange事件

xmlhttp对象有两个属性readyStatestatus

readyState发生改变,就会触发onreadystatechange事件

readyState有以下几种状态

  • 0: 请求未初始化
  • 1: 服务器连接已建立
  • 2: 请求已接收
  • 3: 请求处理中
  • 4: 请求已完成,且响应已就绪

status有两种状态

  • 200: "OK"
  • 404: 未找到页面

服务器响应

使用 XMLHttpRequest 对象的 responseTextresponseXML属性可以获得来自服务器的响应数据

  • responseText 获得字符串形式的响应数据。
  • responseXML 获得 XML 形式的响应数据。

JQuery实现ajax

1. $.ajax(url,[settings])

最基本的ajax方法

2. load(url,[data],[callback])

从服务器载入数据并且将返回的HTML代码并插入至匹配的元素中。

data是传递给服务器的数据参数 ,可以是一个普通的对象或字符串

提供了一个回调函数complete(responseText, textStatus, XMLHttpRequest),当HTML代码并插入至匹配的元素中就会被调用

$('#mydiv').load("test.html");

//这里的first.html是当前同级目录的一个html文件
$('#mydiv').load('first.html',function (data,status) {
console.log(data);
console.log(status);//状态,成功为success,失败则为error
});

3. $.get(url,[data],[fn],[type])

使用一个HTTP GET请求从服务器加载数据

//这里实现的效果与上面的load一致
$.get("first.html",function(data){
$('#mydiv').html("test.html");
});

4. $.post(url,[data],[fn],[type])

使用一个HTTP POST请求从服务器加载数据,与上面get类似

5. $.getJSON(url,[data],[fn])

获得json数据并自动解析自动解析

$.getJSON("test.js", function(json){
console.log(json.users[3].name);
});

6. $.getScript(url,[callback])

使用一个HTTP GET请求从服务器加载并执行一个 JavaScript 文件

参考链接:jQuery文档

JQuery学习笔记(4)——ajax的更多相关文章

  1. jQuery学习笔记之Ajax用法详解

    这篇文章主要介绍了jQuery学习笔记之Ajax用法,结合实例形式较为详细的分析总结了jQuery中ajax的相关使用技巧,包括ajax请求.载入.处理.传递等,需要的朋友可以参考下 本文实例讲述了j ...

  2. jQuery学习笔记(Ajax)

    jQuery对Ajax操作进行了封装,在jQuery中$.ajax方法属于最底层的方法,第2层是$.load().$.get().$.post()方法,第3层是$.getScript()和$.getJ ...

  3. 初步学习jquery学习笔记(六)

    jquery学习笔记六 AJAX 简介 AJAX 是与服务器交换数据的技术,它在不重载全部页面的情况下,实现了对部分网页的更新. load() 方法 load() 方法从服务器加载数据,并把返回的数据 ...

  4. jQuery学习笔记之jQuery的Ajax(3)

    jQuery学习笔记之jQuery的Ajax(3) 6.jQuery的Ajax插件 源码地址: https://github.com/iyun/jQueryDemo.git ------------- ...

  5. jQuery学习笔记(一)jQuery选择器

    目录 jQuery选择器的优点 基本选择器 层次选择器 过滤选择器 表单选择器 第一次写博客,希望自己能够长期坚持,以写博客的方式作为总结与复习. 最近一段时间开始学习jQuery,通过写一个jQue ...

  6. jQuery 学习笔记

    jQuery 学习笔记   一.jQuery概述    宗旨: Write Less, Do More.    基础知识:        1.符号$代替document.getElementById( ...

  7. jQuery学习笔记(一):入门

      jQuery学习笔记(一):入门 一.JQuery是什么 JQuery是什么?始终是萦绕在我心中的一个问题: 借鉴网上同学们的总结,可以从以下几个方面观察. 不使用JQuery时获取DOM文本的操 ...

  8. jQuery学习笔记 - 基础知识扫盲入门篇

    jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...

  9. JQuery学习笔记——层级选择器

    JQuery学习笔记--层级选择器 上一篇学习了基础的五种选择,分别是id选择器,class选择器,element选择器,*选择器 和 并列选择器.根据手册大纲,这篇学习的是层级选择器. 选择器: 1 ...

  10. jQuery学习笔记之插件开发(4)

    jQuery学习笔记之插件开发(4) github源码地址 插件:了让原有功能的增强. 1.插件的种类(3种):局部.全局.选择器插件 1.1封装对象方法的插件 这种类型的插件是把一些常用或者重复使用 ...

随机推荐

  1. a minimum of subsistence

    A hundred years ago it was assumed and scientifically "proved" by economists that the laws ...

  2. 高阶组件&&高阶函数(一)

    antd里面的form表单方面,遇到一个高阶函数,以及高阶组件,于是看了一下这方面内容,前辈们的文章写得也非常详细,这里就稍微kobe一下 高阶函数与高阶组件 高阶函数: 高阶函数,是一种特别的函数, ...

  3. Redis分布式缓存实现

    基于redis分布式缓存实现 第一:Redis是什么? Redis是基于内存.可持久化的日志型.Key-Value数据库高性能存储系统,并提供多种语言的API. 第二:出现背景 数据结构(Data S ...

  4. plantuml-绘制状态图和活动图和部署图​

    背景 状态图:对象的所有状态,以及基于事件发生的状态改变的过程: 活动图:用例的工作流程: 部署图:系统的软硬件物理体系结构: 状态图 基本语法 元素 语法 说明 开始和结束状态 [*] 标识开始和结 ...

  5. FLV提取AAC音频单独播放并实现可视化的频谱

    如上图,要实现对FLV直播流中音频的识别,并展示成一个音频相关的动态频谱. 一. 首先了解下什么是声音? 能量波,有频率有振幅,频率高低就是音调,振幅大小就是音量:采样率是对频率采样,采样精度是对幅度 ...

  6. SpringBoot无法访问webapp目录下的文件

    springboot version:2.1.9-RELEASE 解决方案: 在pom中添加此段 完美解决,代码的作用是让src/main/webapp在编译的时候在resoureces路径下也生成w ...

  7. SSM整合1(springMVC+mybatis)

    整合目标:控制层采用springmvc.持久层使用mybatis实现 整合思路: Dao层: 1.SqlMapConfig.xml,空文件即可,但是需要文件头. 2.applicationContex ...

  8. java学习第一步-工欲善其事必先利其器

    Java SE 磨刀不误砍柴工,工欲善其事必先利其器,咱们先搞好硬件配置,才能顺利的搞好Java学习 阶段一 1.认识Java 2.java发展史及用户 3.配置Java环境 4.JDK8下载安装 5 ...

  9. iOS多线程定时器

    在使用定时器时,我们经常使用NSTimer,但是由于NSTimer会受RunLoop影响,当RunLoop处理的任务很多时,就会导致NSTimer的精度降低,所以在一些对定时器精度要求很高的情况下,应 ...

  10. 微信小程序支付功能讲解(1)

    前言:虽然小程序做过很多,但是一直觉得微信支付功能很是神秘,现在终于有机会接触心里还是有点小激动的,经过一番折腾发现支付也不过如此,在此记录下支付功能的实现过程 小程序的官方文档介绍到发起微信支付即调 ...