IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> jQuery中的Ajax -> 正文阅读

[JavaScript知识库]jQuery中的Ajax

一、认识Ajax

1.概念

  • Ajax = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)
  • Ajax不是编程语言,是与服务器交换数据并更新部分网页的艺术,其可以实现局部刷新

2.Ajax的优点

  • 实现局部刷新,提供连续的用户体验,操作更方便
  • 异步与服务器通信,不打断用户的操作
  • 减少服务器与带宽的负担,前端与后端负载均衡
  • 界面与应用分离,数据与呈现分离
  • 规范应用,不需要下载浏览器插件或小程序(需用户允许js在浏览器上执行)

3.Ajax的缺点

  • 破坏了浏览器的后退机制:动态更新页面后,用户无法回到前一个页面状态(浏览器仅能记忆历史记录中的静态页面)
  • ajax存在安全问题,ajax的逻辑可以对客户端的安全扫描技术隐藏起来,允许黑客从远端服务器上建立新的攻击。
  • 对搜索引擎的支持比较弱。如果使用不当,AJAX会增大网络数据的流量,从而降低整个系统的性能。

4.Ajax的原理

在这里插入图片描述

  • 异步:Ajax通过浏览器的内置对象XMLHttpRequest来发送异步请求,异步请求不会妨碍客户端的任何操作。浏览器在渲染页面时,让XHR去向服务器请求数据,得到数据后,前端再把数据渲染到页面
  • 同步:服务器和XHR同时去请求数据,知道XHR请求到数据,前端才开始渲染页面,而在等待的过程中页面一直是白屏的,没有渲染。

5.http基础

http基础

二、jQuery中的Ajax

jQuery中,$.ajax()方法是最底层的方法,第2层是load()$.get(),和$.post(),第3层是$.getScript()$.getJSON()方法。

1.load()方法

  • load(url,[data],[callback]):在这里插入图片描述
  • load()方法可以筛选需要载入的HTML文档,如果只要加载页面内的某些内容,可以使用load(URL selector)方法的URL参数来达到目的。通过为URL参数指定选择符,可以从HTML文档里筛选所需要的的内容。URL和选择器之间有一个空格 。比如载入emo.html里面的li元素
  • load()方法的传递方式根据参数data来自动指定:如没有参数传递,则采用get方式;反之采用post方式
  • load()方法提供了回调函数(用于必须在加载完成后才能继续的操作),该函数有三个参数
$("#button").load("emo.html li",{name:"rain",age"18"},function(responseText,textStates,XMLHttpRequest){
   responseText:请求返回的内容
   textStates:请求状态:success   error  notmodified  timeout4种
   XMLHttpRequest:XMLHttpRequest对象
  });

ps:load()方法中,无论Ajax请求是否成功,只要请求完成,回调函数就会被触发

2.$.get()方法

  • $.get(url,[data],[callback],[type])在这里插入图片描述
  • 当发送请求成功后。服务器接受到传递的data数据并成功返回,前端通过回调函数将返回的数据显示到页面上
  • $.get()方法的回调函数只有两个参数
function(data,textStatus){
//data:返回的内容:XML文档、JSON文件、HTML片段等
//textStatus:请求状态:success   error  notmodified  timeout4种
}
  • 304 Not Modified不是服务器发出的错误,而是一种缓存机制。它是服务器所承载的业务系统在开发时为了节省带宽和提升浏览器的体验
  • timeout问题超时
$(function(){
$("#id").click(function(){
$.get("emo.html",{
username:$("#user").val(),
age:$("#age").val()
},function(data,textStatus{
var username=data.username;
var age=data.age;
var txtHtml=<div>拒绝</div>
】$(#resText).html(txtHtml);
},"json");
})
});

3.$.post()方法

其跟$.get()方法的结构和使用方式相同,getpost方式提交的所有数据都可以通过$_REQUEST[]来获取
区别:

  • post的安全性高于get;如果以get方式请求,请求参数会拼接到url后面,安全性性低,以post方式请求,请求参数会包裹在请求体中,安全性更高
  • 数量区别:get方式传输的数据量小,规定不能超过2kb,post方式请求数据量大,没有限制。
  • 传输速度:get的传输速度高于post

4.$.getScript()方法

  • $.getScript(url,fn):该方法可以在需要的时候直接加载js文件,且不需要对js文件进行处理,js文件会自动执行,不需要等待页面加载时就获取全部的js文件
  • fn:回调函数

5. $.getJson( )方法

  • $.getJson(url,回调函数 ):用于加载JSON文件,与$.getScript(url,fn)方法用法相同
  • 在回调函数里可以处理返回的数据,通常需要遍历返回的数据,可用for循环,也可用$.each()函数
  • $.each()函数:可遍历对象和数组,第一个参数是一个数组或者对象;第二个参数是回调函数,而回调函数有两个参数:第1个是对象的成员或数组的下标,第2个是变量或内容
$(function(){
  $("button").click(function(){
    $.getJSON( "emo.json" , function( data ){
       $.each( data , function(index,comment){
         编写代码
      }
    })
  })
})

6.$.ajax()方法

  • 前面5种方法都是基于$.Ajax()方法构建的,可以代替前面的所有方法
  • 其还可设置beforeSend(提交前回调函数)、error(请求失败后处理)、success(请求成功后处理)、complete(请求完成后处理)回调函数,通过设定这些回调函数,可以给用户更多的Ajax提示信息
  • $.ajax(options):该方法只有一个参数,该参数是一个对象,包含了$.ajax()方法所需要的请求设置和回调函数,参数都以键值对的形式存在,所有参数可选在这里插入图片描述
    在这里插入图片描述
    如:
$(function(){
$('#send').click(function(){
$.ajax({
type:"GET",
url:"test.js",
dataType:"script"
});
});
})

7.jQuery中的Ajax全局事件

jQuery提供了一些自定义全局函数,能够为各种与Ajax相关的事件注册回调函数

  • 当Ajax请求时,会触发ajaxStart()方法的回调函数
  • 当Ajax请求结束后,会触发ajaxStop()方法的回到函数在这里插入图片描述
  • 如果页面中有其他的ajax,但该ajax的全局事件仍然有效在这里插入图片描述

参考:
jQuery-Ajax
ajax工作原理
ajax-jQuery原理
http基础
ajax原理

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-02 11:15:56  更:2021-09-02 11:18:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 15:43:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码