it编程 > 前端脚本 > Ajax

Ajax使用异步对象发送请求方案详解

158人参与 2024-05-28 Ajax

一、什么是ajax

ajax,全称asynchronous javascript and xml(异步javascript和xml),是一种用于创建更好、更快以及交互性更强的web应用程序的技术。它不是一种新的编程语言,而是由多种技术组合而成的,包括html或xhtml、css、javascript、dom、xml、xslt,以及最重要的xmlhttprequest。

ajax的原理是通过xmlhttprequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作dom而更新页面。

使用ajax技术的网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面,从而节省网络带宽,提高网页加载速度,缩短用户等待时间,改善用户体验。

ajax通过异步通信的方式,实现了在不刷新整个页面的情况下,对页面的局部进行更新,极大地提升了web应用的交互性和性能。

二、全局刷新和局部刷新

网络中数据传输量越少,给用户的感受越好。

ajax是用来做局部刷新的:局部刷新使用的核心对象:异步对象(xmlhttprequest)。这个异步对象是存在浏览器内存中的,使用javascript语法创建和使用xmlhttprequest对象。

xml:网络中的传输的数据格式,使用json替换了xml。

<数据>
	<数据1>宝马1</数据1>
	<数据2>宝马2</数据2>
	<数据3>宝马3</数据3>
	<数据4>宝马4</数据4>
</数据>

三、ajax中使用xmlhttprequest对象(ajax核心步骤)

1、创建异步对象

var xmlhttp = new xmlhttprequest();

2、给异步对象绑定事件

onreadystatechange :当异步对象发起请求,获取了数据都会触发这个事件。这个事件需要指定一个函数, 在函数中处理状态的变化。

btn.onclick = fun1()
function fun1(){
    alert("按钮单击");
}

例如:

xmlhttp.onreadystatechange= function(){
    处理请求的状态变化。
    if(xmlhttp.readystate == 4 && xmlhttp.status == 200 ){
        // 可以处理服务器端的数据,更新当前页面
        var data = xmlhttp.responsetext;
        document.getelementbyid("name").value = data;
    }
}

3、异步对象的属性 readystate 表示异步对象请求的状态变化

4:异步对象把接收的数据处理完成后。

此时开发人员在4的时候处理数据。

在4的时候,开发人员做什么?更新当前页面!

异步对象的status属性:表示网络请求的状况的:200,404,500,需要是当status==200时,表示网络请求是成功的。

4、初始异步请求对象

异步的方法open()

xmlhttp.open(请求方式get|post, "服务器端的访问地址", 同步|异步请求(默认是true,异步请求));
// 例如
xmlhttp.open("get", "loginservlet?name=zs&pwd=123",true);

5、使用异步对象发送请求

xmlhttp.send();

获取服务器端返回的数据,使用异步对象的属性responsetext

使用例子:xmlhttp.responsetext

回调:当请求的状态变化时,异步对象会自动调用onreadystatechange 事件对应的函数。

访问地址:使用get方式传递参数

http://localhost:8080/course_myajax/bmiprint?name=李四&w=82&h=1.8

6、json使用

1、ajax发起请求后会返回的一个json格式的字符串

{ name: "河北", jiancheng: "冀", "shenghui": "石家庄"}

2、json分类:

// 基本格式:  
[
	{ name: "河北", jiancheng: "冀", "shenghui": "石家庄"},
	{ name: "山西", jiancheng: "晋", "shenghui": "太原"} 
]

3、为什么要使用json

当然,下面是一个简单的ajax示例,演示了如何使用javascript和xmlhttprequest对象来执行异步http请求,并更新网页内容。请注意,为了简化示例,我们假设服务器上存在一个名为example.txt的文件,它包含一些简单的文本内容。

<!doctype html>  
<html lang="en">  
<head>  
    <meta charset="utf-8">  
    <title>ajax 示例</title>  
    <script>  
    function loadcontent() {  
        // 创建一个新的xmlhttprequest对象  
        var xhr = new xmlhttprequest();  
        // 定义请求完成时的回调函数  
        xhr.onreadystatechange = function() {  
            if (xhr.readystate === 4 && xhr.status === 200) {  
                // 请求成功完成,服务器返回状态码200  
                // 更新页面内容  
                document.getelementbyid('content').innerhtml = xhr.responsetext;  
            }  
        };  
        // 设置请求方法和url  
        xhr.open('get', 'example.txt', true);  
        // 发送请求  
        xhr.send();  
    }  
    </script>  
</head>  
<body>  
    <h1>ajax 示例</h1>  
    <button onclick="loadcontent()">加载内容</button>  
    <div id="content"></div>  
</body>  
</html>

在这个示例中,定义了一个名为loadcontent的javascript函数。当点击按钮时,这个函数会被调用。

此外,现代web开发中,可能会更倾向于使用更高级的库(如jquery的$.ajax方法)或现代的fetch api来执行ajax请求,因为它们提供了更简洁、更强大的功能,并且能更好地处理错误和跨域请求。

到此这篇关于ajax使用异步对象发送请求简介的文章就介绍到这了,更多相关ajax异步对象发送请求内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

AJAX实现文件上传功能报错Current request is not a multipart request详解

06-01

解决Ajax方式上传文件报错"Uncaught TypeError: Illegal invocation"

06-01

ajax异步读取后台传递回的下拉选项的值方法

05-19

浅析IE浏览器关于ajax的缓存机制

05-19

Fly拦截全局Ajax请求的方法

05-19

Ajax引擎 ajax请求步骤详细代码

05-19

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论