一、Ajax能做什么

异步请求、局部刷新

二、同步请求

JavaScript的特点是单线程,也正是因为单线程造成了同步请求

1. 为什么JS是单线程:

JS 作为游览器脚本语言,主要用途是和用户交互、操作 DOM,如果使用多线程,会造成复杂的同步问题,如两个线程同时操作一个 DOM 节点,一个线程在这个节点上添加内容,另一个线程删除了这个节点,应该以哪个线程为准呢?

为了避免复杂性,所以 JS 采用了单线程模式,即使 HTML5 的新标准里面,允许 JS 创建多个线程,子线程也必须受主线程控制,并且不允许操作DOM。

2. 请求流程

客户端直接请求服务端,必须等待服务端响应以后才可执行后续操作

三、异步请求

1. Ajax工作原理

客户端的请求被交给了 Ajax 的代理处理, 由 Ajax 向服务器发送请求, 得到响应结果以后再通过回调函数通知客户端, 这样就使得游览器不再需要等待服务器响应。

2. XMLHttpRequest

XMLHttpRequest一开始只是微软浏览器提供的一个接口,后来各大浏览器纷纷效仿也提供了这个接口,再后来W3C对它进行了标准化,提出了XMLHttpRequest标准。

XMLHttpRequest 对象是AJAX 的核心,也是 Ajax 能实现异步请求的关键:
(1) XMLHttpRequest 对象提供了对 HTTP 协议的完全的访问,包括做出 POST 和 以及 GET 请求的能力。
(2) XMLHttpRequest 可以同步或异步地返回 Web 服务器的响应,并且能够以文本或者一个 DOM 文档的形式返回内容。

Ajax异步请求原理相关推荐

  1. Ajax异步请求原理和过程

    Ajax异步请求原理和过程 1.什么是Ajax 2.AJAX创建异步对象XMLHttpRequest ( 考虑兼容性 ) 3.操作XMLHttpRequest 对象 1.什么是Ajax Ajax是一种 ...

  2. php原生的异步请求,原生JavaScript实现Ajax异步请求

    ajax现在是一种非常流行的技术,现在虽然可以利用JQuery或者一些第三方插件甚至微软提供的一些控件可以方面的实现ajax功能,但是明白其原理也是非常重要的,下面是来使用纯javascript实现获 ...

  3. ajax异步请求实例

    1. 问题分析 用户管理显示页面:usermanagement.tpl(也可以说是MVC中的V,即视图) 用户管理数据发送页面:usermanagement.php(也可以说是MVC中的M,即模型) ...

  4. JSP同步请求和html+ajax异步请求的两种方式

    war包:包括所有的项目资源,只要从浏览器发起的都是属于请求,然后把资源响应给浏览器,解析显示出来. 方式一:HTML+ajax(跳转静态html也是属于请求响应,把整个页面响应给浏览器.) html ...

  5. ajax异步处理代码实现,原生JS代码实现一个Ajax异步请求

    异步加载的方式 (1) defer,只支持IE (2) async: (3) 创建script,插入到DOM中,加载完毕后callBack 实现ajax之前必须要创建一个 XMLHttpRequest ...

  6. 从浅到深,带你彻底搞懂AJAX异步请求

    在平时开发过程中,异步请求似乎比同步请求出现的频率还要高一些.这是为什么呢?在同步请求时如果对网页的部分内容进行更新时,是不是就必须重载整个页面.这样肯定是不行的,这时就可以采用异步请求来解决此问题. ...

  7. php 返回字符串给aja,解决ajax异步请求返回的是字符串问题

    1.返回结果差异 js获取后打印res.code无结果.因为返回数据格式不正确. php文件添加header头: header('Content-Type:application/json;'); 或 ...

  8. html弹窗赋值给查询框,bootstrap模态框动态赋值, ajax异步请求数据后给id为queryInfo的模态框赋值并弹出模态框(JS)...

    /查询单个 function query(id) { $.ajax({ url : "/small/productServlet", async : true, type : &q ...

  9. Ajax异步请求-简单模版

    1 <script type="text/javascript"> 2 window.onload = function () { 3 document.getElem ...

最新文章

  1. k8s mysql volume_Kubernetes(k8s)中文文档 名词解释 Volumes_Kubernetes中文社区
  2. 网络编程学习笔记(gethostbyname2函数与IPv6支持)
  3. Android App开发——使用CameraX打开前后摄像头拍照并保存(Java实现)
  4. 使用 C++0x 时 make_shared 完美转发构造函数参数的测试编译器
  5. 嵌入式 linux 启动脚本 编写,[9构建嵌入式linux系统项目-启动脚本的编写.ppt
  6. KVM虚拟机设置虚拟机的CPU型号与物理机相同
  7. 第三章 函数 C++语言程序设计第五版 - 郑莉
  8. c++程序设计语言第四版pdf_寒假攻略 | 开启C语言自学模式
  9. RabbitMQ消费者流量控制策略总结
  10. 《tcpip详解》卷一第2章
  11. Tex中参考文献的引用方法
  12. 因为计算机丢失user32.dll,电脑丢失USER32.dll怎么处理
  13. 百度地图 根据经纬度获取 地址
  14. php情书之笛卡尔的情书,笛卡尔情书的秘密——心形函数的作图
  15. Brain Tumor Segmentation (BraTS) 脑部肿瘤分割2--二维UNet的复现与数据准备篇
  16. 冰点文库最新版3210
  17. 音乐播放时跳动的音符
  18. 想去阿里大厂去面试测试工程师?想月薪15k?这篇文章一定对你有所帮助
  19. IBM Power小型机用液晶面板屏查看或设置HMC
  20. 服务器出错的原因有哪些 原

热门文章

  1. 终端运行pip提示:LookupError: unknown encoding: cp65001 解决方案
  2. Folx Pro for Mac(下载工具)免激活版
  3. 科创板正式开板,新增的这些交易规则,事关你的“钱包”!
  4. base64解析图片
  5. 清理完计算机开机屏红,Windows10电脑开机屏幕变成红色的解决方法
  6. linux 安装rar工具
  7. 利用梯度下降法实现线性回归--python实现
  8. 密码*** ,continue,等差求和
  9. MySQL索引类型(按数据结构分类)
  10. 在学校玩计算机被发现的检讨书,高中生玩手机被发现检讨书