jQuery的ajax几种请求方法

话不多说,详细代码来介绍这几种请求方式:

ajax与服务器进行数据交换。实现不重载页面的情况下,对部分网页进行局部更新。 通过 jQuery AJAX 方法,您能够使用 HTTP Get 和 HTTP Post 从远程服务器上请求文本、HTML、XML 或 JSON - 同时您能够把这些外部数据直接载入网页的被选元素中。

1.load方法:通过 AJAX 请求从服务器加载数据,并把返回的数据放置到指定的元素中。

1.$('selector').load(url,data,callback)

js代码:

$(function(){
        $('button').click(function(){
            $('#b').load('1.txt',function(responseTxt,statusTxt,xhr){
                if(statusTxt=='success'){
                    alert('外部加载成功');
                }
                if(statusTxt=='error'){
                    alert('Error:'+xhr.status+':'+xhr.statusText);
                }
            })
        })
    })

 

html代码:

<p id="b"></p>
<button>按钮</button>

2.get方法:从指定的资源请求数据 可能返回缓存数据

js代码:

$('button').click(function(){
    $.get('1.txt',function(data,status){
        alert('数据:'+data+'状态:'+status);
    })
    })

html代码:

<p id="b"></p>
<button>按钮</button>

3.post方法:向指定的资源提交数据 不会缓存数据连同请求一起发送数据

js代码:

$('button').click(function(){
        $.post('1.js',{
            name:"Donald Duck",
            city:"Duckburg"
        },function(data,status){
            alert("数据:" + data + "\n状态:" + status);
        })
    })

html代码如上,json代码如下

4.getjson方法:可以通过Ajax异步请求的方式,获取服务器中的数组,并对获取的数据进行解析,显示在页面中

格式:jQuery.getJSON(url,[data],[callback])或$.getJSON(url,[data],[callback])

js代码:

 $(function(){
        $('#btn').bind('click',function(){
            $.getJSON('1.js',function(data){
                $.each(data,function(i,item){
                    $('ul').append("<li>"+item.name+"</li>")
                })
            })

        })
    })

html代码:

<div>
    <span style="background-color: rgba(192, 96, 255, 0.5)">我最喜欢的东西</span>
    <span><input type="button" id="btn" value="加载"></span>
    <ul></ul>
</div>

json格式的文件1.js

[
    {"name":"1"},
    {"name":"2"},
    {"name":"2"},
    {"name":"4"}
]

5.getScript()方法通过http GET请求并执行JavaScript文件。

语法:$.getScript(url,success(response,status))

简写:$.ajax({

url:'url',

datatype:'script',

success:'success'

})

js代码:

   $('#btn').bind('click',function(){
            var $this=$(this);
            $.getScript('1.js',function(data){
                $this.attr("disabled",true);
                var b=eval(data);
               /*console.log(b[0].name)*/
                $('ul').append("<li style='list-style: none'>"+"姓名:"+b[0].name+"年龄:"+b[0].age+"</li>")
            })
        })

html代码:

 <span>个人信息:<input type="button" id="btn" value="加载"></span>
    <ul></ul>

1.js代码:

 

为什么在数据传输过程中需要转换?

网络中传输的都是文本字符串(也就是二进制比特流),因此在向网络通道中写入数据时,都需要将json对象——》文本字符串。而从网络通道中读取数据时,都需要反序列化文本字符串——》json对象

json格式的转换:

json字符串转换为json对象两种方式:parse和eval

var str='{"name":"JSON","address":"北京市西城区","age":25}';
   /* var b=JSON.parse(str);*/
    var b=eval("("+str+")");
    console.log(b);

json对象转换为json字符串:

 var obj={"name":"JSON","address":"北京市西城区","age":25};
    var c=JSON.stringify(obj)
    console.log(typeof c)

未完待续。。。。

jQuery AJAX 是一种异步操作网页内容的技术,允许开发者在无需刷新整个页面的情况下更新部分内容。而同步请求则是在发送请求直到接收到响应后再继续执行后续代码的过程。以下是关于 jQuery AJAX 同步请求的基本介绍: ### 1. **jQuery AJAX 的基本用途** jQuery AJAX 主要用于在服务器上动态获取数据,它允许在不重新加载整个页面的情况下更新特定部分的内容。这种技术非常适用于创建动态、交互式的 Web 应用程序。 ### 2. **同步 AJAX 请求** 同步 AJAX 请求意味着在等待服务器响应完成之前,当前的 JavaScript 函数不会返回控制权给浏览器的事件循环。这意味着如果你在一个重要的 UI 更新之前调用了同步 AJAX 请求,用户将无法看到页面的变化,直到请求完成并且结果处理完毕。这通常会阻碍用户体验,尤其是在需要即时反馈的应用场景中。 ### 3. **如何实现同步 AJAX 请求** 虽然 jQuery 提供了 `$.ajax()` 方法用于发起 AJAX 请求,但在实际应用中通常推荐使用异步版本以优化性能和用户体验。但是,如果确实需要使用同步版本,可以使用以下语法: ```javascript $.ajax({ url: "http://example.com/data", type: "GET", async: false, // 设置为 true 表示异步,默认情况就是如此;设置为 false 则表示同步模式 success: function(data) { console.log("请求成功", data); }, error: function(xhr, status, error) { console.error("请求失败", xhr.responseText || status || error); } }); ``` 请注意,设置 `async: false` 会让请求变成同步模式,这意味着 `success` 和 `error` 回调函数将在请求完成后立即执行,而不是等到下一个事件循环周期。 ### 4. **何时选择同步 AJAX 请求** 同步 AJAX 请求很少被推荐在现代应用程序中使用,因为它们可能导致阻塞 UI 或影响性能。然而,在某些特殊情况下,比如为了保持代码的简单性和一致性,或在脚本中只有几个关键点需要处理数据时,可能会选择同步 AJAX。 ### 相关问题: 1. **异步与同步 AJAX 请求的主要区别是什么?** 2. **为何在大多数情况下我们更倾向于使用异步 AJAX 请求?** 3. **如何避免同步 AJAX 请求带来的潜在问题?**
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值