码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Javascript】ajax(阿甲克斯)


    目录

    什么是ajax?

    同步与异步

    原理

    注意

    写一个ajax请求 

    创建ajax对象

    设置请求方式和地址

    发送请求

    设置响应HTTP请求状态变化的函数


    什么是ajax?

    是基于javascript的一种用于创建快速动态网页的技术,是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术,主要用来在前端页面中向服务器后端请求数据。

    以前的ajax:

    前后端不分离(前后端写在一起),后端返回整个html 

    每次更新⼀些数据,他都会整个⽹⻚刷新

    现在的ajax:

    ajax帮助我们向服务器发异步请求

    同步与异步

    事件A,事件B

    同步: 完成了A事件才能去处理B事件

    异步:在事件A进行中可以进行B事件

    原理

    通过XmlHttpRequest对象向服务器发异步请求,从服务器获取数据

    然后通过js来操作DOM⽽更新⻚⾯

    它是在 IE5 中⾸先引⼊的,是⼀种⽀持异步请求的技术

    简单的说,也就是 javascript 可以及时向服务器提出请求和处理响应,⽽不阻塞程序运行,达到⽆刷新的效果

    注意

    JavaScript是单线程的,会阻塞代码运⾏,所以引⼊XmlHttpRequest请求处理异步数据

    1. console.log(1);
    2. console.log(2);
    3. console.log(3);
    4. alert(6);
    5. console.log(4);

    4没有打印出来,因为同一个时间只能做同一件事。

    当我们点击确定的时候,才能打印出4

     

    避免上述的阻塞, 引⼊XmlHttpRequest请求处理异步数据

    1. onsole.log(1);
    2. console.log(2);
    3. console.log(3);
    4. setTimeout(function (){
    5. console.log(6);
    6. },4000)
    7. console.log(5);

     setTimeout(function (){
        console.log(6);
    },4000)

    4秒之后打印6

    这里的5不用等setTimeout处理完再打印出来

    经过4秒之后

     

    写一个ajax请求 

    创建ajax对象

    1. var a
    2. if(window.XMLHttpRequest){
    3. a=XMLHttpRequest;
    4. }else{
    5. a=new ActiveXObject("Microsoft.XML HTTP");
    6. }

    首先判断当前的环境下的window全局下有没有 XMLHttpRequest

    设置请求方式和地址

    1. a.open('GET',"http://localhost:xxx");

    或 

      a.open('POST',"http://localhost:xxx");

    发送请求

      a.send()

    设置响应HTTP请求状态变化的函数

    /* 
    注册事件。 onreadystatechange事件,状态改变时就会调用。
    如果要在数据完整请求回来的时候才调用,我们需要手动写一些判断的逻辑。
    */
    xhr.onreadystatechange = function () {
      // 为了保证数据完整返回,我们一般会判断两个值
      if (xhr.readyState === 1 && xhr.status === 200) {
        alert(xhr.responseText);
      } else {
        alert('出错了,Err:' + xhr.status);
      }
    };
  • 相关阅读:
    git的使用(详细教程)通过命令行操作及vscode插件
    巅峰对决:英伟达 V100、A100/800、H100/800 GPU 对比
    Spring Boot 统一功能处理
    【C++】&与&&用法总结
    json入门教程+在java中的一些便捷操作
    spring高级50讲
    学习笔记14--机器学习在局部路径规划中的应用
    CSP-J/S 2023第一轮认证晋级分数线有些爆冷,超出想象
    堆排序(Heap Sort)
    用AR Engine手部骨骼跟踪能力实现虚拟手表试戴
  • 原文地址:https://blog.csdn.net/m0_67930426/article/details/134084265
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号