Ajax

作者: 黑色的五叶草 | 来源:发表于2018-02-21 15:38 被阅读0次

Ajax 是什么?有什么作用?

  • XML 被设计用来传输和存储数据,其焦点是数据的内容(旨在传输信息)。HTML 被设计用来显示数据,其焦点是数据的外观(旨在显示信息)。
    XML 是独立于软件和硬件的信息传输工具。
  • Ajax是Asynchronous JavaScript And XML的缩写,即异步的JavaScript和XML。
    这一技术能够向服务器请求额外的数据,而不是卸载整个页面。
    HTTP请求流程如下:
    1.浏览器向服务器发送请求;
    2.服务器接受请求并生成response;
    3.服务器将response返回给浏览器;
    4.浏览器刷新整个页面来显示新的数据;
    整个请求流程是同步的,顺序执行的。
    而Ajax是一部执行的,就是脱离当前的页面请求、加载等单独执行,通过JavaScript单独发送请求,获得服务器返回的新数据,通过操作DOM改变页面局部内容,而不会重新加载整个页面,带来良好的用户体验
    Ajax的get || post:
    • 与post相比,get更简单也更快,并且在大部分浏览器下都能用,然而在一下情况中,应当使用post请求:
      1. 无法使用缓存文件(更新服务器上的文件或数据库)
      2. 向服务器发送大量数据(post没有数据量限制)
      3. 发送包含位置字符的用户输入时,post比get更稳定也更可靠

基础示例:

<div id="mydiv">你的名字</div>
<button id="btn">修改内容</button>


<script type="text/javascript" language="javascript">
    document.getElementById('btn').addEventListener('click', function () {
        var XMLHttp = new XMLHttpRequest();
        XMLHttp.onreadystatechange = function () {
            if (XMLHttp.readyState === 4 && XMLHttp.status === 200) {
                dealwith();
            }
        }

        XMLHttp.open('GET', './text.php', true);
        XMLHttp.send();
    })

    function dealwith() {
        document.getElementById('mydiv').innerHTML = XMLHttp.responseText;
    }

AJAX封装

    document.querySelector('#btn').addEventListener('click', function(){
        ajax({
            url: '/login',   //接口地址
            type: 'get',               // 类型, post 或者 get,
            data: {
                username: 'xiaoming',
                password: 'abcd1234'
            },
            success: function(ret){
                console.log(ret);       // {status: 0}
            },
            error: function(){
               console.log('出错了')
            }
        })
    });

        function ajax(opts){
            var xhr = new XMLHttpRequest();
            xhr.onreadystatechange = function(){
                if(xhr.readyState === 4 && xhr.status === 200){
                    var aa = JSON.parse(xmlhttp.responseText);
                    opts.success(aa);
                }else if(xhr.readyState === 4 && xhr.status !== 200){
                    opts.error();
                }
            }

            var dataStr = '';
            for(var key in opts.data){
                dataStr = dataStr + key + '=' + opts.data[key] + '&'
            }
            dataStr = dataStr.substring(0, dataStr.length-1)
            
            if(opts.type.toLowerCase() === 'get'){
                xhr.open(opts.type, opts.url + '?' + dataStr, true);
                xhr.send();
            }
            if(opts.type.toLowerCase() === 'post'){
                xhr.open(opts.type, opts.url, true);
                xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
                xhr.send(dataStr);
            }
        }

相关文章

  • AJAX

    主要内容: ajax 是什么、原生ajax 写法和jQuery ajax写法。 AJAX 是什么 ajax,即As...

  • JavaScript进阶知识点--AJAX及JSON

    AJAX 关于 AJAX 什么是 AJAX AJAX 的全称是 Asynchronous JavaScript a...

  • HTML5权威指南 | 第五部分 高级功能

    三十二、使用AJAX(上) Ajax起步: 使用Ajax事件: Ajax请求的错误处理: 中止Ajax请求: 三十...

  • ajax学习笔记

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

  • AJAX

    一、简介 AJAX菜鸟教程 什么是 AJAX ? AJAX = 异步 JavaScript 和 XML。 AJAX...

  • js之AJAX复习

    异步交互和同步交互 什么是Ajax? Ajax的工作原理。 Ajax包含的技术: Ajax的缺陷: Ajax的核心...

  • 复习jQuery - ajax

    jQuery ajax - ajax() 方法 $.ajax({ url:'oo.php', ...

  • jQuery中Ajax请求的使用和四个步骤示例

    ajax() 方法用于执行 AJAX(异步 HTTP)请求,所有的 jQuery AJAX 方法都使用 ajax(...

  • ajax

    1、什么是ajax? 2、ajax的原理 3、ajax的核心对象 4、ajax的优点: ajax的缺点: 被jqu...

  • ajax

    Ajax 1 - 请求纯文本 Ajax 2 - 请求JSON数据 Ajax 3 - 请求Github接口 Ajax...

网友评论

      本文标题:Ajax

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