文章目录

  • Ajax
    • 0、第四阶段概述
      • 本阶段课程内容:
      • 哪些感觉比较难?
    • 1、全局刷新 和局部刷新
    • 2、异步对象
    • 3、Ajax
    • 4、Ajax中使用异步对象
      • (1)创建异步对象
      • (2)给异步对象绑定事件
        • 异步对象的属性readyState
        • 异步对象的属性 status
      • (3)初始异步请求对象
      • (4)使用异步对象发送请求
        • 怎么能获取服务器端返回的数据?
    • 5、全局刷新的例子

Ajax

0、第四阶段概述

本阶段课程内容:

  1. 前端内容:ajax,jquery
  2. 动态代理
  3. maven:项目的构建工具
  4. mybatis:访问数据库的框架
  5. spring:管理和创建对象的构架
  6. springmvc:做web开发的

前面的1-3阶段是 小学部分

第四阶段: 初中部分。

  1. 前端内容:ajax,jquery —JavaScript , Dom, Html,Css

    1. 动态代理:反射
    2. mybatis: —JDBC的升级(创建Connection,执行sql 得到ReultSet, 关闭资源)
    3. spring: — 看做是创建管理对象,之前是 new Student() ,new StudentDao().
    4. springmvc: —servlet的升级,使用servlet接收请求,现在使用springmvc做servlet的事情

哪些感觉比较难?

反射:先初级入门,经验多了后,再看就好多了

js: 主要是用的少

1、全局刷新 和局部刷新

全局刷新:浏览器输入url地址,网页页面全部发生改变,数据传输量大。

局部刷新:还是原来的页面,只有局部页面发生改变,数据传输量小。

eg1:级联刷新

浏览器只有部分发生变化

eg2:搜索列表

2、异步对象

  • 内存中可以有多个异步对象,发请求,和获取数据。

  • AJax就是实现异步刷新的一种技术

  • XmlHttpRequest就一种异步对象,存在于浏览器内存之中

总结:

ajax是用来做局部刷新的

局部刷新使用的核心就是异步对象(XmlHttpRequest)

这个异步对象存在于浏览内存中的

使用js语法 创建和使用 XmlHttpRequest 对象

3、Ajax

Ajax :Asynchronous JavaScript and XML(异步的JS 和XML)

Asynchronous :异步的意思

js:js脚本,在浏览器中执行

and: 和

xml:是一种数据格式

  • ajax是一种做局部刷新的新方法,不是一种语言。

  • ajax包含的技术主要有js,dom,css,xml等等, 核心 是js 和xml.

    • js:负责创建异步对象,发送请求,更新页面的dom对象。 ajax请求需要服务器端的数据。

    • xml:网络中 数据传输的数据格式 . (后来用json替换了xml)

4、Ajax中使用异步对象

(1)创建异步对象

​ var xmlHttp = new XMLHttpRequest();

(2)给异步对象绑定事件

​ onreadystatechange: 当异步对象发起请求,获取 了数据就会触发这个事件。这个事件需要指定一个函数,在函数中处理状态的变化。

例如:

