热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ajax和JSON助理解性概念图论说明

AJAX技术AJAXAsynchronousJavaScriptandXML(异步的JavaScript和XML)Ajax是JavaScript、XM


AJAX 技术



AJAX = Asynchronous Javascript and XML(异步的 Javascript 和 XML)
Ajax 是Javascript、XML、CSS、DOM等多种已有技术的组合,可以实现客户端的异步请求操作。
从而可以实现在不需要刷新页面的情况下与服务器进行通信,减少了用户的等待时间,减轻了服务器和带宽的负担,提供更好的服务响应。
传统的Web应用采用同步交互的形式,即用户向服务器发送一个请求,服务器都会将一个整体的页面进行刷新,并重新生成代码。
采用了AJAX技术之后,就可以实现局部的内容变更,而不用再进行整体的页面刷新,显然处理的性能要比前者高很多。

局部刷新

在这里插入图片描述

同步和异步交互
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述



AJAX 实现步骤



Ajax使用的技术中,最核心的技术就是XMLHttpRequest,它是一个具有应用程序接口的Javascript对象,能够使用超文本传输协议(HTTP)连接一个服务器。
通过XMLHttpRequest对象,Ajax可以像桌面应用程序一样只同服务器进行数据层面的交换,
而不用每次都刷新页面,也不用每次都将数据处理的工作交给服务器来完成,这样既减轻了服务器负担又加快了响应速度、缩短了用户等待的时间。

1. 创建 XMLHttpRequest 对象
var xhr = new ActiveXObject(“Microsoft.XMLHTTP”); IE低版本浏览器

var xhr = new XMLHttpRequest(); 适用于现在的大多数版本

2. 和服务器建立连接

XMLHttpRequest对象的open()方法来完成

open(“method”,“URL”[,asyncFlag[,“userName”[, “password”]]])

在这里插入图片描述

3. 设置回调函数

XMLHttpRequest对象的onreadystatechange属性来完成
onreadystatechange属性用于指定状态改变时所触发的事件处理器。在Ajax中,每个状态改变时都会触发这个事件处理器,通常会调用一个Javascript函数。
xhr.onreadystatechange = getResult;
readyState属性用于获取请求的状态。

在这里插入图片描述

XMLHttpRequest对象的属性
responseText属性用于获取服务器的响应,表示为字符串。
status属性用于返回服务器的HTTP状态码。

在这里插入图片描述

4. 向服务器发送请求

向服务器发送请求。XMLHttpRequest对象的send()方法可以实现向服务器发送请求,该方法需要传递一个参数,如果发送的是GET请求,可以将该参数设置为null status属性用于返回服务器的HTTP状态码。

xhr.send(null);

如果发送的是POST请求,可以通过该参数指定要发送的请求参数,例如下面的代码:

var param="user="+form1.user.value+"&pwd=
"+form1.pwd.value+"&email="+form1.email.value; //组合参数
xhr.send(param); //向服务器发送请求

需要注意的是:在发送POST请求前,还需要设置正确的请求头,即需要在 xhr.send(param);语句之前添加以下代码:

xhr.setRequestHeader(“Content-Type”,“application/x-www-form-urlencoded”);



处理服务器响应



在向服务器发送请求时,需要通过XMLHttpRequest对象的onreadystatechange属性指定一个回调函数,用于处理服务器响应。在这个回调函数中,首先需要判断服务器的请求状态,保证请求已完成,然后再根据服务器的HTTP状态码,判断服务器对请求的响应是否成功,如果成功,则获取服务器的响应反馈给客户端。
XMLHttpRequest对象提供了两个用来访问服务器响应的属性,一个是responseText属性,返回字符串响应,另一个是responseXML属性,返回XML响应。

function getResult() {if (xhr.readyState == 4) { // 判断请求状态if (xhr.status == 200) { // 请求成功,开始处理返回结果alert(xhr.responseText); // 显示判断结果} else { // 请求页面有错误alert("您所请求的页面有错误!");}}
}

如果需要将响应结果显示到页面的指定位置,也可以先在页面的合适位置添加一个

或标记,将设置该标记的id属性(如div_result),然后在回调函数中应用以下代码显示响应结果。

document.getElementById("div_result").innerHTML= xhr.responseText;

一个完整的实例——用户注册时检测用户名是否唯一



JSON 格式数据



如果JSON 指的是 Javascript 对象表示法(Javascript Object Notation)
JSON 是轻量级的文本数据交换格式
JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
JSON 具有自我描述性,更易理解

{key1 : value1, key2 : value2, ... keyN : valueN }

var json = {sid:1,sname:"zs",sex:"男" };
var json2 = {"sid":1,"sname":"zs","sex":"男" };
var json3 = [{"sid":1,"sname":"zs1","sex":"男"},{"sid":2,"sname":"zs2","sex":"男"}]
alert(json2.sname);
alert(json3[1].sname);



JSON 格式数据



在这里插入图片描述


推荐阅读
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
author-avatar
手机用户2502940275
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有