首页 前端知识 Ajax学习(3rd)

Ajax学习(3rd)

2024-02-04 11:02:39 前端知识 前端哥 814 309 我要收藏

上网过程中,专门存放资源和对外提供资源的电脑,叫做服务器
上网过程中,负责获取和消费资源的电脑,叫客户端

URL地址
URL (全称是UniformResourceLocator)文叫统一资源定位符, 用于标识互联网上每个资源的唯一存放位置。

浏览器只有通过URL地址,才能正确定位资源的存放位置,从而成功访问到对应的资源。

URL地址组成部分
URL地址一般由三部组成:

①客户端与服务器之间的通信协议

②存有该资源的服务器名称

③资源在服务器上具体的存放位置


网页中如何请求数据
数据,也是服务器对外提供的一种资源。只要是资源,必然要通过请求-处理-响应的方式进行获取。

如果要在网页中请求服务器上的数据资源,则需要用到XMLHttpRequest对象。XML HttpRequest (简称xhr)是浏览器提供的js成员,通过它,可以请求服务器上的数据资源。

最简单的用法let xhrObj = new XMLHttpRequest()

资源的请求方式
客户端请求服务器时,请求的方式有很多种,最常见的两种请求方式分别为get和post请求。

●get请求通常用于获取服务端资源(向服务器要资源)

例如:根据URL地址,从服务器获取HTML文件、CsS 文件、js文件、 图片文件、数据资源等

●post请求通常用于向服务器提交数据(往服务器发送资源)

例如:登录时向服务器提交的登录信息、注册时向服务器提交的注册信息、添加用户时向服务器提交的用户信息等各种数据提交操作

什么是Ajax
Ajax的全称是Asynchronous Javascript And XML (异步JavaScript 和XML)。

通俗的理解:

在网页中利用XMLHttpRequest对象和服务器进行数据交互的方式,就是Ajax。

 jQuery中的Ajax
浏览器中提供的XMLHttpRequest用法比较复杂,所以jQuery对XMl HttpRequest进行了封装,提供了一系列Ajax相关的函数,极大地降低了Ajax的使用难度。

jQuery中发起Ajax请求最常用的三个方法如下:

●$.get()

●$.post()