xmlHttp.onreadystatechange = function(){处理请求的状态变化 if(xmlHttp.readyState == 4 && xmlHttp.status == 200){//可以处理服务器端的数据,更新当前页面}}

​ 因为是网络请求,有很多状态,涉及网络的传输和网络的通信,以及请求不同点的变化,这些请求的状态变化,用readyState属性来表示。

异步对象的属性readyState
  • 表示异步对象请求的状态变化

异步对象的属性 status
  • 表示网络请求的状况的,200,404,500

    需要是当status == 200 时,表示当网络请求是成功的

(3)初始异步请求对象

​ 异步 的方法 open().

​ xmlHttp.open(请求方式 get| post, “服务器端的访问地址”,同步|异步请求 默认是true)

​ 例如:

​ xmlHttp.open(“get”,“loginServlet? name =zs& pwd =123”,true);

(4)使用异步对象发送请求

     xmlHttp.send()
怎么能获取服务器端返回的数据?
  • 使用异步对象的的属性 responseText

    • 例子

      xmlHttp.responseTest

xmlHttp.onreadystatechange = function(){处理请求的状态变化 if(xmlHttp.readyState == 4 && xmlHttp.status == 200){//可以处理服务器端的数据,更新当前页面var data = xmlHttp.responseTest;document.getElementById("name").value = data;}}

总结:

整个ajax 就这一个对象,就这四个步骤就完事了。

注意点:

这个函数会执行好多次,每次状态值status改变就会执行一次。

5、全局刷新的例子

首页:

<%--Created by IntelliJ IDEA.User: AdministratorDate: 22/04/04Time: 上午 12:09To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html><head><title>全局刷新</title></head><body><p>全局刷新</p><form action="bmiServlet" method="get">姓名:<input type="text" name="name"> <br>体重(公斤):<input type="text" name="w"> <br>身高(米):<input type="text" name="h"> <br><input type="submit" value="提交"></form></body>
</html>

serlvet:

package com.blackcat.controller;import java.io.IOException;public class BmiServlet extends javax.servlet.http.HttpServlet {protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {}protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {//接收参数String strName = request.getParameter("name");String heigth = request.getParameter("w");String Weight = request.getParameter("h");//计算bmi: bmi = 体重/身高的平方float h = Float.valueOf(heigth);float w = Float.valueOf(Weight);float bmi = w / (h * h);//判断bmi的范围String msg = "";if( bmi  <= 18.5) {msg = "您比较瘦";}else if(bmi > 18.5 && bmi <= 23.9){msg = "你的bmi是正常的";}else if(bmi >23.9 && bmi <= 27){msg = "你的身体比较胖";}else{msg = "你的身体肥胖";}System.out.println("msg=" + msg );msg = "您好" + strName + "先生/女士,你的bmi值是:" + bmi + "," + msg;//把数据存入requestrequest.setAttribute("msg",msg);//转发到新的页面request.getRequestDispatcher("/result.jsp").forward(request,response);}
}

结果页:

<%--Created by IntelliJ IDEA.User: AdministratorDate: 22/04/04Time: 上午 2:37To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" isELIgnored="true" language="java" %>
<html>
<head><title>结果页面</title>
</head>
<body><p>显示bmi计算结果</p><h3>${msg}</h3>
</body>
</html>

效果:

1.Ajax局部刷新技术概述,底层原理,全局刷新的例子相关推荐

  1. Struts2_day04--课程介绍_Struts2拦截器概述底层原理_重要的概念

    Struts2_day04 上节内容 今天内容 Struts2拦截器概述 拦截器底层原理 重要的概念 自定义拦截器 自定义登录拦截器 Struts2的标签库 Struts2表单标签(会用) Strut ...

  2. Android刷新机制-View绘制原理

    Android刷新机制-View绘制原理 Android刷新机制-SurfaceFlinger原理 Android刷新机制-Choreographer原理 一.概述 本文将从startActivity ...

  3. Docker圣经:大白话说Docker底层原理,6W字实现Docker自由

    说在前面: 现在拿到offer超级难,甚至连面试电话,一个都搞不到. 尼恩的技术社群(50+)中,很多小伙伴凭借 "左手云原生+右手大数据"的绝活,拿到了offer,并且是非常优质 ...

  4. 一文读懂 https 底层原理

    引子 先说说我对架构师的理解.从业务能力上,需要的是发现问题和解决问题的能力:从团队建设上,需要的是能培养团队的业务能力:从项目管理上,把控好整个项目和软件产品的全生命周期. 我搜索了一下架构师的培训 ...

  5. ajax-210810-03---练习全局刷新计算bmi

    ajax-210810-03-练习&全局刷新计算bmi 需求 演示-全局刷新 index.jsp(全局刷新-转发操作) result.jsp(全局刷新-转发操作) BmiServlet.jav ...

  6. mysql引擎层存储层_MySQL存储底层技术:InnoDB底层原理解读

    原标题:MySQL存储底层技术:InnoDB底层原理解读 存储引擎 很多文章都是直接开始介绍有哪些存储引擎,并没有去介绍存储引擎本身.那么究竟什么是存储引擎?不知道大家有没有想过,MySQL是如何存储 ...

  7. Django中使用ajax技术概述

    ajax 1.什么是ajax ajax就是在不刷新整个页面的情况下,去更新局部页面的内容(无刷新技术) 2.ajax有什么优点 最大的一点是页面无刷新,在页面内与服务器通信,给用户的体验非常好. 使用 ...

  8. ajax 刷新output,JSF生命周期及AJAX局部刷新

    这些时间可能一直得搞JSF...... 呵呵,这个星期天再一次的仔细的研究了一下这个所谓的6个生命周期的运行情况以及所谓的AJAX局部刷新的问题. 看了core JSF里详细描述的JSF的生命周期,基 ...

  9. ajax局部刷新_OA系统 考勤签到 ajax查询考勤数据!!!

    学习主题:OA系统 学习目标: 1 掌握web开发项目实战,熟练使用web开发基础技术 1. 考勤管理-签到-前台代码实现 (1) jQuery代码,页面初始化绑定事件,怎么实现? 将数据写在$(fu ...

最新文章

  1. python爬虫beautifulsoup实例-【Python实例二】BeautifulSoup爬虫简单实践
  2. python使用符号 表示单行注释-Pyhton中单行和多行注释的使用方法及规范
  3. python之while循环用法举例,break与continue的区别,格式化输出及运算符
  4. matlab极大无关组,matlab最大无关组
  5. CF140C-New Year Snowmen【优先队列】
  6. Win10 JAVA安装及环境搭建(windows jdk,windows java环境配置)
  7. Linux系统管理.Samba配置文件
  8. sit是什么环境_SIT和UAT有什么区别?谢谢!
  9. coreseek mysql_coreseek 与 php mysql 的联合使用
  10. IDEA打包war部署到Tomcat
  11. 【转】设计模式(三)建造者模式Builder(创建型)
  12. mysql拼接两列数据_Mysql合并两列数据
  13. 计算机百科丨存储介质发展史
  14. 网络技术——网络管理技术
  15. (附源码)springboot大学生竞赛管理平台 毕业设计 251522
  16. The server encountered an unexpected condition that prevented it from fulfilling the request
  17. 树莓派(4B)DHT11实现温湿度获取+mysql数据库存储
  18. AtCoder Regular Contest 071 C - 怪文書 / Dubious Document
  19. 2021年初oracle最新版本是多少_Oracle升级该怎么选版本
  20. CC2530F256RHAR -RF收发器封装:QFN40

热门文章

  1. Python面试题 - 基础题(一)
  2. PHP生成二维码(学习)
  3. 放任通胀就是与虎相伴
  4. 魅族手机一键修改屏幕参数
  5. python实现多台服务器监控
  6. Squid代理服务器(传统/透明/反向代理、ACL访问控制、sarg日志分析)
  7. Grid++report数字格式设置
  8. Java中condition的用法_java condition 使用
  9. 鲸鱼优化算法(Whale Optimization Algorithm,WOA)
  10. 今年很难被薪资倒挂了