关于ajax的,关于AJAX

本文详细介绍了Ajax的核心原理和使用方法,包括XMLHttpRequest对象的创建与使用,以及jQuery库中的ajax实现。通过示例代码展示了如何进行异步请求和处理响应数据,强调了Ajax在提升用户体验方面的优势。同时,文章还提及了Ajax处理HTTP状态码和解决跨域问题的重要性。
摘要由CSDN通过智能技术生成

Ajax(异步JavaScript和XML)

ajax主要用于异步加载页面,可以使用户在不刷新页面的情况下进行更新。

ajax的主要优势是对页面的请求以异步的方式发送到服务器。而服务器不会再用整个页面来响应请求,它会在后台来处理请求,与此同时,用户可以继续与页面进行交互。你的脚本也可以按需加载和创建页面内容,而不会打断用户的浏览体验。

1.XMLHttpRequest对象

Ajax的核心技术就是XMLHttpRequest对象。这个对象充当着服务器与浏览器脚本之间的中间人的角色。

但不同浏览器实现XMLHttpRequest对象的方式也不同,所以我们要为其写一个兼容的js。

在IE浏览器中创建XMLHttpRequest对象,而且要注意,不同的IE浏览器使用的XMLHTTP对象也一样,为了兼容所有的对象,代码如下:

function getHTTPObject(){

if(typeof XMLHttpRequest == "undefined"){

XMLHttpRequest = function(){

try{ return new ActiveXObject("Msxml.XMLHTTP.6.0");}

catch(e){}

try{ return new ActiveXObject("Msxml.XMLHTTP.3.0");}

catch(e){}

try{ return new ActiveXObject("Msxml.XMLHTTP");}

catch(e){}

return false;

}

}

return new XMLHttpRequest;

}

如果想要使用XMLHttpRequest对象,直接赋值给一个变量就行了:var request = getHTTPObject();

XMLHttpRequest对象有许多方法,其中最有效的是open方法:

function getNewContent(){

var request = getHTTPObject();

if(request) {

request.open("GET","example.txt",true);

request.onreadystatechange = function(){

if(request.readyState == 4){

var oDiv = document.createElement("div");

oDiv.innerHTML = request.responseText;

document.getElementsByTagName("body")[0].appendChild(oDiv);

}

}

request.send(null);

}else{

alert("对不起,你的浏览器不支持XMLHttpRequest");

}

}

getNewContent();

open方法的三个参数分别是:指定请求类型GET,POST,SEND;获取文件的路径;指定请求是否异步。

onreadystatechange 是一个事件处理函数,在服务器给XMLHttpRequest对象送回相应的时候触发。

readyState 是服务器给XMLHttpRequest发回响应时,XMLHttpRequest的一个属性,浏览器再不同阶段更新readyState 的值:

0:表示未初始化;

1:表示正在加载;

2:表示加载完毕;

3:表示正在交互;

4:表示完成;

responseText用于保存从服务器返回的数据,格式为String类型;

在制定了请求目标,也明确了如何处理响应后,就可以用send方法发送请求了:

request.send(null);

jQuery之ajax实现篇

jQuery的ajax方法非常好用,这么好的东西,你想拥有一个属于自己的ajax么?接下来,我们来自己做一个简单的ajax吧. 实现功能 由于jq中的ajax方法是用了内置的deferred模块,是P ...

Ajax及跨域

概念 Ajax Ajax,Asynchronous JavaScript and XML,字面意思:异步的 JavaScript 和 XML,是指一种创建交互式网页应用的网页开发技术. 用于异步地去获 ...

一个粗心的Bug,JSON格式不规范导致AJAX错误

一.事件回放  今天工作时碰到了一个奇怪的问题,这个问题很早很早以前也碰到过,不过没想到过这么久了竟然又栽在这里. 当时正在联调一个项目,由于后端没有提供数据接口,于是我直接本地建立了一个 json ...

ABP文档 - Javascript Api - AJAX

