[[IT知识]] 揭秘Ajax异步操作背后的真相,让你不再迷茫!

[复制链接]
查看: 40|回复: 0
发表于 2025-2-10 09:20:01 | 显示全部楼层 | 阅读模式
易博V9下载

揭秘Ajax异步操作背后的真相,让你不再迷茫!

ajax的全称是asynchronous JavaScript and XML ,它是异步的js和XML。它是局部刷新,异步操作。

大家都知道ajax是单线程的,而且本身是同步的,但是单线程为什么可以异步肯定大多数人并不知道,下面由张燕妮同学给大家讲解一下子(不是很官方,但是很好理解):

在讲解之前我先给大家说一下线性数据结构,我们可以把单线性数据结构当成一条线段,线段是有头有尾的大家总知道吧,单线程就是线段的头部没有前区,尾部没有后区,中间的每个元素前后都各有两个元素,少了一个元素的时候,同时会有两个元素知道并且告诉你。而且是缺一个元素都不行。

回调函数就是把函数A当做参数传递给函数B,函数B执行这个函数A。回调函数最常见的用法就是我们ajax请求数据时用到的success() and error()这两个函数,还有setInterval里面的第一个参数,也是用了回调函数。回调函数,回调函数,回调的字面意思可不就是掉个头回去再把那条路走一遍嘛.所以ajax在回调函数success()或者error被触发的时候掉过头去又走了一次,然后他就是异步的了,同时ajax是异步的,跟他类似的还有es6的promise(异步的同步操作)。

浏览器的进程是多进程的,至于为什么就跟你为什么叫XXX是一个道理呦~

第二个问题,当万能的前端遇到ajax获取后台数据时乱码是怎么回事应该是大家很纠结的. -或许是网速问题,网太慢。

-或许是编码格式不统一,你的后台兄弟坑了你,哈哈哈哈

ajax原生代码都可否记得,不如我带你们捋一遍呀,看代码:

  1. //1.创建xmlhttpRequest对象
  2. var xhr;
  3. try{
  4. xhr = new XMLHttpRequest();
  5. console.log(5555)
  6. }
  7. catch(e){
  8. //ie浏览器低版本兼容
  9. xhr = new ActiveXObject("Microsoft.XMLHTTP");
  10. }
  11. finally{
  12. console.log(1111)
  13. }
  14. // try{} catch{} finally{}在这里是处理异常的方法,用if{}else{}也ok
  15. //if(window.XMLHttpRequest){
  16. // xhr = new XMLHttpRequest();
  17. // }else{
  18. //ie浏览器低版本的兼容
  19. // xhr = new ActiveXObject("Microsoft.XMLHTTP")
  20. //}
  21. //2.建立异步连接
  22. xhr.open("get","url/+string",true/false);//true是异步,false是同步
  23. //xhr.open("post","url",true/false)
  24. //3.发送异步请求
  25. xhr.send(null);//get
  26. xhr.send(string);//post
  27. //4.获取返回数据
  28. xhr.onreadystatechange = function (){
  29. if((xhr.readyState)==4&&(xhr.status==200)){
  30. var data = xhr.responseText;
  31. var data = JSON.parse(data);
  32. show(data);
  33. }
  34. }
  35. function show(data){
  36. document.getElementById("div1").innerHTML = data;
  37. }
复制代码
易博软件介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|Archiver|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表