前端工程化01-复习jQuery当中的AJAX

news2024/12/23 22:39:44

4.1、基础概念

什么是服务器

  • 一台存储网站内容、网站文件的电脑

什么是资源

  • 网站中使用的文件(htmlcss、图片、…)这些东西就叫做资源
  • 数据也是服务器上的资源,而且是一个网站的灵魂

客户端

  • 客户端应该指上网的设备
  • 但是在前端开发中,可以把浏览器理解为客户端即可

URL

  • 对服务器上的数据,进行查询、新增、修改、删除等操作,都需要URL

URL的构成

  • 对于一个项目来说,一般情况下 协议、主机地址、端口号都是不会变
  • 协议、主机地址、端口号组成的这一部分叫做根路径
  • 注意标点符号
  • 这个网址是由后端程序员提供的,作为前端人员就是拿来使用。

image-20240420190726636

4.2、请求和响应

什么是请求

  • 客户端 向服务器 要资源的 过程

  • 客户端 向服务器 提交资源的过程

  • 通过 url 地址,连接到服务器,广义上讲都叫做请求

请求是由谁发送的

  • 客户 (客户端)

什么是响应

  • 客户端发送了请求,服务器做出的回应,叫做响应

响应是谁做出的

  • 服务器

5种常用的请求方式(不同的请求目的,对应着不同的请求方式)

  • 查询获取数据 — 请求方式:GET
  • 添加数据 — 请求方式:POST
  • 删除数据 — 请求方式:DELETE
  • 修改数据 — 请求方式:PUT / PATCH

了解到Ajax的作用

image-20240420192059407

4.3、jQuery的AJAX的概念

前面我们已经介绍了一些基础的概念,包括请求和响应的基本概念

在没有学习Vue框架前,我们用的前端框架、一直是js库或者jQuery框架原生的JS框架的发送请求方式,还没有Axios的概念

Vue没开始的这个阶段前、如果页面中的数据是需要动态获取或更新的,这时我们需要向服务器发送异步请求来获取数据,然后在无需刷新页面的情况下来更新

页面,那么这个发起异步请求获取数据来更新页面的技术叫做AJAX

4.4、异步和同步的区别

image-20240420200221440

4.5、Ajax概述

AJAX全称(Asynchronous JavaScript And XML)是异步的 JavaScript 和 XML,它描述了一组用于构建网站和Web应用程序的开发技术。

简单点说,就是使用 XMLHttpRequest 对象与服务器通信。它可以使用 JSON,XML,HTML 和 text 文本等格式发送和接收数据。

AJAX 最吸引人的就是它的“异步”特性。也就是说它可以在不重新刷新页面的情况下与服务器通信,交换数据,或更新页面。

4.6、Ajax请求方法

GETPOSTPUTPACTHDELETE

jQuery中也有AJAX模块,该模块是在XMLHttpRequest的基础上进行了封装,语法(Syntax)如下

  • $.ajax( [settings ] ) - 默认用 GET 请求从服务器加载数据, 会返回jQXHR对象,可以利用该对象的abort方法来取消请求。
  • $.get( url [, data ] [, success ] [, dataType ] ) - 发起GET请求,底层调用的还是$ajax()
  • $.post( url [, data ] [, success ] [, dataType ] ) - 发起POST请求,底层调用的还是$ajax()

他并没有提供$.put$.pacth$.DELETE等方法,

4.7、免费测试HTTP请求的网站

https://httpbin.org (是一个专门提供:免费测试http服务的网站)

如果你会写后台的话,那么当然你可以用用这个东西,当然我本身就是后端,所以写几个接口不是问题,为了方便,我们就暂时用这个测试请求

4.8、请求参数解读

url指定发送请求的 URL。
method / type用于指定请求的类型 (“POST”, “GET”, “PUT”),默认为GET
data指定要发送到服务器的数据(PlainObject or String or Array)一个纯粹的对象、JSON字符串、数组
processData当data是一个对象时,jQuery 从对象的键/值对生成数据字符串,除非该processData选项设置为false. 例如,{ a: "bc", d: "e,f" }被转换为字符串"a=bc&d=e%2Cf",默认为true
header请求头的内容(PlainObject)纯粹的对象
contentType默认值:application/x-www-form-urlencoded; charset=UTF-8,向服务器发送数据时指定内容类型。
application/x-www-form-urlencoded; charset=UTF-8: 请求体的数据以查询字符串形式提交,如:a=bc&d=e%2Cf
application/json; charset=UTF-8 指定为json字符串类型
为时 false, 代表是 multipart/form-data 。表单类型,一般用于上传文件
dataType期望服务器端发回的数据类型(jsonxmltext…),默认会根据响应的类型来自动推断类型。
timeout请求超时时间。它以毫秒为单位。
beforeSend这是一个在发送请求之前运行的函数,返回false会取消网路请求。
success请求成功回调的函数
error请求失败回调的函数