本节内容: AJAX操作相关问题 ABP的方式 AJAX 返回信息 处理错误 HTTP 状态码 WrapResult和DontWrapResult特性 Asp.net Mvc 控制器 Asp.net ...

ajax异步请求

做前端开发的朋友对于ajax异步更新一定印象深刻,作为刚入坑的小白,今天就和大家一起聊聊关于ajax异步请求的那点事.既然是ajax就少不了jQuery的知识,推荐大家访问www.w3school.c ...

调用AJAX做登陆和注册

先建立一个页面来检测一下我们建立的用户名能不能用,看一下有没有已经存在的用户名吗 可以通过ajax提示一下 $("#uid").blur(function(){ //取用户名 va ...

Ajax 概念 分析 举例

Ajax是结合了访问数据库,数据访问,Jquery 可以做页面局部刷新或者说是页面不刷新,我可以让页面不刷新,仅仅是数据的刷新,没有频繁的刷页面,是现在比较常用的一种方式做页面那么它是怎么实现页面无刷 ...

ajax

常见的HTTP状态码状态码:200 请求成功.一般用于GET和POST方法 OK301 资源移动.所请求资源移动到新的URL,浏览器自动跳转到新的URL Moved Permanently304 未修 ...

学习笔记之MVC级联及Ajax操作

由于刚转型到MVC,MVC的架构模式很多不是很清楚,比如今天就想做个级联的操作,因为之前的ASP.NET的方式是通过:控件-->添加事件-->后台编写级联事件进行触发,但是这个MVC就不同 ...

javascript表单的Ajax 提交插件的使用

Ajax 提交插件 form.js 表单的下载地址:官方网站:http://malsup.com/jquery/form/ form.js 插件有两个核心方法:ajaxForm()和ajaxSubmi ...

随机推荐

阅读推荐——深入浅出Mesos

深入浅出Mesos(一):为软件定义数据中心而生的操作系统http://www.infoq.com/cn/articles/analyse-mesos-part-01 深入浅出Mesos(二):Mes ...

《EnterLib PIAB深入剖析》系列博文汇总_转

转: http://www.cnblogs.com/artech/archive/2008/08/08/1263418.html

C++:构造函数和析构函数能否为虚函数

原文:http://blog.csdn.net/xhz1234/article/details/6510568 C++:构造函数和析构函数能否为虚函数? 简单回答是:构造函数不能为虚函数,而析构函数可 ...

sql查询最大id

如 有个表里有字段 id,name,..... 当name是重复时取其id最大的一条记录 select max(id) id,name from 表 group by name --最小用mini - ...

C# 如何利用反射来加载程序集,并调用程序集中有关类的方法【转】

假设在C盘根目录下有个Dog的Dll程序集文件,该程序集文件中包含类Dog 该类中有个狗叫几声的方法,如何通过反射来加载这个C:\Dog.dll,并且调用Dog类里面的Sound方法呢: public ...

springboot2.1.3集成单节点elasticsearch6.4.0

本案例写了一个关于医生医院搜索的例子,包括求和模式下的打分(分值与相关性有关)搜索,单节点时切勿配置节点名称和节点ip.github地址:https://github.com/zhzhair/spri ...

干掉safedog命令

sc delete safedogguardcenter    shutdown -r -t 00 两条命令搞定

HDU 4370 0 or 1 (01规划)【Dijkstra】||【spfa】

题目大意: 一个n*n的01矩阵,满足以下条件 1.X12+X13+...X1n=12.X1n+X2n+...Xn-1n=13.for each i (1

adb Android Debug Bridge 安卓调试桥

adb devices 获取设备列表及设备状态 adb get-state 获取设备的状态,设备的状态有 3 钟,device , offline , unknown device:设备正常连接 of ...

如何某个js文件中的 console

因为自己引用了别人的一个 js 文件,但里面有很多事件相关的 console 输出.自己并不想去修改别人的文件.但想屏蔽掉里面的 console . 有多个 js 文件里有 console.log . ...

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值