AJAX-

简介: AJAX-

什么是AJAX

AJAX是一种用于创建快速动态网页的技术,可以在不重新加载整个网页的情况下,对网页的某部分进行更新

传统的网页(不使用AJAX)需要更新内容时,必须重载整个网页

生活中使用AJAX的应用案例:新浪微博,谷歌地图,开心网


创建XMLHttpRequest对象

XMLHttpRequest用于在后台与服务器交换数据。意思是可以在不重新加载整个网页的情况下,对网页的某部分进行更新

<script>
    function loadXMLDoc() {
        //创建XMLHttpRequest对象
        var xmlhttp;
        if(window.XMLHttpRequest){
            //IE+,firefox,chrome,Opera,Safari 浏览器执行代码
            xmlhttp = new XMLHttpRequest();
        }else{
            //IE6,IE5 浏览器执行代码
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")
        }
    }
</script>


向服务器发送请求

发送需求时,通常使用XMLHttpRequest对象的open()和send()方法:

xmlhttp.open(“Get”,“ajax_info.txt”,true);

xmlhttp.open(“POST”,“/try/ajax/demo_post.php”,true);

xmlhttp.send();

open()第一个参数:其中Get和POST比较,get更简单也更快,在多数情况都能使用

第二个参数:url服务器上的文件,url参数是服务器上文件的地址,文件可以是任意类型的文件

第三个参数:true或false 异步 ajax指是异步js和XML

XMLHttoRequest对象如果要用AJAX的话,其open()方法中必须为true


        xmlhttp.onreadystatechange=function () {
            if(xmlhttp.readyState == 4 && xmlhttp.status ==200){
                document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
            }
        }
        xmlhttp.open("GET","/try/ajax/ajax_info.txt",true);
        xmlhttp.send();


AJAX-服务器 响应

服务器响应:如果获取服务器响应,使用XMLHttprequest对象和responseText或responseXML

如果来自服务器响应并非XML,使用responseText属性,返回字符串形式的响应

<script>
    function loadXMLDoc() {
        //创建XMLHttpRequest对象
        var xmlhttp;
        var txt,x,i;
        if(window.XMLHttpRequest){
            //IE+,firefox,chrome,Opera,Safari 浏览器执行代码
            xmlhttp = new XMLHttpRequest();
        }else{
            //IE6,IE5 浏览器执行代码
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")
        }
        xmlhttp.onreadystatechange=function () {
            if(xmlhttp.readyState == 4 && xmlhttp.status ==200){
                document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
                xmlDoc = xmlhttp.responseXML;
                txt="cd_catalog.xml ";
                x = xmlDoc.getElementsByTagName("ARTIST");
                for(i = 0;i<x.length;i++){
                    txt = txt+x[i].childNodes[0].nodeValue +"<br>";
                }
                document.getElementById("myDiv").innerHTML = txt;
            }
        }
        xmlhttp.open("GET","cd_catalog.xml" ,true);
        xmlhttp.send();
    }
</script>


AJAX-onreadystatechange事件

当请求被发送到服务器时,我们需要执行一些基于响应的任务,readyState改变时,就会触发onreadystatechange事件


readyState属性存有XMLHttpRequest状态信息

onreadystatechange 存储函数,每当readyState属性改变时,就会调用该函数

readyState 存有XMLHttpRequest的状态,从0-4发生变化

0:请求未初始化 1 :服务器链接已建立

2:请求已接受 3:请求处理中

4:请求已完成,且响应已就绪

status 200:”OK“ 404:未找到页面

xmlhttp.onreadystatechange=function(){
  if(xmlhttp.readyState==4 && xmlhttp.statues == 200){
    document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
  }
}


使用回调函数:如果网站上存在多个AJAX任务,应该为创建XMLHttpRequret对象编写一个标准的函数,并为每个AJAX任务调用该函数

   function loadXMLDoc(url,cfunc){
        if(window.XMLHttpRequest){
            xmlhttp = new XMLHttpRequest();
        }else{
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = cfunc;
        xmlhttp.open("GET",url,true);
        xmlhttp.send();
    }
    function myFunction(){
        loadXMLDoc("/try/ajax/ajax_info.txt",function () {
            if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
                document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
            }
        });
    }


相关文章
|
JavaScript
uniapp+vue3路由跳转传参
uniapp+vue3路由跳转传参
700 0
|
存储 JavaScript 前端开发
JS中return的用法
JS中return的用法
327 0
|
存储 关系型数据库 MySQL
MySQL MVCC全面解读:掌握并发控制的核心机制
【10月更文挑战第15天】 在数据库管理系统中,MySQL的InnoDB存储引擎采用了一种称为MVCC(Multi-Version Concurrency Control,多版本并发控制)的技术来处理事务的并发访问。MVCC不仅提高了数据库的并发性能,还保证了事务的隔离性。本文将深入探讨MySQL中的MVCC机制,为你在面试中遇到的相关问题提供全面的解答。
928 2
|
存储 监控 安全
云服务的稳定性如何衡量?
【4月更文挑战第29天】云服务的稳定性如何衡量?
1309 3
|
安全 测试技术 网络安全
2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-C安全事件响应/网络安全数据取证/应用安全
B模块涵盖安全事件响应和应用安全,包括Windows渗透测试、页面信息发现、Linux系统提权及网络安全应急响应。在Windows渗透测试中,涉及系统服务扫描、DNS信息提取、管理员密码、.docx文件名及内容、图片中单词等Flag值。页面信息发现任务包括服务器端口、主页Flag、脚本信息、登录成功信息等。Linux系统渗透需收集SSH端口号、主机名、内核版本,并实现提权获取root目录内容和密码。网络安全应急响应涉及删除后门用户、找出ssh后门时间、恢复环境变量文件、识别修改的bin文件格式及定位挖矿病毒钱包地址。
306 0
|
Web App开发 Java Maven
|
安全 物联网 大数据
实名认证接口的应用场景和种类
互联网、大数据、云计算、物联网等相关技术的快速发展推动了互联网产业的进步,网络身份认证领域需要更多的实名认证系统技术支持,基于身份证、手机、银行卡信息的实名认证接口也应用于各种场景。
1249 0
实名认证接口的应用场景和种类
|
设计模式 监控 网络协议
Linux网络原理与编程——第十一节 网络基础及套接字
从system call(系统调用结构)开始往下,都是属于OS和硬件的范畴,我们一般的程序员所进行的开发,通常都是在用户层。(这个我们后面还会具体说到)。
458 0
Linux网络原理与编程——第十一节 网络基础及套接字
|
Cloud Native 数据可视化 测试技术
免费下载!阿里Nacos开源必备书籍《Nacos架构&原理》
Nacos/nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称;一个更易于构 建云原生应用的动态服务发现、配置管理和服务管理平台。 官网:https://nacos.io/ 仓库:https://github.com/alibaba/nacos
91438 3
免费下载!阿里Nacos开源必备书籍《Nacos架构&原理》
|
JavaScript 测试技术 持续交付
2020你应该知道的Git Commit规范
2020你应该知道的Git Commit规范
3037 0
2020你应该知道的Git Commit规范

热门文章

最新文章