什么是纯粹的对象PlainObject

image-20240420233927489

processData属性

如果data里边放的是一个对象的时候、他会从对象的键/值对生成查询字符串,例如你在data里边放一个对象如下{ a: "bc", d: "e,f" },他会被转换为字符串"a=bc&d=e%2Cf"

contentType属性

来告诉服务器我等下这个data给你提交的是什么类型的数据,我们要告诉服务器,默认值是 application/x-www-form-urlencoded; charset=UTF-8

dataType属性

期望服务器发回的数据、默认会根据响应类型来自动推断其类型

4.9、$.ajax-get方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<!-- 引入jquery -->   
<script src="./js/jquery.js"></script>
<script>
     //监听文档完全解析完毕
     $(function(){
         $.ajax({
             //访问的是那个服务器
             url:"https://httpbin.org/get",
             //请求类型 type 和medthod一样
             type:"get",
             //期待服务器返回的数据类型,默认会进行类型推断
             dataType:"json",
             //成功之后的回调函数  
             success:function(data){
                 console.log(data);
             }
         })
     })
 </script>   
</body>
</html>

4.1、$.ajax-POST方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 引入jquery -->
 <script src="./js/jquery.js"></script>
 <script>
     //监听文档完全解析完毕
     $(function(){
         //测试ajax-post请求
         $.ajax({
             //访问的是那个服务器
             url:"https://httpbin.org/post",
             //请求类型 type 和medthod一样
             type:"post",
             //期待服务器返回的数据类型,默认会进行类型推断
             dataType:"json",
             //成功之后的回调函数  
             success:function(data){
                 console.log(data);
             }
         })
     })
 </script>   
</body>
</html>

4.2、$.ajax-put方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 引入jquery -->
 <script src="./js/jquery.js"></script>
 <script>
     //监听文档完全解析完毕
     $(function(){
         //测试ajax-put请求
         $.ajax({
             //访问的是那个服务器
             url:"https://httpbin.org/put",
             //请求类型 type 和medthod一样
             type:"put",
             //期待服务器返回的数据类型,默认会进行类型推断
             dataType:"json",
             //成功之后的回调函数  
             success:function(data){
                 console.log(data);
             }
         })
     })
 </script>   
</body>
</html>

4.3、$.ajax-delete方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 引入jquery -->
 <script src="./js/jquery.js"></script>
 <script>
    //监听文档完全解析完毕
     $(function(){
         //测试ajax-delete请求
         $.ajax({
             //访问的是那个服务器
             url:"https://httpbin.org/delete",
             //请求类型 type 和medthod一样
             type:"delete",
             //期待服务器返回的数据类型,默认会进行类型推断
             dataType:"json",
             //成功之后的回调函数  
             success:function(data){
                 console.log(data);
             }
         })
     })
 </script>   
</body>
</html>

4.4、请求发送错误的情况

有几种常见的状态码:

