AJAX

如果你不相信努力和时光,那么成果就会是第一个选择辜负你的。不要去否定你自己的过去,也不要用你的过去牵扯你现在的努力和对未来的展望。不是因为拥有希望你才去努力,而是去努力了,你才有可能看到希望的光芒。AJAX,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

Ajax(Asynchronous JavaScript XML)异步请求

异步和同步区别

​ 同步:多个操作不能同时进行,只能一个一个来,

​ 异步:多个操作之间不需要相互等待,可以同时进行

用途:对页面进行局部更新;不需要更新整个页面

1.1. 在JS中使用Ajax

<body>
<script>
    let xmlhttp;
    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else {// code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    // 使用GET请求方式 true表示异步 false表示同步
    xmlhttp.open("GET", "/aja", true);
    xmlhttp.send();
</script>
</body>

1.2. jQuery对Ajax的封装

1.2.1. ajax() 方法

参考:https://www.w3school.com.cn/jquery/ajax_ajax.asp

语法

    		// 发送Ajax请求
            $.ajax({
                //请求路径 ,url是必须的,下面都是可选的
                url: '/aja',
                //请求方式
                type: 'GET',
                //请求参数
                data: {username: 'anne', password: '666'},
                //期望服务器返回的数据格式
                dataType: 'xml',
                //请求成功后会执行的回调函数 data就是服务器返回的数据,status 是状态码,xhr是XMLHttpRequest对象
                success: function (data, status, xhr) {
                    // xml
                    console.log(data);
                    console.log(status);
                    console.log(xhr);
                },
                // 是否为异步 同步
                async: true
            })

服务器返回的数据格式有哪些?

  • “xml”: 返回 XML 文档,可用 jQuery 处理。
  • “html”: 返回纯文本 HTML 信息;包含的 script 标签会在插入 dom 时执行。
  • “script”: 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了 “cache” 参数。注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载)
  • “json”: 返回 JSON 数据 。
  • “jsonp”: JSONP 格式。使用 JSONP 形式调用函数时,如 “myurl?callback=?” jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
  • “text”: 返回纯文本字符串

1.2.2. get() &post()

语法格式

            $.post(
                '/aja',  //  url路径
                {},  // 请求的参数数据
                function (data) {}, // 请求成功后的回调函数
                'html' // 期望服务器返回的数据格式
            ); 

发送get请求

  $.get('/aja', {
                username: $("input:text").val(),
                password: $('input:password').val()
            }, function (data, status, xhr) {
                console.log(data);
            }, 'text');

发送post请求

     $.post('/aja', {
                username: $("input:text").val(),
                password: $('input:password').val()
            }, function (data, status, xhr) {
                console.log(data);
            }, 'text');

1.2.3.案例

1.2.3.1.局部刷新搜索数据

页面代码

<body>
<!--本地资源引入-->
<script src="js/jquery-3.2.1.min.js"></script>
搜索词: <input type="text"> <br>
提示: <span id="show"></span>
<script>
    $(function () {
        // 键盘松开事件
        $('input:text').keyup(function () {
            $.get('/sea', {para: $('input:text').val()}, function (data) {
                $('#show').text(data)
            })
        })
    })
</script>
</body>

后台代码

@WebServlet("/sea")
public class SearchServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("get requet");
        //拿到搜索词
        String para = req.getParameter("para");
        String data = "";
        if ("a".equals(para)) {
            data = "anne anna";
        } else if ("t".equals(para)) {
            data = "tom tommy";
        } else if ("j".equals(para)) {
            data = "jerry json";
        }
        resp.getWriter().write(data);
    }
}

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

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/192935.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!