AJAX

1、什么是AJAX?

Asynchronous Javascript And Xml
异步的JavaScript和XML。
AJAX不是一个技术,是多个技术联合实现的产物。

2、AJAX是浏览器客户端上的前端技术。

注意:只要是做web开发,B/S架构的,不管服务器端编程语言是哪一种,前端AJAX都是要学习的。
做PHP开发,AJAX也得学习。

3、异步和同步有什么区别?

A线程和B线程,并发执行,谁也不等谁,这就是异步。
A线程和B线程,在A线程执行的时候B线程需要等待,或者B线程执行的时候A线程需要等待,这就是同步。

4、传统的请求和AJAX请求有什么区别?

传统的请求:都是同步的。
AJAX请求:可以做到异步。

传统请求原理

传统请求原理

5、AJAX经典的案例

Google的auto_complete(输入框的自动补全)
Google的map(谷歌地图)

6、浏览器本身这个软件也是支持多线程并发的。其中ajax请求就是一个线程。

一个页面上可以同时发送多个AJAX请求。多个AJAX请求对应浏览器多个线程。
当整个浏览器采用的是传统请求的时候,请求只要一发送,整个浏览器窗口锁定,
无法点击其它按钮,并且浏览器会将窗口当中的数据全部清除,迎接新的页面。

7、AJAX主要解决的问题:

页面的局部刷新问题。 使用AJAX可以在同一个网页当中并发的发送多个请求。请求与请求之间互不等待,互不干扰。 这样可以提高用户的体验。

8、AJAX异步请求用户的体验在浏览器上不存在间断期,用户体验不间断。

但是传统的请求,由于整个页面会被全部清除,有一个空白期,用户的体验是间断的。
(现代的开发中:多数请求都是AJAX,但传统请求也会存在,并行的。)

9、AJAX编程四步

  • 创建AJAX核心对象
  • 注册回调函数
  • 开启通道
  • 发送请求

10、源码

10.1、Ajax-get示例
/**   
 * Copyright © 2020 zongyue All rights reserved.
 * 
 * 功能描述:
 * @Package: ajax.web.action 
 * @author: zongyue   
 * @date: 2020年4月12日 下午6:28:11 
 */
package ajax.web.action;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.coyote.Request;

/**   
* Copyright: Copyright (c) 2020
*
* Date         Author          Version           ClassName 
*---------------------------------------------------------*
* 2020年4月12日     zongyue           v1.0.0           CheckUsernameAction.java    
*
* @Description: 
*/
public class CheckUsernameAction extends HttpServlet {

	/** 
	* @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)  
	* @Function: CheckUsernameAction.java
	* @Description: 
	*
	* @param:
	* @return:
	* @throws:
	*
	* @version: v1.0.0
	* @author: zongyue
	* @date: 2020年4月12日 下午6:29:46 
	*/
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out = response.getWriter();
		//获取用户名
		String username= request.getParameter("username");
		//连接数据库验证用户名是否存在
		if("admin".equals(username)){
			//用户名不可用
			out.print("<font color='red'>用户名已被注册</font>");
		}else{
			//用户名可用
			out.print("<font color='green'>用户名可用</font>");
		}
		//响应信息给浏览器
		
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nydia~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值