AJAX概述

news/2024/10/21 7:28:56/

1.1什么是AJAX.

  • Ajax即AsynchronousJavascript And XML:异步数据回调。

  • 使用Ajax技术网页应用能够快速地将更新呈现在用户界面上,不需要重载(刷新)整个页面【只刷新局部】,这使得程序能够更快地回应用户的操作。、


1.2为什么需要AJAX.

  • 在我们之前的开发,每当用户向服务器发送请求,哪怕只是需要更新一点点的局部内容,服务器都会将整个页面进行刷新,这么做的问题有两点:

    • 性能会有所降低(一点内容就需要刷新整个庞大的页面);

    • 用户的操作页面会中断(整个页面被刷新了)。

  • 而基于ajax可以使用Javascript技术向服务器发送异步请求,因为异步请求,这可以使我们在不刷新页面的前提下拿到后端数据,完成页面的局部刷新,给用户的感受是在不知不觉中完成请求和响应过程。


1.3同步和异步的区别.

  • 同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求;

  • 异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发出第二个请求。


2.基于jQuery实现AJAX语法.

2.1语法1-$.ajax(url,[settings]).

  • url:一个用来包含发送请求的URL字符串;

  • settings里面的参数如下:

    • type:请求方式 (“POST” 或 “GET“[默认])

    • data:发送到服务器的数据,例如:key1=value1key2=value2 或 {key1: 'value1', key2: 'value2'} ;

    • dataType:期望服务器返回的数据类型(json、text、xml、html、script......);

    • success(data):请求成功的回调函数   data:服务器返回的数据(响应);

    • error:请求失败的回调函数。


2.2语法2-$.get/post(url, [data], [callback], [type]).

  • url:发送请求地址。

  • data:待发送 Key/value 参数。例如: {key1: 'value1', key2: 'value2'}

  • type:预期服务器返回的数据类型,xml, html, script, json, text......

  • callback:发送成功时回调函数。


3.案例演示.

3.1AJAX实现登陆.

3.1.1login.jsp.

  • 界面排版:

  • $.ajax() 方式发送ajax请求:

  • $.post() 方式发送ajax请求:


3.1.2LoginServlet.


3.2AJAX优化加入购物车功能.

  • 以前端 index.jsp页面的加入购物车功能为例。

3.2.1index.jsp.


3.2.2HomeInsertCartServlet.

  • 后台不再向加载数据的servlet跳转,而是向前端响应添加成功与否的信息。如:


3.3AJAX优化购物车修改数量功能.

3.3.1业务分析.

  • 原先:cart.jsp → HomeUpdateCartServlet → HomeLoadCartServlet → cart.jsp;

  • ajax方式:cart.jsp → HomeUpdateCartServlet → cart.jsp。


3.3.2cart.jsp.

  • 修改完商品数量后跳转到 HomeUpdateCartServlet,在 HomeUpdateCartServlet里面执行修改业务逻辑,执行成功后计算出商品的价格小计和购物车价格总计,并且输出到前端。由于 out.print() 一次只能往前端输出一个值,所以需要在后台把商品价格小计和购物车总计通过符号拼接到一起,形成一个字符串,然后把该字符串输出到前端,前端接收字符串后,通过split进行切割,分别提取出里面的商品价格小计和购物车价格总计。


3.3.3HomeUpdateCartServlet.


http://www.ppmy.cn/news/381580.html

相关文章

从零开始学理财(详实)

本内容包括理财的本质,货币基金、国债逆回购、复利、REITs等的介绍,货币基金与国债逆回购组合,基金与股票账户的挑选原则等。都是一些个人理财的总结或网上资料的收集,仅供参考,不构成任何投资建议。紫色文字是超链接&…

手把手教你实战TDD | 京东云技术团队

1. 前言 领域驱动设计,测试驱动开发。 我们在《手把手教你落地DDD》一文中介绍了领域驱动设计(DDD)的落地实战,本文将对测试驱动开发(TDD)进行探讨,主要内容有:TDD基本理解、TDD常…

SciencePub学术 | 信号处理类重点SCIEI征稿中

SciencePub学术 刊源推荐: 信号处理类重点SCI&EI征稿中!影响因子高,自引率低,对国人非常友好。信息如下,录满为止: 一、期刊概况: 信号处理类重点SCI&EI 📌【期刊简介】IF&#xff1…

SpringBoot+Vue 车辆充电桩系统

文章目录 1、效果演示效果图技术栈 2、 前言介绍(完整源码请私聊)3、主要技术3.4.1 数据库概念结构设计3.4.2 数据库具体设计 4 系统功能的具体实现4.1 前台功能模块4.1.1 首页功能4.1.2 用户后台管理 4.2 后台功能模块4.2.1 管理员功能4.2.2 维修员功能…

2023-6-14-第五式原型模式

🍿*★,*:.☆( ̄▽ ̄)/$:*.★* 🍿 💥💥💥欢迎来到🤞汤姆🤞的csdn博文💥💥💥 💟💟喜欢的朋友可以关注一下&#xf…

大模型开源简史,追赶chatGPT的重要推手!

大型语言模型(LLMs)已经彻底改变了人工智能领域,它们的长期影响力越来越强大。OpenAI的ChatGPT是一种高度先进的对话型人工智能,在最近几个月取得了重大突破,引发了公司和研究人员之间的激烈竞争。许多人正竞相开发最先…

vue3开发需要注意的问题

1、声明基本类型 数据声明现在的一般规则是&#xff1a; 使用 reactive 代替 Object, Array, Map, Set使用 ref 代替 String, Number, Boolean <script lang"ts" setup>import { reactive, ref } from vue;const num reactive(0); // value cannot be made…

每日算法(第二十二期)

先来回顾一下上期的问题及答案&#xff1a; 「三数之和」&#xff08;3Sum&#xff09;。以下是题目的描述&#xff1a; 给定一个包含 n 个整数的数组 nums&#xff0c;判断 nums 中是否存在三个元素 a&#xff0c;b&#xff0c;c&#xff0c;使得 a b c 0&#xff1f;找出所…