美文网首页
基于jquery的Ajax数据交互

基于jquery的Ajax数据交互

作者: 喑宝儿 | 来源:发表于2021-05-25 18:25 被阅读0次
1、客户端与服务器

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

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

2、URL地址

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

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

  • http://(通信协议)www.baidu.com(服务器名称)/index.html(具体存放位置)

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

3、网页中常见的资源

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

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

4、网页中请求数据
  • 网页请求服务器上的数据,需要使用XMLHttpRequest(简称xhr,是浏览器提供的js对象)对象

  • js原生用法:var xhr = new XMLHttpRequest()

5、资源的请求方式:get和post
  • get 通常用于获取服务器资源

  • post 通常用于向服务器提交数据(发送资源)

6、Ajax

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

(2)jquery中的Ajax

应用场景:

1、检测用户输入

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

3、数据分页显示

4、数据的增删改查

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

  • $.get() 请求数据

  • $.post() 提交数据

  • $.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)表单同步提交

  • 同步提交:通过点击提交按钮,通过action属性进行提交

    • 同步提交后跳转到action指的页面,用户体验差

    • 同步提交后,页面之前的状态和数据会丢失

  • 解决方案:不让表单提交,表单只负责采集数据,Ajax负责提交数据

(4)监听表单提交事件

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

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

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

  • 调用事件对象的event.preventDefault()函数
8、快速操作表单数据

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

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

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

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

  • 好处:

    • 减少了字符串的拼接

    • 使代码结构更清晰

    • 使代码更易于阅读和维护

  • art- template模板引擎(初学者易学,语法数据占位符为{{}})

    (1)导入模板引擎(导入后就会在window全局挂在一个template函数:template(模板的id, 要填充的数据)

    (2)定义数据

    (3)定义模板

    模板的html结构必须要定义到script中,script标签有type值(默认为text/javascript,意思是其中内容都将作为js执行),模板引擎的type值为:text/html

     <script type="text/html">
     
     </script>
    

    (4)调用template()函数,返回值为渲染好的页面结构

    (5)渲染html结构

    (6)art-template的格式为{{数据}},如果想要原文输出,使用{{@ 数据}}

    (7)实现条件输出:

    {{if 条件}}
     内容
    {{else if 条件}}
     内容
    {{/if}}
    

    (8)实现循环输出

    {{each hobby}}
     <p>索引是{{$index}},循环项是{{$value}}</p>
    {{/each}}
    

    (9)过滤器(本质:处理函数):需处理的值——过滤器函数——返回新值

    // value的值给到filterName
    {{value | filterName}}
    
    //过滤器基本语法
    template.defaults.imports.filterName = function(value) {/*处理的结果*/}</pre>
    
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>

相关文章

  • 基于jquery的Ajax数据交互

    1、客户端与服务器 服务器:存放和对外提供资源的电脑(eg:饭馆) 客户端:获取和消费资源的电脑(个人电脑),通过...

  • ajax的运用

    交互 form 提交: ajax: jquery的ajax: ajax做交互

  • 前后端交互

    1 前后端交互模式 1.1接口调用方式: 原生AJAX 基于JQuery的AJAX fetch axios 原生的...

  • 前端学习笔记二十六-Vue之前后端交互

    一、前后端交互模式 接口调用方式 原生ajax 基于jQuery的ajax fetch axios 异步 Java...

  • JQuery入门

    零) js / ajax / json / jQuery js: 基于对象, 解释型, 事件驱动, 浏览器交互执行...

  • 基于JQuery的ajax前后端数据交互

    打开页面即发送请求 像后台发送内容(不包含文件) PS:上边两种ajax写法作用相同,第一种是简写 向后台发送文件...

  • jQuery数据交互ajax

    一、load方法: load():由页面中的标签对象调用,该方法被用来加载存放在服务器中的静态文件(一般指html...

  • jQuery数据交互Ajax

    一、Ajax的使用 1.1、load方法:从服务器上获取静态数据文件 1.2、GET和POST方法 1.3、aja...

  • 刘月林 | jQuery ajax - ajax() 方法

    参考资料W3school: jQuery ajax - ajax() 方法脚本之家: 基于Jquery Ajax ...

  • 使用jquery数据交互--AJAX

    一、load方法:从服务器上获取静态数据文件: 1、载入HTML文档:element.load(url,[data...

网友评论

      本文标题:基于jquery的Ajax数据交互

      本文链接:https://www.haomeiwen.com/subject/mpycsltx.html