0

0

jQuery之AJAX的知识点总结

零到壹度

零到壹度

发布时间:2018-03-24 14:23:40

|

1586人浏览过

|

来源于php中文网

原创

这次小编给大家整理了jQuery之AJAX的知识点,下面就是知识点汇总,一起来看一下。

一.AJAX概念
Asynchronous Javascript And XML(异步JavaScript和XML)
AJAX并不是一种语言,而是一种创建交互网页应用的网页开发技术
AJAX是Javascript、XHTML和CSS、DOM、XML和XSTL、XMLHttpRequest 等技术的组合
1.使用XHTML+CSS来标准化呈现;
2.使用XML和XSLT进行数据交换及相关操作;
3.使用XMLHttpRequest对象与Web服务器进行异步数据通信;
4.使用Javascript操作Document Object Model(网络文档对象模型)进行动态显示及交互;
5.使用JavaScript绑定和处理所有数据
什么是 XML?
XML 指可扩展标记语言(EXtensible Markup Language)
XML 是一种标记语言,很类似 HTML
XML 的设计宗旨是传输数据,而非显示数据
XML 标签没有被预定义。您需要自行定义标签。
XML 被设计为具有自我描述性。
XML 是 W3C 的推荐标准
什么是 XSLT?
XSLT 指 XSL 转换(XSL Transformations)[1]
XSLT 是 XSL 中最重要的部分
XSLT 可将一种 XML 文档转换为另外一种 XML 文档
XSLT 使用 XPath 在 XML 文档中进行导航
XSLT 是一个 W3C 标准


AJAX核心对象是XMLHttpRequest


二.AJAX工作原理
用户操作流程:
用户浏览器->JavaScript实例化XmlHttpRequest对象->AJAX引擎->http请求->web服务器->后台业务系统
系统返回流程:
后台业务系统->后台服务器->web服务器->HTML,XML,JSON数据->AJAX引擎->HTML+CSS(Wel浏览器)->用户浏览器


三.AJAX优缺点:
AJAX异步处理优点:
减轻服务器的负担,AJAX一般只从服务器获取只需要的数据
无刷新页面更新,减少用户等待的时间
更好的客户体验,可以将一些服务器的工作转移到客户端来完成,节约网络资源,提高用户体验
无平台限制
促进显示与数据想分离
AJAX异步处理的缺点:
页面中存在大量JS,给搜索引擎带来困难
AJAX干掉了Back和History功能,即对浏览器机制的破坏
存在跨域问题
只能传输及接收utf-8编码数据


1.AJAX实现步骤


window.open(URL,name,features,replace)
URL:一个可选的字符串,声明了要在新窗口中显示的文档的 URL。如果省略了这个参数
或者它的值是空字符串,那么新窗口就不会显示任何文档
name:一个可选的字符串,该字符串是一个由逗号分隔的特征列表,其中包括数字、字母和下划线,
该字符声明了新窗口的名称。这个名称可以用作标记

的属性 target 的值。
如果该参数指定了一个已经存在的窗口,那么 open() 方法就不再创建一个新窗口,
而只是返回对指定窗口的引用。在这种情况下,features 将被忽略
features:一个可选的字符串,声明了新窗口要显示的标准浏览器的特征。如果省略该参数,
新窗口将具有所有标准特征。在窗口特征这个表格中,我们对该字符串的格式进行了详细的说明
replace:
一个可选的布尔值。规定了装载到窗口的 URL 是在窗口的浏览历史中创建一个新条目,
还是替换浏览历史中的当前条目。支持下面的值:
true - URL 替换浏览历史中的当前条目。
false - URL 在浏览历史中创建新的条目


send()send()用于向一个已经连接的socket发送数据,如果无错误,返回值为所发送数据的总数,
否则返回SOCKET_ERROR。[1]  send也是一个英文单词。


responseText属性:
服务器进程返回数据的文本版本
服务器进程返回数据的兼容DOM的XML文档对象 status 服务器返回的状态码, 如:404 = "文件末找到".
你向
ajax后台的程序发送xmlhttp请求的时候, 后台程序接到请求会进             行处理,处理结束后,可以返回一串数据给前台,
这个就是responseText.
一般在后台程序C#中是Response.Write("字符串") php中使用的是echo...就是一个输出字符串
因为要输出一个字符串但有时候得到的是一个数组,但是要把他串行化,用PHP中的json技术把这个数组转换成
一个字符串输出给前端,而前端respText属性能接收住这个字符串,然后通过JS中的json技术把这个字符串
再次转换成JS认识的对象来进行操作(json数据传输类型基本上哪种语言都认识可以用于各种语言的传输与转换)


初始化XMLHttpRequest对象

  if (window.XMLHttpRequest) {// Mozilla, Safari, ...
var http_request = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE 5 ,6
var http_request = new ActiveXObject("Microsoft.XMLHTTP");
}

XMLHttpRequest发出HTTP请求

http_request.open("GET|POST","test.php?GET方式传值",true);
          http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //仅POST请求时需要设置
         //用于向一个已经连接的socket发送数据
         //如果是POST传输方式要把值写在send()函数里
          http_request.send(向一个已连接的套接口发送数据);
      XMLHttpRequest取得响应数据并显示
       http_request.onreadystatechange=function(){
if(http_request.readyState==4  && http_request.status==200){
                    $("p").text(http_request.responseText)
         }
      }

