AJAX学习(1)

基础确认:HTML、CSS、JavaScript

AJAX可以:

Ajax 的核心是 XMLHttpRequest 对象,用于和服务器交换数据。

xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();

异步和同步的区别

异步请求就当发出请求的同时,浏览器可以继续做任何事,Ajax发送请求并不会影响页面的加载与用户的操作,相当于是在两条线上,各走各的,互不影响。一般默认值为true。异步请求可以完全不影响用户的体验效果,无论请求的时间长或者短,用户都在专心的操作页面的其他内容,并不会有等待的感觉。

同步请求即是当前发出请求后,浏览器什么都不能做,必须得等到请求完成返回数据之后,才会执行后续的代码,相当于是排队,也就是说,当JS代码加载到当前ajax的时候会把页面里所有的代码停止加载,页面处于一个假死状态,当这个ajax执行完毕后才会继续运行其他代码页面解除假死状态(即当ajax返回数据后,才执行后面的function)。

方法 描述 open(

规定请求的类型、URL 以及是否异步处理请求。

  • method:请求的类型;GET 或 POST
  • url:文件在服务器上的位置
  • async:true(异步)或 false(同步)

send(

将请求发送到服务器。

  • string:仅用于 POST 请求

一般建议使用 post方式, get方式有概率获取到的是缓存里面的结果

//创建 XMLHttpRequest 对象的语法
variable=new XMLHttpRequest();
//老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象:
variable=new ActiveXObject("Microsoft.XMLHTTP");

当然也可以避免这个情况, 在URL 添加一个唯一的 ID既可以避免

xmlhttp.open("GET","/try/ajax/demo_get.php?t=" + Math.random(),true);
xmlhttp.send();

get和post发送带信息的区别

//get
xmlhttp.open("GET","/try/ajax/demo_get2.php?fname=Henry&lname=Ford",true);
xmlhttp.send();
//post
xmlhttp.open("POST","/try/ajax/demo_post2.php",true);
//设置请求头
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
//post内容,键值对,& 符号分割
xmlhttp.send("fname=Henry&lname=Ford");

方法 描述 setRequestHeader(

向请求添加 HTTP 头。

  • header: 规定头的名称
  • value: 规定头的值

现在基本上都不用这种原生的ajax了,框架内的更好用

如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。

属性 描述 responseText 获得字符串形式的响应数据。 responseXML 获得 XML 形式的响应数据。

responseText 属性

如果来自服务器的响应并非 XML,请使用 responseText 属性。

responseText 属性返回字符串形式的响应,因此您可以这样使用:

XMLHttpRequest 对象的三个重要的属性:

属性 描述 onreadystatechange 存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。 readyState

存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。

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

status 200: “OK”

404: 未找到页面

Original: https://www.cnblogs.com/Aons0812/p/16539594.html
Author: Aons谦
Title: AJAX学习(1)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/594293/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • IO流详解

    1.1 File类概述和构造方法 File:它是文件和目录路径名的抽象表示 文件和目录是可以通过File封装成对象的 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个…

    Java 2023年6月6日
    087
  • Dart 初探 (一)

    前言 Dart 是 Google 为 Flutter 开发的一款用于 网页编程的语言,其类似于 Javascript,也是一种面向对象的语言,但其采用 基于类的编程,语法风格接近C…

    Java 2023年6月7日
    0106
  • 求助! 关于javamial 获取邮件正文文本

    一个带有附件的邮件message的 (Multipart) message.getContent() Multipart的 getCotentType第一级为 1个part:类型:…

    Java 2023年6月5日
    081
  • Java多线程并发编程

    多线程并发 在多核CPU中,利用多线程并发编程,可以更加充分地利用每个核的资源 在Java中,一个应用程序对应着一个JVM实例(也有地方称为JVM进程),如果程序没有主动创建线程,…

    Java 2023年6月9日
    091
  • nginx 文档

    https://skyao.gitbooks.io/learning-nginx/content/documentation/HTTP_load_balancer.html htt…

    Java 2023年5月30日
    080
  • 九、Java异常机制

    异常机制 什么是异常 实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读…

    Java 2023年6月7日
    089
  • Spring Boot缓存应用实践

    缓存是最直接有效提升系统性能的手段之一。个人认为用好用对缓存是优秀程序员的必备基本素质。 本文结合实际开发经验,从简单概念原理和代码入手,一步一步搭建一个简单的二级缓存系统。 一、…

    Java 2023年5月30日
    092
  • 3、StringBuffer类

    StringBuffer类 java.lang.StringBuffer代表可变的字符序列,可以对字符串内容进行增删 很多方法与String相同,但StringBuffer是可变长…

    Java 2023年6月7日
    091
  • springboot1.5.4 log4j

    resources下面添加: log4j.properties: # log4j.rootCategory=INFO, stdout, file, errorfile log4j….

    Java 2023年5月30日
    0140
  • 并行流的线程安全问题(parallelStream)

    并行流的线程安全问题(parallelStream) 问题代码 Map madData = new HashMap(); List list = paramVo.getList()…

    Java 2023年6月7日
    094
  • 读取resources下的资源

    这里我通过一个普通的SpringBoot项目进行测试,当然其他项目也都是通用的。 将其中的Test修改为你的类名即可: java;gutter:true; import lombo…

    Java 2023年6月6日
    0100
  • 11.多线程、多进程和线程池编程

    1.1.线程同步Lock和Rlock (1)Lock 用锁会影响性能 用锁会产生死锁 import threading from threading import Lock tot…

    Java 2023年5月29日
    0212
  • 分享一例同一系统里不同服务之间通信的设计方案

    优付系统结构如下。一个数据库之上,有商户接口(RestAPI)、运营后台(OMS)、商户门户这3个独立SSM应用,三者有各自不同的功能处理逻辑。 现在呢,要做一个补偿工具。当付款单…

    Java 2023年6月15日
    079
  • Java实现斗地主(集合综合练习)

    ​学完了集合后我们可以开始做一个简易版的 “斗地主 ” 了,但是呢咱们这个斗地主只能实现制造牌,洗牌、发牌、看牌这几个简单的功能,并不是我们玩的 &#822…

    Java 2023年6月15日
    088
  • Spring和SpringMvc父子容器

    posted @2021-11-04 17:57 天宇轩-王 阅读(28 ) 评论() 编辑 Original: https://www.cnblogs.com/dalianpai…

    Java 2023年5月30日
    086
  • 2022-8-23 css

    ✏️CSS 一个标签可以有多个css样式浏览器处理冲突的能力,如果一个属性通过两个相同的选择器设置到这个元素上,会根据样式的层叠规则样式的层叠规则——按照样式的声明顺序来层叠的【就…

    Java 2023年6月13日
    086
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球