JQuery中的load()、$

3.传递方法

load()方法的传递方式根据参数data来自动指定。如果没有参数传递,则采用GET方式传递;反之,则会自动转换为POST方法。

//无参数传递,则是GET方式

$(‘#resText’).load(‘test.php’,function(){

//…

});

//有参数传递,则是POST方式

$(‘#resText’).load(‘test.php’,{name:‘rain’,age:‘22’},function(){

//…

});

4.回调函数

对于必须在加载完成后才能继续的操作,load()方法提供了回调函数(callback),该函数有3个参数,分别代表请求返回的内容请求状态XMLHttpRequest对象,jQuery代码如下:

$(“#resText”).load(“test.html”,function (responseText, textStatus, XMLHttpRequest){

alert(responseText); //请求返回的内容

alert(textStatus); //请求状态:success,error

alert(XMLHttpRequest); //XMLHttpRequest对象

});

在load()方法中,无论Ajax请求是否成功,只要当请求完成(complete)后,回调函数(callback)就被触发。


**load()方法通常用来从Web服务器上获取静态的数据文件,然后这并不能体现Ajax的全部价值。在项目中,如果需要传递一些参数给服务器中的页面,那么可以使用 . g e t ( ) ∗ ∗ 或者 ∗ ∗ .get()**或者** .get()或者.post()或者$.ajax()**方法。


$.get()


$.get()方法使用GET方式来进行异步请求。

它的结构为:

$.get(url[,data][,callback][,type])

| 参数名称 | 类型 | 说明 |

| :-: | :-: | :-: |

| url | String | 请求的HTML页的URL地址 |

| data(可选) | Object | 发送至服务器的key/value数据会作为QueryString附加到请求URL中 |

| callback(可选) | Function | 载入成功时回调函数(只有当Response的返回状态是success才调用该方法)自动将请求结果和状态传递给该方法 |

| type(可选) | String | 服务器端返回内容的样式,包括xml、html、script、json、text和_default |

我们用$.get()来实现评论的功能:

get1.html

评论:

姓名:

内容:

已有评论:

get1.html向get1.php发送get请求,服务器端get1.php的代码如下:

<?php header("Content-Type:text/html; charset=utf-8"); echo "
{$_REQUEST['username']}:

{$_REQUEST['content']}

"; ?>

由于服务器端get1.php返回的数据格式是一段HTML片段,因此并不需要经过处理就可以将新的HTML数据插入到主页面中。

我们再来看一下get.html中的核心代码jQuery是如何完成get请求的:

$(function(){

$(“#send”).click(function(){

$.get(“get1.php”, {

username : $(“#username”).val() ,

content : $(“#content”).val()

}, function (data, textStatus){

$(“#resText”).html(data); // 把返回的数据添加到页面上

}

);

})

})

我们可以看到在回调函数中,我们直接将返回回来的data(也就是HTML片段)直接在html中使用。

HTML片段实现起来只需要很少的工作量,但这种固定的数据结构并不一定能够在其他的Web应用程序中得到重用。

XML文档

服务器端是如何接收数据然后返回XML的呢?

代码如下:

get2.php

<?php header("Content-Type:text/xml; charset=utf-8"); echo "<?xml version='1.0' encoding='utf-8'?>".

“”.

“<comment username=‘{$_REQUEST[‘username’] }’ >”.

“{$_REQUEST[‘content’]}”.

“”.

“”;

?>

注意:由于服务器端返回的数据格式是XML文档,因此需要在服务端设置Content-Type类型,代码如下:

header(“Content-Type:text/xml; charset=utf-8”);

对于服务器端返回的数据是XML格式的情况,我们需要对返回的数据进行处理,才能应用到HTML中,jQuery有强大的DOM处理能力,处理XML文档与处理HTML文档一样,也可以使用常规的attr()、find()、filter()以及其他方法。jQuery代码如下:

$(function(){

$(“#send”).click(function(){

$.get(“get2.php”, {

username : $(“#username”).val() ,

content : $(“#content”).val()

}, function (data, textStatus){

var username = $(data).find(“comment”).attr(“username”);

var content = $(data).find(“comment content”).text();

var txtHtml = “

”+username+“:

”+content+“

”;

$(“#resText”).html(txtHtml); // 把返回的数据添加到页面上

},‘XML’);

});

})

返回数据格式为XML文档的过程实现起来比HTML片段要稍微复杂些,但XML文档的可移植性是其他数据格式无法比拟的,因此以这种格式提供的数据的重要性将极大提高。不过,XML文档体积相对较大,与其他文件格式相比,解析和操作它们的速度要慢一些。

JSON文件

之所以会出现这种数据格式的文件,很大程度上是因为XML文档体积大和难以解析。JSON文件和XML文档一样,也可以方便的被重用。而且,JSON文件非常简洁,也容易阅读。

服务器端是如何接收数据然后返回JSON的呢?

代码如下:

get3.php

<?php header("Content-Type:text/html; charset=utf-8"); echo "{ \"username\" : \"{$_REQUEST['username']}\" , \"content\" : \"{$_REQUEST['content']}\"}" ?>

JSON的格式还是比较严格的,所以格式不能写错了。

由于服务器端返回的数据格式是JSON文件,因此需要对返回的数据进行处理之后,才可以将新的HTML数据添加到主页面中。HTML文件其他部分还是一样,要修改的地方是jQuery部分,jQuery代码如下:

$(function(){

$(“#send”).click(function(){

$.get(“get3.php”, {

username : $(“#username”).val() ,

content : $(“#content”).val()

}, function (data, textStatus){

var username = data.username;

var content = data.content;

var txtHtml = “

”+username+“:

”+content+“

”;

$(“#resText”).html(txtHtml); // 把返回的数据添加到页面上

},“json”);

});

})

在上面的代码中,将$.get()方法的第4个参数(type)设置为”json”来代表期待服务器返回的数据格式。

对于服务器端返回HTML片段、XML数据、JSON数据的优缺点进行分析,可以的得知在不需要与其他应用程序共享数据的时候,使用HTML片段来提供返回数据一般来说是最简单的;如果数据需要重用,那么JSON文件是不错的选择,它在性能和文件大小方面具有优势,它是Web服务器领域的“世界语”,我们推荐使用JSON。

$.post()


它与$.get()方法的结构和使用方式都相同,不过它们之间仍然有以下区别。

  • GET请求会将参数跟在URL后进行传递,而POST请求则是作为HTPP消息的实体内容发送给Web服务器。当然,在Ajax请求中,这种区别对用户是不可见的

  • GET方式对传输的数据有大小限制(通常不能大于2KB),而使用POST方式传递的数据量要比GET方式大得多(理论上不受限制)

  • GET方式请求的数据会被浏览器缓存起来,因此其他人就可以从浏览器的历史记录中读取到这些数据,例如账号和密码等。在某种情况下,GET方式会带来严重的安全性问题,而POST方式相对来说就可以避免这些问题。

  • GET方式和POST方式传递的数据在服务器端的获取也不相同。在PHP中,GET方式的数据可以用KaTeX parse error: Undefined control sequence: \[ at position 6: \_GET\̲[̲\]获取,而POST方式可以用_POST[]获取。两种方式都可以用$_REQUEST[]来获取。

由于POST和GET方式提交的所有数据都可以通过$_REQUEST[]来获取,因此只需要改变jQuery函数,就可以将程序在GET请求和POST请求之间切换。

代码如下:

$(function(){

$(“#send”).click(function(){

$.post(“post1.php”, {

username : $(“#username”).val() ,

content : $(“#content”).val()

}, function (data, textStatus){

$(“#resText”).html(data); // 把返回的数据添加到页面上

});

})

})

load()、 . g e t ( ) 和 .get()和 .get().post(),我们可以发现, . g e t ( ) 和 .get()和 .get().post()方法是jQuery中的全局函数,而在此之前讲的load()是对jQuery对象进行操作的。

上面使用load()、 . g e t ( ) 和 .get()和 .get().post()方法完成了一些常规的Ajax程序,如果还需要编写一些复杂的Ajax程序,那么就要用到jQuery中的 . a j a x ( ) 方法。 .ajax()方法。 .ajax()方法。.ajax()方法不仅能实现与load()、 . g e t ( ) 和 .get()和 .get().post()方法同样的功能,而且还可以设定beforeSend()、error()、success()以及complete()回调函数,通过这些函数,可以给用户更多的Ajax提示信息。另外,还有一些参数,可以设置Ajax请求的超时时间或者页面的”最后更改”状态等。关于$.ajax()方法将在下一篇博客中讲解

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后:

总结来说,面试成功=基础知识+项目经验+表达技巧+运气。我们无法控制运气,但是我们可以在别的地方花更多时间,每个环节都提前做好准备。

面试一方面是为了找到工作,升职加薪,另一方面也是对于自我能力的考察。能够面试成功不仅仅是来自面试前的临时抱佛脚,更重要的是在平时学习和工作中不断积累和坚持,把每个知识点、每一次项目开发、每次遇到的难点知识,做好积累,实践和总结。

点击这里领取Web前端开发经典面试题

小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**

[外链图片转存中…(img-i3Qy2aDF-1713510829263)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

[外链图片转存中…(img-qUNqaqgp-1713510829263)]

最后:

总结来说,面试成功=基础知识+项目经验+表达技巧+运气。我们无法控制运气,但是我们可以在别的地方花更多时间,每个环节都提前做好准备。

面试一方面是为了找到工作,升职加薪,另一方面也是对于自我能力的考察。能够面试成功不仅仅是来自面试前的临时抱佛脚,更重要的是在平时学习和工作中不断积累和坚持,把每个知识点、每一次项目开发、每次遇到的难点知识,做好积累,实践和总结。

点击这里领取Web前端开发经典面试题

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值