504(请求超时) 503(服务器异常) 500(后台代码异常) 404(找不到资源) 403(服务器拒绝请求)401(请求未授权)400(请求参数异常)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 引入jquery -->
 <script src="./js/jquery.js"></script>
 <script>
    //监听文档完全解析完毕
     $(function(){
         //500(后台代码异常)
         $.ajax({
             //访问的是那个服务器
             url:"https://httpbin.org/status/500",
             //请求类型 type 和medthod一样
             type:"get",
             //期待服务器返回的数据类型,默认会进行类型推断
             dataType:"json",
             //成功之后的回调函数  
             success:function(data){
                 console.log(data);
             },
             //失败之后的回调函数)
             error:function(xhr){
                 console.log(xhr.status);
             }
         })
         //403(没有权限)
         $.ajax({
             //访问的是那个服务器
             url:"https://httpbin.org/status/403",
             //请求类型 type 和medthod一样
             type:"get",
             //期待服务器返回的数据类型,默认会进行类型推断
             dataType:"json",
             //成功之后的回调函数  
             success:function(data){
                 console.log(data);
             },
             //失败之后的回调函数)
             error:function(xhr){
                 console.log(xhr.status);
             }
         });
         //404(找不到资源)
         $.ajax({
             //访问的是那个服务器
             url:"https://httpbin.org/status/404/eeeeeeee",
             //请求类型 type 和medthod一样
             type:"get",
             //期待服务器返回的数据类型,默认会进行类型推断
             dataType:"json",
             //成功之后的回调函数  
             success:function(data){
                 console.log(data);
             },
             //失败之后的回调函数)
             error:function(xhr){
                 console.log(xhr.status);
             }
         });
    });
 </script>   
</body>
</html>

4.5、请求超时&手动取消请求

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
  
  <button class="btn">取消请求</button>  
    
 <!-- 引入jquery -->
 <script src="./js/jquery.js"></script>
 <script>
    //监听文档完全解析完毕
     $(function(){
       //测试请求超时 timeout
       var jqXhr= $.ajax({
            //访问的是那个服务器
            url:"https://httpbin.org/delay/7",
            //请求类型 type 和medthod一样
            type:"get",
            //期待服务器返回的数据类型,默认会进行类型推断
            dataType:"json",
            //设置请求超时时间---服务器七秒后才能返回信息所以一定会超时
            timeout:5000,
            //成功之后的回调函数  
            success:function(data){
                console.log(data);
            },
            //失败之后的回调函数)
            error:function(xhr){
                console.log(xhr.status);
            }
        })

        //取消请求
        $(".btn").click(function(){
            //取消请求
            jqXhr.abort();//手动取消请求
        })
    });
 </script>   
</body>
</html>

4.6、GET请求参数和简写

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
  
   
<script src="./js/jquery.js"></script>
<script>
    // 监听文档完全解析完毕
    $(function(){
        
        //1、url添加查询字符串
             //?cityId=404100&keyWord=天河公园被称为叫做查询字符串、天河公园,这个汉字也会被进行编码变成如下
             //https://httpbin.org/get?cityId=404100&keyWord=%E5%A4%A9%E6%B2%B3%E5%85%AC%E5%9B%AD
             //他是怎么编码的? 
             console.log(encodeURIComponent("天河公园"))  
        $.ajax({
            //访问的是那个服务器
            url:"https://httpbin.org/get?cityId=404100&keyWord=天河公园",
            //请求类型 type 和medthod一样
            type:"get",
            //期待服务器返回的数据类型,默认会进行类型推断
            dataType:"json",
            //成功之后的回调函数  
            success:function(data){
                console.log(data);
            },
            //失败之后的回调函数)
            error:function(xhr){
                console.log(xhr.status);
            }
        });
        
        //2、支持在data中提交参数
        $.ajax({
            //访问的是那个服务器
            url:"https://httpbin.org/get",
            //请求类型 type 和medthod一样
            type:"get",
            data:{
                cityId:404100,
                keyWord:"天河公园"
            },
            //processData:true,//是否对data参数进行编码,默认是true,如果是个对象会把他转换成查询字符串,并对中文编码,转成完了,还会放到路径上
            //期待服务器返回的数据类型,默认会进行类型推断
            dataType:"json",
            //成功之后的回调函数  
            success:function(data){
                console.log(data);
            },
            //失败之后的回调函数)
            error:function(xhr){  
                console.log(xhr.status);
            }
        }) 
        
        //3、给get请求添加请求头
        $.ajax({
            //访问的是那个服务器
            url:"https://httpbin.org/get",
            //请求类型 type 和medthod一样
            type:"get",
            //
            headers:{
                "token":"123456789"
            },
            //期待服务器返回的数据类型,默认会进行类型推断
            dataType:"json",
            //成功之后的回调函数  
            success:function(data){
                console.log(data);
            },
            //失败之后的回调函数)
            error:function(xhr){  
                console.log(xhr.status);
            }
        }) 
        
        //4、get请求简写(1.8往前的简写形式)
        $.get("https://httpbin.org/get",{
            cityId:404100,
            keyWord:"天河公园"
        },function(data){
            console.log(data);
        },"json") 
        
        //5、get请求简写(1.8往后的简写形式)
        $.get("https://httpbin.org/get")
          //正产的
         .then(function(data){  //小于1.8这个东西就变成done了
            console.log(data);
         }) 
         //错误的
         .fail(function(){    //小于1.8 fail  1.9并不支持catch方法,我测试过了,也有可能我导入的jq文件是虚假的1.9
            console.log("catch");
         })
         //总是会执行的类似于java当中的 finally 方法不管结果如果总是会执行
         .always(function(){  //finally
            console.log("always");
         })    
    }) 
