基于jquery的Ajax数据交互

2021-05-25  本文已影响0人  喑宝儿
1、客户端与服务器

服务器:存放和对外提供资源的电脑(eg:饭馆)

客户端:获取和消费资源的电脑(个人电脑),通过浏览器访问服务器上的资源(eg:客人)

2、URL地址

(1)URL:统一资源定位符,标识互联网每个资源的唯一存放位置

(2)组成:通信协议+服务器名称+具体的存放位置

(3)通信过程:请求(客户端请求)——处理(服务器)——响应(服务器响应客户端)

3、网页中常见的资源

文字、image、audio、video等,网页中的数据也是资源

网页的完整组成:html+css+js+数据(灵魂)

4、网页中请求数据
5、资源的请求方式:get和post
6、Ajax

(1)Ajax主要实现网页和服务器之间的数据交互

(2)jquery中的Ajax

应用场景:

1、检测用户输入

2、输入关键字,动态加载提示列表

3、数据分页显示

4、数据的增删改查

(3)jquery中发起Ajax请求最常用的三个方法:

(4)$.get()语法

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

url string 必选 要请求的url地址
data object 非必选 请求数据时需要传递的参数
callback function 非必选 数据请求成功时的回调函数

(5)$.post()语法

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

url string 必选 数据提交的url地址
data object 非必选 要提交的数据
callback function 非必选 数据提交成功时的回调函数

(6)$.ajax()语法

$.ajax({
 type: '',  // 请求的方式,GET或者POST
 url: '',  // 请求的url网址
 data: {},  // 请求的参数
 success: function(res) { }  // 请求成功的回调函数
})

(7)接口:被请求的URL地址,就叫做数据接口,每个接口必须有请求方式

(8)接口文档:接口名称、接口URL、调用方式、参数格式、响应格式、返回示例(可选)

7、form表单

(1)表单:进行数据采集,并且将用户输入的数据提交到服务端进行处理,使用form标签包裹,submit按钮会将数据提交到action设置的地址,并且进行页面跳转

(2)form标签的属性

table.jpeg

(3)表单同步提交

(4)监听表单提交事件

// 方式一
$('#btn').submit(function(e) { alert('监听到了表单的提交事件') })

// 方式二
$('#btn').on('submit', function(e) { alert('监听到了表单的提交事件') })

(5)阻止表单默认提交行为

8、快速操作表单数据

(1)serialize()函数:快速获取表单数据,一次性获取所有的表单元素,这时表单元素都必须设置name,得到的结果是字符串

(2)reset()函数:DOM元素才有的函数,置空form表单

9、模板引擎:指定模板结构和数据生成页面

数据+模板结构——>模板引擎——>HTML页面

10、exec()函数

检索字符串中的正则是否匹配,有匹配的值,返回该匹配值,没有匹配的值,返回null

var str = 'hello'
var pattern = /o/
var pattern1 = /x/

console.log(pattern.exec(str))  // ["o", index: 4, input: "hello", groups: undefined]
console.log(pattern1.exec(str))  // null
11、正则表达式中 ( ) 包起来的内容表示一个分组,可以通过分组来提取自己想要的内容
 var str = '<div>我是{{name}}</div>'
 // 这里提取的是{{name}}
 var pattern = /{{([a-zA-Z]+)}}/
 var patternResult = pattern.exec(str)
 console.log(patternResult)  
// ["{{name}}", "name", index: 7, input: "<div>我是{{name}}</div>", groups: undefined]

// 可以通过字符串的replace()将{{name}}换成name
str = str.replace(patternResult[0], patternResult[1])
console.log(str)  // <div>我是name</div>
12、自己实现简易模板引擎
<div id="user-box"></div>

<!-- 页面模板 -->
<script type="text/html" id="tpl-user">
    <div>姓名:{{name}}</div>
    <div>年龄:{{age}}</div>
    <div>性别:{{gender}}</div>
    <div>住址:{{address}}</div>
</script>


<script>
    var data = {name: 'zs', age: 24, gender: '男', address: '西安'}

    function template(id, data) {
        var str = document.getElementById('tpl-user').innerHTML
        // \s表示空格,*表示多个空格
        var pattern = /{{\s*([a-zA-Z]+)\s*}}/

        var patternResult = null
        // 每匹配一个{{}},执行完后再匹配下一个{{}}
        while (patternResult = pattern.exec(str)) {
            str = str.replace(patternResult[0], data[patternResult[1]])
        }
        return str
    }

    var str = template('tpl-user', data)
    document.querySelector('#user-box').innerHTML = str
</script>
上一篇 下一篇

猜你喜欢

热点阅读