例:
//GET方式
参数1:代表是以get还是post方式发送请求  参数2:发送请求给哪个url  参数3:true代表异步请求,false代表同步请求

http_request.open("GET","test.php?user_name="+username.val(),true);
http_request.send();

发送POST请求

var username=$("input[name='user_name']");

参数1:代表是以get还是post方式发送请求  参数2:发送请求给哪个url  参数3:true代表异步请求,false代表同步请求

http_request.open("POST","test.php",true);
http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

如果是POST传输方式要把值写在send()函数里

http_request.send({username:username});


四.JSON
Javascript Object Notation,是一种轻量级的数据交换格式
JSON每种语言都认识他所以用他进行各种语言的数据的转换
JSON支持多种语言
格式
{key:value,key:value,.....}  对象格式
[{key:value,key:value,.....},{key:value,key:value,.....},......]  数组格式
PHP处理:
$json=json_encode($array) //对变量进行Json编码
$array=json_decode($json) //对Json数据进行解码转换成PHP变量
JavaScript处理:
eval('('+json+')')  //将某个字符串按照JS代码来执行
例:

eval("x=10;y=20;document.write(x*y)")
document.write(eval("2+2"))
JSON.parse(json) //对传过来的json字符串进行解码,变成JS认识的对象
JSON.stringify(obj) //将JS中的值编译成json字符串


五.jQuery中AJAX应用1
.不要忘写

$.ajax({
            //你要传的php文件的路径
            url:"test1.php",    ('服务器url地址')
            //以get方式传输拼接字符串
            data:"user_name="+$('input[name="user_name"]').val(),('名=值&名=值&.....',)
            //以什么方式传输
            type:'get',('post|get')
            //传输返回的数据类型
            dataType:'json',  ('xml|html|text|json|script')
            //展示 数据的方式
            success:function(res){
                $('h1').text('用户名为:'+res.user_name);
            },
                //错误信息
                error:function(xhr){
                },
              timeout:2000,
              async:true,
              cache:false
})

六.jQuery中AJAX应用2

$.get()
$.get('服务器url地址',"json格式或字符串格式",function(res){
        //处理返回的数据
}), "xml|html|json|text|script")

例:

            //'服务器url地址',"json格式或字符串格式"
        $.get("test1.php",{user_name:$("input[name='user_name']").val()},function(data){
               //如果后台发过来的值跟这里的值相等让他执行下面代码
                if(data.status=='ok'){
                    alert("登陆成功");
                    location.href="http://www.wl.com";
                }else{
                    alert("登陆失败");
                }
        //"xml|html|json|text|script"类型
        },'json')


七.jQuery中AJAX应用3
serialize() 序列表表格内容为字符串,串行化数据 用于 Ajax 请求

$.post()
$.post('服务器url地址',"json格式或字符串格式",function(res){
        //处理返回的数据
}), "xml|html|json|text|script")

例:

//'服务器url地址',"json格式或字符串格式" 用post方式提交要用form表单包起来
        // 然后用serialize()来拿里面所有有值
        $.post("test1.php",$('form').serialize(),function(res){
            //如果后台发过来的值跟这里的值相等让他执行下面代码
            if(res.status=='ok'){
                alert("登陆成功");
                location.href="http://www.wl.com";
            }else{
                alert("登陆失败");
            }
            //"xml|html|json|text|script"类型
        },'json')

php中接收处理输出

try{
    $pdo=new PDO("mysql:host=127.0.0.1;port=3306;dbname=数据库名",'数据库账号','数据库密码');
    $pdo->exec("set names utf8");
    $sen=$pdo->query("select * from yh_admin where user_name='{$user_name}' limit 1");
    if($sen->rowCount()>0){
       // $arr=$sen->fetch(PDO::FETCH_ASSOC);
        //echo json_encode($arr);
        //echo 'yes';
       $arr['status']='ok';
    }else{
        echo 'no';
    }
    //切记用json数据类型传输
    echo json_encode($arr);
}catch (PDOException $e){
    echo $e->getMessage();
}

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

418

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

535

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

311

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

77

2025.09.10

jquery插件有哪些
jquery插件有哪些

jquery插件有jQuery UI、jQuery Validate、jQuery DataTables、jQuery Slick、jQuery LazyLoad、jQuery Countdown、jQuery Lightbox、jQuery FullCalendar、jQuery Chosen和jQuery EasyUI等。本专题为大家提供jquery插件相关的文章、下载、课程内容,供大家免费下载体验。

150

2023.09.12

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

311

2023.10.13

jquery删除元素的方法
jquery删除元素的方法

jquery可以通过.remove() 方法、 .detach() 方法、.empty() 方法、.unwrap() 方法、.replaceWith() 方法、.html('') 方法和.hide() 方法来删除元素。更多关于jquery相关的问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

395

2023.11.10

jQuery hover()方法的使用
jQuery hover()方法的使用

hover()是jQuery中一个常用的方法,它用于绑定两个事件处理函数,这两个函数将在鼠标指针进入和离开匹配的元素时执行。想了解更多hover()的相关内容,可以阅读本专题下面的文章。

504

2023.12.04

俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

158

2026.01.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
jQuery 教程
jQuery 教程

共42课时 | 5万人学习

HTML+CSS基础与实战
HTML+CSS基础与实战

共132课时 | 9.8万人学习

tp6+adminlte搭建通用后台
tp6+adminlte搭建通用后台

共39课时 | 5.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号