</script>
    
</body>
</html>

4.7、POST请求参数简写

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
  

<script src="./js/jquery.js"></script>
<script>
    // 监听文档完全解析完毕
    $(function(){
         //1、在url中提交查询字符串(比较少见的)
         $.ajax({
            url:'https://httpbin.org/post?cityId=404100&keyWord=小雨',
            method:"POST",
            success:function(res){
                console.log(res);
            }
         })
         //2、在data中提交查询字符串(这种事比较多的)
         $.ajax({
            url:'https://httpbin.org/post',
            method:"POST",
            //如果是post请求,他就不会把这个data拼接到我们的查询字符串里去了,而是放到请求体当中,当然他依然会被编码成那种麻花符号格式
            data:{
                cityId:404100,
                keyWord:"小雨"
            },
            //请求体的数据采用什么格式-默认是 application/x-www-form-urlencoded
            contentType:"application/x-www-form-urlencoded",
            //数据返回的类型
            dataType:"json",
            success:function(res){
                console.log(res);
            }
         })
         //3、在data中JSON字符串
         $.ajax({
            url:"https://httpbin.org/post",
            type:"post",
            //把对象序列化成json字符串
            data:JSON.stringify({cityId:404100,keyWord:"小雨"}),
            //传递json,必须给这个,要不然取不到数据
            contentType:"application/json;charset=utf-8",
            dataType:"json",
            success:function(res){
                console.log(res);
            }
            ,error:function(xhr){  
                console.log(xhr.status);
            }
         });
         //4、在data中的FormData对象
         var form= new FormData();   //<form> <input name="cityId" value="404100"></input></form>
         form.append("cityId",404100)
         form.append("keyword",'小雨')
         $.ajax({
            url:"https://httpbin.org/post",
            type:"post",
            data:form,
            processData:false,  //告诉jquery不要对data参数进行编码,不然就会传承查询字符串了
            contentType:false,  //告诉jquery不要对contentType进行编码  XHR 就会用默认的contentType
            success:function(res){  //res是服务器返回的数据、
                console.log(res);
            },
            error:function(xhr){  //xhr是服务器返回的响应对象
                console.log(xhr)
            }
         });    
         //5、在添加请求头
         $.ajax({
            url:"https://httpbin.org/post",
            type:"post",
            data:form,
            processData:false,  //告诉jquery不要对data参数进行编码,不然就会传承查询字符串了
            contentType:false,  //告诉jquery不要对contentType进行编码  XHR 就会用默认的contentType
            headers:{
                "token":"123456789"
            },
            success:function(res){  //res是服务器返回的数据、
                console.log(res);
            },
            error:function(xhr){  //xhr是服务器返回的响应对象
                console.log(xhr)
            }
         }); 
         //6、POST请求简写
         $.post("https://httpbin.org/post",{
            cityId:404100,
            keyWord:"小雨"
         },function(data){
            console.log(data);
         },'json')
         //7、POST请求简写方式2
         $.post("https://httpbin.org/post",{"city":"504100","keyWord":'小雨'}).then(function(){
            console.log(data);
         }) 
    });
</script>
    
</body>
</html>

4.8、ajax请求库封装

我们考虑到项目的可拓展性和可维护性,我们对网络请求库进行了二次封装。

封装性,可以对我们共性的代码进行封装,如果我把baseurl全局管理,假如接口地址变啦,改起来特别快

统一处理我们的请求,请求地址的设置,前置拦截,后置拦截,统一处理异常,axios的思想。

在这里插入图片描述

