同步请求和异步请求| 学习笔记

简介: 快速学习同步请求和异步请求。

开发者学堂课程【Ajax 前端开发入门与实战同步请求和异步请求】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/595/detail/8528


同步请求和异步请求

 

1、将Ajax请求改为同步请求。

xhr.open(get’,’./server/checkUsername.php?username='+uname,false)

这样做的话,会有两个问题。

第一:界面会卡顿,卡顿多长时间,取决于网络速度。

第二:xhr.onreadystatechange 的回调将不会被执行,需要修改代码后才能获取到数据,将回调去除即可。

username.onblur = function(){

var usernameValue = username.value;

//将 usernameValue 提交给服务器,有服务器进行唯一性的校验

//1.创建对象,兼容处理

var xhr = null;

if(window.XMLHttpRequest)

xhr = new XMLHttpRequest();

}else {

xhr = new ActiveXObject(“Microsoft.XMLHTTP");

}

//2.准备发送

xhr.open("get",”./server/checkUsername.php?uname= +

usernameValue,false);//false,用户是操作不了界面的,这是同步与异步的区别

//3.执行发送

xhr.send(null);

//制定回调函数

//xhr.onreadystatechange = function(){

if(xhr.readyState ==4)(

if(xhr.status == 200)

var result = xhr.responseText;

varusername_result =document.querySelector(“#username_result");

if(result == "ok"){

username_result.innerText = "用户可以使用";

}else{

username_result.innerText = "用户已经被注册";

}

}

}

}

同步请求网页模拟网速慢的情况下

<?php

//用户名输入后网络延迟5秒的时间后再输入

sleep(5);

$username = $_GET["uname"];

if($username ==’zhangsan’){

echo "error";

} else{

echo "ok";

}

?>

补充知识:

image.png

网页展示:

image.png

输入用户名,等待5s后才可操作下一步,此时是同步的请求,这是 true 和 false 之间的区别,true 是同步,false 是异步。

相关文章
|
定位技术 开发工具 图形学
|
资源调度 Kubernetes Java
Flink作业任务部署解读
Flink作业任务部署解读
416 0
|
9月前
|
机器学习/深度学习 弹性计算 网络安全
部署DeepSeek,你的GPU够用吗?
本文介绍如何将 DeepSeek-R1 开源模型部署到 GPU 云服务器,在 GPU 云服务器上安装与配置 Ollama 和 Open WebUI。
|
3月前
|
Ubuntu 安全 Unix
Linux和Ubuntu有什么区别
综上所述,Linux和Ubuntu之间存在明显的区别。Linux是一种操作系统内核,而Ubuntu是基于Linux内核的发行版本,具有更好的易用性、社区支持和软件仓库。用户可以根据自己的需求选择不同的Linux发行版本,如果需要一个稳定、易于使用的桌面环境,Ubuntu是一个不错的选择。如果需要更加灵活和定制性强的系统,其他Linux发行版本可能更加适合。
|
8月前
|
安全 Shell API
FileCodeBox:像拿快递一样轻松分享文件
FileCodeBox 是一个基于 FastAPI + Vue3 开发的轻量级文件分享工具。它允许用户通过简单的方式分享文本和文件,接收者只需要一个提取码就可以取得文件,就像从快递柜取出快递一样简单。
263 17
FileCodeBox:像拿快递一样轻松分享文件
|
9月前
|
人工智能 API
新用户100万token免费额度!阿里云上线DeepSeek-R1满血版
阿里云推出DeepSeek-R1满血版,新用户可享100万免费Token额度。平台支持多种模型,包括671B参数的DeepSeek-R1和通义千问。结合开源工具Chatbox,用户能轻松对接API,体验高性能AI服务。访问[阿里云解决方案](https://www.aliyun.com/solution/tech-solution/deepseek-r1-for-platforms?utm_content=g_1000401616)了解更多详情并快速上手。
5378 36
|
存储 缓存 负载均衡
使用一致性哈希让数据均匀分布
使用一致性哈希让数据均匀分布
306 3
敏捷开发:拥抱变化,快速迭代
在软件开发领域,敏捷开发已成为应对快速变化、提升交付效率的有效方法。它强调团队协作、客户反馈和灵活应变,核心价值观包括个体互动优先于流程工具、可工作软件优先于详尽文档、客户合作优先于合同谈判、响应变化优先于遵循计划。敏捷开发通过跨功能团队、短周期迭代、持续改进和客户紧密合作等实践,实现高效开发和创新。虽然面临抵抗变化、管理期望等挑战,但敏捷思维能显著提升团队表现和产品品质。
|
算法 C语言
【C语言】:atoi函数的使用及其模拟实现
【C语言】:atoi函数的使用及其模拟实现
513 5
|
设计模式 安全 网络安全