●$.ajax(

1.$.get()函数的语法
jQuery中$.get0函数的功能单一,专用来发起get请求,从而将服务器上的资源请求到客户端来进行使用。

$.get0函数的语法如下:

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

其中,三个参数各自代表的含义如下:


使用$.get()函数发起带参数的请求时,

示例代码如下:

$. get ('http:/ /www. liulongbin.top:3006/api/getbooks', { id: 1 },function(res) {

console. log (res)

})

2. $.post()函数的语法
jQuery中$.post()函数的功能单一, 专用来发起post求,从而向服务器提交数据。

$.post()函数的语法如下:

$ .post (ur1,[data], [callback])

其中,三个参数各自代表的含义如下:

$.post(

'http: //www.liulongbin.top:3006/api/addbook', //请求的URL地址

{bookname:'水浒传',author:'施耐庵',publisher:'上海图书出版社’},//提交数据

function(res) { //回调函数

console. log (res)

})

$.ajax()函数的语法
相比于$.get()和$.post()函数, jQuery中提供的$.ajax()函数,是一个功能比较综合的函数, 它允许我们对Ajax请求进行更详细的配置。

$.ajax()函数的基本语法如下:

 

$.ajax({

type:”     “,                             // 请求的方式,例如GET或POST

url :”     “,                               //请求的URL 地址

data: { },                                   // 这次请求要携带的数据

success: function(res) { }        //请求成功之后的回调函数

})

接口的概念
使用Ajax请求数据时,被请求的URL地址,就叫做数据接口(简称接口)。同时,每个接口必须有请求方式。

例如:

http://www. liulongbin. top:3006/ api/ getbooks获取图书列表的接口 (GET请求)

http:/ /www. liulongbin. top: 3006/ api/ addbook添加图书的接口(POST请求)

通过GET方式请求接口的过程

 

接口测试工具(PostMan)

       接口测试工具能让我们在不写代码任何代码的情况下,对接口进行调用与测试

POST:

步骤:

1.选择请求的方式

2. 填写请求的URL地址

3.选择Body面板并勾选数据格式(x-www...)

4. 填写要发送到服务器的数据

5. 点击Send按钮发起POST请求

6.查看服务器响应的结果

接口文档
1.接口文档的组成部分

接口文档可以包含很多信息,也可以按需进行精简,不过,一个合格的接口文档,应该包含以下6项内容,从而为接口的调用提供依据:

1.接口名称:

用来标识各个接口的简单说明,如登录接口,获取图书列表接口等。

2.接口URL:

接口的调用地址。

3.调用方式:

接口的调用方式,如GET或POST。

4.参数格式:

接口需要传递的参数,每个参数必须包含参数名称、参数类型、否必选、参数说明这4项内容。

5.响应格式:

接口的返回值的详细描述,一般包含数据名称、数据类型、说明3项内容。

6.返回示例 (可选) :

通过对象的形式,列举服务器返回数据的结构。

2. form表单


表单在网页中主要负责数据采集功能。

HTML 中的<form>标签,就是用于采集用户输入的信息,并通过<form>标签的提交操作,把采集到的信息提交到服务器端进行处理。

2.2表单的组成
1.表单标签

2.表单域

表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。

3.表单按钮

<form>标签的属性
<form>标签用来采集数据,<form> 标签的属性则是用来规定如何把采集到的数据发送到服务器。

 <form>标签的属性
1.action

       向何处发送表单数据。

              Action的值由后端提供的URL值接收

              默认提交到当前页面

              默认会跳转到提交的页面

2.target

 

3.method

       以何种方式提交数据。

              使用URL提交GET或POST(默认GET)

              GET:适用于,少量不重要的数据提交

              POST:适用于大量、复杂或包含文件上传的数据

4.enctype

       在发送表单数据前,如何对数据进行编码

它的可选值有三个,默认情况下,enctype 的值为application/x-www-form-urlencoded,表示在发送前编码所有的字符。

 

注意:

在涉及到文件上传的操作时,必须将enctype的值设置为multipart/form-data

如果表单的提交不涉及到文件上传操作,则直接将enctype的值设置为application/x-www-form-urlencoded即可!

表单同步提交
通过点击submit按钮,触发表单提交的操作,从而使页面跳转到action URL的行为,叫做表单的同步提交。

缺点
①<form>表单同步提交后,整个页面会发生跳转,跳转到action URL所指向的地址,用户体验很差。

②<form>表单同步提交后,页面之前的状态和数据会丢失。

解决
由ajax提交数据即可

通过Ajax提交表单数据


监听表单提交事件
在jQuery中,可以使用如下两种方式,监听到表单的提交事件:

$('#form1').submit (function(e) {

alert('监听到了表单的提交事件')

})

$('#form1').on('submit', function(e) {

alert('监听到了表单的提交事件')

})

阻止表单默认提交行为
当监听到表单的提交事件以后,可以调用事件对象的event.preventDefault()函数,来阻止表单的提交和页面的跳转,示例代码如下:

$('#form1').submit (function(e) {

//阻止表单的提交和页面的跳转

e .preventDefault ()

})

$('#form1').on('submit', function(e) {

//阻止表单的提交和页面的跳转

e .preventDefault ()

})

模板引擎
渲染Ul结构时遇到的问题
如果UI结构比较复杂,则拼接字符串的时候需要格外注意引号之前的嵌套。且,一但需求发生变化,修改起来也非常麻烦。

什么是模板引擎
模板引擎

可以根据程序员指定的模板结构和数据,自动生成一个完整的HTML 页面。

 

模板引擎的好处
①减少了字符串的拼接操作

②使代码结构更清晰

③使代码更易于阅读与维护

 art-template简介
art-template是一个简约、 超快的模板引擎。

中文官网首页为art-template

art-template的使用步骤
①导入art-template

②定义数据

③定义模板

④调用template函数

⑤渲染HTML结构

art-template标准语法
1.什么是标准语法

art-template提供了{{ }}这种语法格式,在{{ }}内可以进行变量输出,或循环数组等操作,这种{{ }}语法在art-template中被称为标准语法。

2.标准语法-输出

{{    value     }}

{{    obj. key }}if

{{    obj['key']}}

{{    a?b:c     }}

{{    a || b    }}

{{    a+b        }}

在{{}}语法中,可以进行变量的输出、对象属性的输出、三元表达式输出、逻辑或输出、加减乘除等表达式输出。

3.标准语法-原文输出

{{@ value }}

如果要输出的value值中,包含了HTML标签结构,则需要使用原文输出语法,才能保证HTML标签被正常渲染。

4.标准语法-条件输出

如果要实现条件输出,则可以在{{ }}中使用if .... else if ... /if的方式,进行按需输出。

{{if value}}按需输出的内容{{/if}}

{{if v1}}按需输出的内容{{else if v2}}按需输出的内容{{/if}}

5.标准语法-循环输出

如果要实现循环输出,则可以在{{  }}内,通过each语法循环数组,当前循环的索引使用$index进行访问,当前的循环项使用$value进行访问。

{{each arr}}

{{$index}} {{$value}}

{{/each} }

6.标准语法-过滤器 

过滤器的本质,就是一个function处理函数。

{{value I filterName}}

过滤器语法类似管道操作符,它的上一个输出作为下一个输入。

定义过滤器的基本语法如下:

template.defaults.imports.filterName = function (value) {/ *return处理的结果*/ }

例子:

<div>注册时间: {{regTime | dateFormat}}</div>

定义一个格式化时间的过滤器dateFormat如下:

template.defaults.imports.dateFormat =

function (regTime) {

var y = date.regTime ()

var m = date.regTime () +1

var d = date.regTime ()

return y + '-'+m+'-'+d   //注意,过滤器最后一定要return一个值

第三天百日救赎计划结束,明天将ajax剩余内容学完

转载请注明出处或者链接地址:https://www.qianduange.cn//article/1289.html
标签
服务器ajax
评论
会员中心 联系我 留言建议 回顶部
复制成功!