;(function(window, $) {

  function request(config) {
    // 返回一个Promise
    return $.ajax({
      timeout: config.timeout || 5000,
      url: config.url || '',
      method: config.method || 'GET',
      data: config.data || {},
      headers: config.headers || {}
    })
  }
 
  function get(url, data = {}, config = {}) {
    // 返回一个Promise
    return request({
      url,
      method: 'GET',
      data,
      ...config
    })
  }

  function post(url, data = {}, config = {}) {
    return request({
      url,
      method: 'POST',
      data,
      ...config
    })
  }


  window.HyReq = {
    request,
    get,
    post
  }

})(window, jQuery)

一定要先导入,jquery然后再导入这个js文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1613203.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微软如何打造数字零售力航母系列科普01 --- Azure顾问(AZURE Advisor)简介

Azure顾问&#xff08;AZURE Advisor&#xff09;简介 目录 一、什么是AZURE顾问&#xff08;AZURE Advisor&#xff09;&#xff1f; 二、常见问题 三、接下来的步骤 一、什么是AZURE顾问&#xff1f; AZURE顾问是一种数字云助手&#xff0c;可帮助您遵循最佳实践来优化Az…

【QT进阶】Qt http编程之用户登录注册功能实现

往期回顾 【QT进阶】Qt http编程之http与https简单介绍-CSDN博客 【QT进阶】Qt http编程之后端API测试工具postman使用介绍-CSDN博客 【QT进阶】Qt http编程之http相关类的简单介绍-CSDN博客 【QT进阶】Qt http编程之用户登录注册功能实现 一、最终效果展示 重点在逻辑实现&a…

分类神经网络2:ResNet模型复现

目录 ResNet网络架构 ResNet部分实现代码 ResNet网络架构 论文原址&#xff1a;https://arxiv.org/pdf/1512.03385.pdf 残差神经网络(ResNet)是由微软研究院的何恺明、张祥雨、任少卿、孙剑等人提出的&#xff0c;通过引入残差学习解决了深度网络训练中的退化问题&#xff…

[Spring Cloud] (4)搭建Vue2与网关、微服务通信并配置跨域

文章目录 前言gatway网关跨域配置取消微服务跨域配置 创建vue2项目准备一个原始vue2项目安装vue-router创建路由vue.config.js配置修改App.vue修改 添加接口访问安装axios创建request.js创建index.js创建InfoApi.js main.jssecurityUtils.js 前端登录界面登录消息提示框 最终效…

【八股】Spring Boot

SpringBoot是如何实现自动装配的&#xff1f; 首先&#xff0c;SpringBoot的核心注解SpringBootApplication里面包含了三个注解&#xff0c;SpringBootConfigurationEnableAutoConfigurationComponentScan&#xff0c;其中EnableAutoConfiguration是实现自动装配的注解&#x…

VUE运行找不到pinia模块

当我们的VUE运行时报错Module not found: Error: Cant resolve pinia in时 当我们出现这个错误时 可能是 没有pinia模块 此时我们之要下载一下这个模块就可以了 npm install pinia

AD高速板设计-DDR(笔记)

【一】二极管 最高工作频率&#xff1a; 定义&#xff1a;二极管的最高工作频率&#xff0c;即二极管在电路中能够正常工作的最高频率。常见的硅二极管的最高工作频率通常在几十MHz到几百MHz之间。在高频下&#xff0c;二极管可能无法有效地阻止反向电流&#xff0c;但也不会…

C# WPF布局

布局&#xff1a; 1、Grid: <Window x:Class"WpfApp2.MainWindow" xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d"http://schemas.microsoft.com…

【大语言模型LLM】-使用大语言模型搭建点餐机器人

关于作者 行业&#xff1a;人工智能训练师/LLM 学者/LLM微调乙方PM发展&#xff1a;大模型微调/增强检索RAG分享国内大模型前沿动态&#xff0c;共同成长&#xff0c;欢迎关注交流… 大语言模型LLM基础-系列文章 【大语言模型LLM】-大语言模型如何编写Prompt?【大语言模型LL…

地质图、地质岩性数据、地质灾害分布、土壤理化性质数据集、土地利用数据、土壤重金属含量分布、植被类型分布

地质图是将沉积岩层、火成岩体、地质构造等的形成时代和相关等各种地质体、地质现象&#xff0c;用一定图例表示在某种比例尺地形图上的一种图件。 是表示地壳表层岩相、岩性、地层年代、地质构造、岩浆活动、矿产分布等的地图的总称。 地质图的编制多以实测资料为基础&#xf…

