美文网首页
Ajax开发笔记

Ajax开发笔记

作者: Looog | 来源:发表于2016-11-09 14:22 被阅读45次

一、 同步与异步

浏览网页的时候两种情况:
1、白屏 (同步)
2、页面不刷新 (异步) 局部更新页面不会全屏刷新
实现异步局部更新(不使用XMLHttpRequest)
Iframe

Iframe
表单提交后的相应页面返回到iframe当中,主页面内容不变

二、 原生ajax实现异步通信

var btn = document.getElementById('btn');
        btn.onclick  = function(){
            var username = document.getElementById('username').value;
            var password = document.getElementById('password').value;
            //第一步:创建对象
            //秘书出场
            var xhr = null;
            if(window.XMLHttpRequest){
                xhr = new XMLHttpRequest();
            }else{
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
            //初始化
            //准备好了
            var url = './check.php?username='+username+"&password="+password;
            xhr.open('get',url,true);//true代表异步,false代表同步。

            //这段代码在xhr.send();执行完之后才能执行
            //这件事做完了怎么办
            //事情办完之后干什么
            xhr.onreadystatechange = function(){
                if(xhr.readyState == 4){
                    if(xhr.status == 200){
                        var data = xhr.responseText;
                        if(data == 1){
                            document.getElementById('showInfo').innerHTML = '用户名或者密码错误';
                        }else if(data == 2){
                            document.getElementById('showInfo').innerHTML = '登录成功';
                        }
                    }
                };
            }
            //实际的去做这件事
            //去做这件事情
            xhr.send(null);
        }

check.php文件如下:

$username = $_GET['username'];
$password = $_GET['password'];

if($username == 'admin' && $password == '123'){
    echo 2;
}else{
    echo 1;
}
?>```

xhr.readyState
0:XMLHttpRequest对象创建完成
1:表示发送请求的动作准备好了,但是还没有开始发送
2:表示已经发送完成
3:服务器已经返回了数据
4:服务器返回的数据已经可以使用

xhr.status == 200 表示请求成功;
404表示没有找到这个页面或者数据
503表示服务器端发生错误

回调函数接到的数据类型
responseText
json  html  script
responseXML


json  javascript object notation
相对于xml的优点:数据量相对较小,解析比较方便。

###三、jQuery的ajax语法


![jQuery的ajax语法](https://img.haomeiwen.com/i2572649/1b3323991ff5d7df.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

#####dataType为String类型

预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如XML 
MIME类型就被识别为XML。在1.4中,JSON就会生成一个JavaScript对象,而script则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值: 
"xml": 返回 XML 文档,可用 jQuery 处理。
"html": 返回纯文本 HTML 信息;包含的script标签会在插入dom时执行。
"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了"cache"参数。'''注意:'''在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。(因为将使用DOM的script标签来加载)
"json": 返回 JSON 数据 。
"jsonp": JSONP格式。使用 JSONP形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 callback=后面的? 为正确的函数名,以执行回调函数。
"text": 返回纯文本字符串

#####date为Object/String类型

发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。必须为 Key/Value 格式。如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:["bar1", "bar2"]} 转换为 "&foo=bar1&foo=bar2"。

相关文章

  • ajax请求 有时会有状态码0

    资料 【error】jQuery ajax请求错误返回status 0和错误error的问题 【开发笔记】ajax...

  • ajax学习笔记

    Ajax学习笔记 Ajax简介 1. Ajax是什么? Ajax : Asynochronous javascri...

  • Ajax开发笔记

    一、 同步与异步 浏览网页的时候两种情况:1、白屏 (同步)2、页面不刷新 (异步) 局部更新页面不会全屏刷...

  • 2.0.1 Ajax

    AJAX (Asynchronous JavaScript And XML) 异步的Web编程方式 ajax开发步...

  • 初识ajax

    一、ajax介绍 ajax(Asynchronous Javascript And XML), 在前端的开发中主要...

  • PHP全栈学习笔记13

    php与ajax技术 web2.0的到来,ajax逐渐成为主流,什么是ajax,ajax的开发模式,优点,使用技术...

  • PHP全栈学习笔记13

    php与ajax技术 web2.0的到来,ajax逐渐成为主流,什么是ajax,ajax的开发模式,优点,使用技术...

  • ajax小结

    在开发过程中ajax是必须的,对近期在ajax的使用上的心得进行总结。 一、关于ajax AJAX = Async...

  • 如何在rails中运用ajax ?

    Rails 应用开发笔记(十) 在本应用里,哪些地方需要用到 Ajax 技术呢? 收藏和点赞功能; 评论功能; ‘...

  • 【Java Web开发系列课程】Ajax快速入门

    免费课程链接:【Java Web开发系列课程】Ajax快速入门 简介: Ajax是Asynchronous Jav...

网友评论

      本文标题:Ajax开发笔记

      本文链接:https://www.haomeiwen.com/subject/tnwzuttx.html