广告
返回顶部
首页 > 资讯 > 前端开发 > html >如何理解AJAX开发技术
  • 649
分享到

如何理解AJAX开发技术

2024-04-02 19:04:59 649人浏览 安东尼
摘要

本篇内容介绍了“如何理解ajax开发技术”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!AJAX(Async

本篇内容介绍了“如何理解ajax开发技术”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

AJAX(Asynchronous javascript and XML,异步JavaScript和XML),AJAX并不是一项新的技术,它产生的主要目的是用于页面的局部刷新,从之前的代码开发来看,读者可以发现,每当用户向服务器端发出请求时,那怕需要的只是简单的更新一点点的局部内容,服务器端都会将一个整体的页面进行刷新,并重新生成代码,这样一来程序的性能肯定会有所降低的,而如果采用了AJAX技术之后,就可以实现局部的内容变更,而不用再进行整体的页面刷新,显然处理的性能要比前者高很多 。

如何理解AJAX开发技术

在AJAX中主要是通过XMLHttpRequest对象处理发送异步请求和处理回应的,此对象最早是在IE 5中以ActiveX组件的形式出现的,一直到2005年之后才被广泛的使用,而如果要想创建一个XMLHttpRequest对象必须使用JavaScript。

XMLHttpRequest对象的属性

No.

属性

描述

1

onreadystatechange

指定当readState状态改变时使用的操作,一般都用于指定具体的回调函数

2

readyState

返回当前请求的状态,只读

3

responseBody

将回应信息正文以unsigned byte数组形式返回,只读

4

responseStream

以Ado Stream对象的形式返回响应信息,只读

5

responseText

接收以普通文本返回的数据,只读

6

responseXML

接收以XML文档形式回应的数据,只读

7

status

返回当前请求的http状态码,只读

8

statusText

返回当前请求的响应行状态,只读

创建XMLHttpRequest对象

复制代码 代码如下:


<script language="JavaScript">
    var xmlHttp ;                    // AJAX核心对象名称
    function createXMLHttp() {            // 创建XMLHttpRequest核心对象
        if (window.XMLHttpRequest) {        // 判断当前使用的浏览器类型
            xmlHttp = new XMLHttpRequest();// 表示使用的为FireFox内核的浏览器
        } else {                    // 表示使用的是IE内核的浏览器
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
</script>

对readState一共有五种取值,分别是:
请求没有发出(在调用open()函数之前之前)。
请求已经建立但还没有发出(调用send()函数之前)。
请求已经发出正在处理之中(这里通常可以从响应得到内容头部)。
请求已经处理,正在接收服务器的信息,响应中通常有部分数据可用,但是服务器还没有完成响应。
响应已完成,可以访问服务器响应并使用它。

XMLHttpRequest对象的方法

No.

方法

描述

1

abort()

取消当前所发出的请求

2

getAllResponseHeaders()

取得所有的HTTP头信息

3

getResponseHeader()

取得一个指定的HTTP头信息

4

open()

创建一个HTTP请求,并指定请求模式,例如:GET请求或POST请求

5

send()

将创建的请求发送到服务器端,并接收回应信息

6

setRequestHeader()

设置一个指定请求的HTTP头信息

AJAX封装后的代码

Ajax.js

复制代码 代码如下:


function Ajax(recvType){
    var aj=new Object();
    aj.recvType=recvType ? recvType.toUpperCase() : 'html' //HTML XML
    aj.targetUrl='';
    aj.sendString='';
    aj.resultHandle=null;
    aj.createXMLHttpRequest=function(){
        var request=false;
        //window对象中有XMLHttpRequest存在就是非IE,包括(IE7,IE8)
        if(window.XMLHttpRequest){
            request=new XMLHttpRequest();
            if(request.overrideMimeType){
                request.overrideMimeType("text/xml");
            }
        //window对象中有ActiveXObject属性存在就是IE
        }else if(window.ActiveXObject){
            var versions=['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Msxml2.XMLHTTP.7.0','Msxml2.XMLHTTP.6.0','Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
            for(var i=0; i<versions.length; i++){
                    try{
                        request=new ActiveXObject(versions[i]);
                        if(request){
                            return request;
                        }
                    }catch(e){
                        request=false;
                    }
            }
        }
        return request;
    }
    aj.XMLHttpRequest=aj.createXMLHttpRequest();
    aj.processhandle=function(){
        if(aj.XMLHttpRequest.readyState == 4){
            if(aj.XMLHttpRequest.status == 200){
                if(aj.recvType=="HTML")
                    aj.resultHandle(aj.XMLHttpRequest.responseText);
                else if(aj.recvType=="XML")
                    aj.resultHandle(aj.XMLHttpRequest.responseXML);
            }
        }
    }
    aj.get=function(targetUrl, resultHandle){
        aj.targetUrl=targetUrl;   
        if(resultHandle!=null){
            aj.XMLHttpRequest.onreadystatechange=aj.processHandle;   
            aj.resultHandle=resultHandle;   
        }
        if(window.XMLHttpRequest){
            aj.XMLHttpRequest.open("get", aj.targetUrl);
            aj.XMLHttpRequest.send(null);
        }else{
            aj.XMLHttpRequest.open("get", aj.targetUrl, true);
            aj.XMLHttpRequest.send();
        }
    }
    aj.post=function(targetUrl, sendString, resultHandle){
        aj.targetUrl=targetUrl;
        if(typeof(sendString)=="object"){
            var str="";
            for(var pro in sendString){
                str+=pro+"="+sendString[pro]+"&";   
            }
            aj.sendString=str.substr(0, str.length-1);
        }else{
            aj.sendString=sendString;
        }
        if(resultHandle!=null){
            aj.XMLHttpRequest.onreadystatechange=aj.processHandle;   
            aj.resultHandle=resultHandle;   
        }
        aj.XMLHttpRequest.open("post", targetUrl);
        aj.XMLHttpRequest.setRequestHeader("Content-Type", "application/x-www-fORM-urlencoded");
        aj.XMLHttpRequest.send(aj.sendString);
    }
    return aj;
}

使用AJAX可以完成局部刷新操作;

在AJAX中主要是通过XMLHttpRequest对象完成操作。

“如何理解AJAX开发技术”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 如何理解AJAX开发技术

本文链接: https://www.lsjlt.com/news/82002.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何理解AJAX开发技术
    本篇内容介绍了“如何理解AJAX开发技术”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!AJAX(Async...
    99+
    2022-10-19
  • ajax是网页开发技术吗
    这篇文章主要介绍“ajax是网页开发技术吗”,在日常操作中,相信很多人在ajax是网页开发技术吗问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ajax是网页开发技术吗”的疑惑...
    99+
    2022-10-19
  • AJAX开发技术在PHP开发中的应用技巧有哪些
    AJAX开发技术在PHP开发中的应用技巧有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。[AJAX介绍]Ajax是使用客户端脚本与Web服...
    99+
    2022-10-19
  • 怎么理解Python web开发技术
    本篇内容介绍了“怎么理解Python web开发技术”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先来问一个问题,如何来看待Python ...
    99+
    2023-06-04
  • 有哪些AJAX技术框架及开发工具
    这篇文章主要讲解了“有哪些AJAX技术框架及开发工具”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些AJAX技术框架及开发工具”吧! ...
    99+
    2022-10-19
  • web开发中如何实现无刷新的Ajax分页技术
    这篇文章主要介绍web开发中如何实现无刷新的Ajax分页技术,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!代码如下:<!DOCTYPE html PUBLI...
    99+
    2022-10-19
  • 如何用AJAX技术聚合RSS
    这篇文章主要讲解了“如何用AJAX技术聚合RSS”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用AJAX技术聚合RSS”吧! ...
    99+
    2022-10-19
  • 如何理解Hibernate技术
    这篇文章主要介绍“如何理解Hibernate技术”,在日常操作中,相信很多人在如何理解Hibernate技术问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解Hibernate技术”的疑惑有所帮助!接下来...
    99+
    2023-06-15
  • 如何理解SqlSession技术
    这篇文章主要介绍“如何理解SqlSession技术”,在日常操作中,相信很多人在如何理解SqlSession技术问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解SqlS...
    99+
    2022-10-18
  • 如何理解Raid技术
    如何理解Raid技术,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),...
    99+
    2023-06-04
  • Go开发技术面试宝典:如何处理并发问题?
    Go语言是一种支持并发编程的语言,同时也是一个广泛应用于网络编程和云计算领域的编程语言。在Go语言中,处理并发问题是非常重要的一个技能。在这篇文章中,我们将会介绍一些处理并发问题的技巧和方法,帮助您在Go开发面试中更加从容应对。 一、Go语...
    99+
    2023-06-28
    开发技术 面试 并发
  • Python开发技术中,如何高效地管理日志?
    Python作为一种流行的编程语言,被广泛应用于各种领域。在开发过程中,日志是非常重要的一部分,它可以帮助我们追踪程序的运行状况,定位问题所在。在本文中,我们将介绍如何在Python开发中高效地管理日志。 一、Python日志的基本概念 在...
    99+
    2023-10-13
    日志 开发技术 二维码
  • PHP开发技术:如何使用PATH API?
    PHP是一种非常流行的编程语言,它的灵活性和易用性让很多开发者都喜欢使用。而在PHP的开发过程中,有一个非常重要的技术就是PATH API。在本文中,我们将会介绍什么是PATH API,以及如何使用它来加快你的PHP开发过程。 一、PAT...
    99+
    2023-10-25
    开发技术 path api
  • Java开发技术如何助力自然语言处理的发展?
    自然语言处理(NLP)是人工智能领域中最具挑战性的任务之一。NLP使得计算机能够处理和理解人类语言,包括语音和文本。在NLP中,Java开发技术的运用广泛,主要是因为Java具有跨平台性、易于维护和扩展的特点。在本文中,我们将探讨Java...
    99+
    2023-09-04
    自然语言处理 编程算法 开发技术
  • ASP 实时 开发技术:如何提高并发处理的效率?
    ASP 实时开发技术:如何提高并发处理的效率? 随着互联网应用的不断普及,越来越多的企业和开发者开始关注 ASP 实时开发技术,以提高应用的性能和并发处理的效率。在本文中,我们将介绍如何使用 ASP 实时开发技术来优化并发处理,提高应用的性...
    99+
    2023-07-03
    实时 开发技术 并发
  • Python path开发技术同步:如何提高开发效率?
    Python是一门非常流行的编程语言,它具有简单易学、功能强大、可移植性好等特点,因此被广泛应用于各种领域。Python path开发技术是Python编程中的一个重要方面,它可以帮助开发者更加便捷地管理Python模块,提高开发效率。本文...
    99+
    2023-07-24
    path 开发技术 同步
  • 如何理解MySQL的锁和并发控制技术?
    如何理解MySQL的锁和并发控制技术?MySQL是一种常用的关系型数据库管理系统,它支持并发访问和操作数据,同时也提供了一些锁和并发控制技术,以保证数据的一致性和并发性。本文将详细介绍MySQL的锁和并发控制技术,并通过代码示例来加深理解。...
    99+
    2023-10-22
    MySQL 并发控制
  • PHP开发技术:如何在UNIX系统中处理路径?
    在UNIX系统中,路径是非常重要的概念,因为它可以帮助我们找到文件和目录。在PHP开发中,处理路径是必不可少的技能之一。本文将详细介绍在UNIX系统中如何处理路径,并提供一些示例代码。 相对路径和绝对路径 首先,我们需要了解相对路径和...
    99+
    2023-07-29
    unix path 开发技术
  • ASP 函数打包开发技术:如何实现快速开发?
    ASP 函数打包开发技术是一种实现快速开发的方法,该方法可以帮助开发者将常用的代码逻辑打包成一个可重用的函数,从而提高开发效率。本文将介绍 ASP 函数打包开发技术的基本概念、实现方法和一些实用技巧。 一、ASP 函数打包开发技术的基本概...
    99+
    2023-06-27
    函数 打包 开发技术
  • ASP 实时框架开发技术,如何提高开发效率?
    ASP.NET 实时框架是一种用于构建实时网络应用程序的强大工具。它提供了一种简单的方法来处理实时数据,并将其实时呈现在用户界面上。在本文中,我们将探讨 ASP 实时框架的开发技术,以及如何提高开发效率。 一、了解 ASP 实时框架 ASP...
    99+
    2023-07-23
    实时 框架 开发技术
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作