Eclipse+Java+Swing实现学生信息管理系统-TXT存储信息

一、系统介绍 1.开发环境 操作系统&#xff1a;Win10 开发工具 &#xff1a;Eclipse2021 JDK版本&#xff1a;jdk1.8 存储方式&#xff1a;Txt文件存储 2.技术选型 JavaSwingTxt 3.功能模块 4.工程结构 5.系统功能 1.系统登录 管理员可以登录系统。 2.教师-查看学生…

初学者如何选择ARM开发硬件?

1&#xff0e; 如果你有做硬件和单片机的经验,建议自己做个最小系统板&#xff1a;假如你从没有做过ARM的开发&#xff0c;建议你一开始不要贪大求全&#xff0c;把所有的应用都做好&#xff0c;因为ARM的启动方式和dsp或单片机有所不同&#xff0c;往往会碰到各种问题&#xf…

【天龙怀旧服】攻略day7

关键字&#xff1a; 新星1.49、金针渡劫、10灵 1】新星&#xff08;苍山破煞&#xff09; 周三周六限定副本&#xff0c;19.00-24.00 通常刷1.49w&#xff0c;刷149点元佑碎金 boss选择通常为狂鬼难度&#xff0c;八风不动即放大不选&#xff0c;第二排第一个也不选&#xf…

【Hadoop】- MapReduce YARN的部署[8]

目录 一、部署说明 二、集群规划 三、MapReduce配置文件 四、YARN配置文件 五、分发配置文件 六、集群启动命令 七、查看YARN的WEB UI 页面 一、部署说明 Hadoop HDFS分布式文件系统&#xff0c;我们会启动&#xff1a; NameNode进程作为管理节点DataNode进程作为工作节…

lua整合redis

文章目录 lua基础只适合lua连接操作redis1.下载lua依赖2.导包,连接3.常用的命令1.set,get,push命令 2.自增管道命令命令集合4.使用redis操作lua1.实现秒杀功能synchronized关键字 分布式锁 lua 基础只适合 1.编译 -- 编译 luac a.lua -- 运行 lua a.lua2.命名规范 -- 多行注…

【Hadoop】- MapReduce YARN 初体验[9]

目录 提交MapReduce程序至YARN运行 1、提交wordcount示例程序 1.1、先准备words.txt文件上传到hdfs&#xff0c;文件内容如下&#xff1a; 1.2、在hdfs中创建两个文件夹&#xff0c;分别为/input、/output 1.3、将创建好的words.txt文件上传到hdfs中/input 1.4、提交MapR…

Dynamic Wallpaper for Mac激活版:视频动态壁纸软件

Dynamic Wallpaper for Mac 是一款为Mac电脑量身打造的视频动态壁纸应用&#xff0c;为您的桌面带来无限生机和创意。这款应用提供了丰富多样的视频壁纸选择&#xff0c;涵盖了自然风景、抽象艺术、科幻奇观等多种主题&#xff0c;让您的桌面成为一幅活生生的艺术画作。 Dynami…

ES中文检索须知:分词器与中文分词器

ElasticSearch (es)的核心功能即为数据检索&#xff0c;常被用来构建内部搜索引擎或者实现大规模数据在推荐召回流程中的粗排过程。 ES分词 分词即为将doc通过Analyzer切分成一个一个Term&#xff08;关键字&#xff09;&#xff0c;es分词在索引构建和数据检索时均有体现&…

(避雷指引:管理页面超时问题)windows下载安装RabbitMQ

一、背景&#xff1a; 学习RabbitMQ过程中&#xff0c;由于个人电脑性能问题&#xff0c;直接装在windows去使用RabbitMQ&#xff0c;根据各大网友教程&#xff0c;去下载安装完之后&#xff0c;使用web端进行简单的入门操作时&#xff0c;总是一直提示超时&#xff0c;要么容…

【项目】仿muduo库One Thread One Loop式主从Reactor模型实现高并发服务器(TcpServer板块)

【项目】仿muduo库One Thread One Loop式主从Reactor模型实现⾼并发服务器&#xff08;TcpServer板块&#xff09; 一、思路图二、模式关系图三、定时器的设计1、Linux本身给我们的定时器2、我们自己实现的定时器&#xff08;1&#xff09;代码部分&#xff08;2&#xff09;思…