上网过程中,专门存放资源和对外提供资源的电脑,叫做服务器
上网过程中,负责获取和消费资源的电脑,叫客户端
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剩余内容学完