小程序开发-页面事件之上拉触底实战案例
🎥 作者简介: CSDN\阿里云\腾讯云\华为云开发社区优质创作者,专注分享大数据、Python、数据库、人工智能等领域的优质内容
🌸个人主页: 长风清留杨的博客
🍃形式准则: 无论成就大小,都保持一颗谦逊的心,尊重他人,虚心学习。
✨推荐专栏: Python入门到入魔,Mysql入门到入魔,Python入门基础大全,Flink入门到实战
🍂若缘分至此,无法再续相逢,愿你朝朝暮暮,皆有安好,晨曦微露道早安,日中炽热说午安,星河长明寄晚安🍂
上拉触底
实战案例
下面我们将通过一个案例来实战的演示一下上拉触底的使用。话不多说我们现在就开始
步骤详解
在实现这个小程序实战案例的过程中,我们遵循了以下六个核心步骤。这些步骤不仅涵盖了基础的开发流程,还融入了一些优化技巧,以提升用户体验和性能。
步骤一:定义获取随机颜色的方法
为了实现多样化的视觉效果,我们首先定义了一个获取随机颜色的方法。这个方法能够生成不同颜色值,为后续步骤中的颜色变化提供支持。通过随机颜色的应用,我们可以增加小程序的趣味性和视觉吸引力。
步骤二:在页面加载时获取初始数据
当小程序页面加载时,我们需要从服务器或本地存储中获取初始数据。这些数据可能包括用户信息、配置项或其他必要的资源。通过合理的数据请求和处理逻辑,我们可以确保页面在加载时能够迅速呈现所需内容。
步骤三:渲染UI结构并美化页面效果
获取到初始数据后,我们开始渲染小程序的UI结构。这一步骤涉及布局设计、组件选择和样式调整等方面。同时,我们会对页面进行美化处理,以提升整体视觉效果和用户体验。通过合理的UI设计和交互优化,我们可以让用户更加轻松地理解和使用小程序。
步骤四:在上拉触底时调用获取随机颜色的方法
为了实现无限滚动的效果,我们需要在用户上拉触底时触发数据加载操作。在这个过程中,我们会再次调用之前定义的获取随机颜色的方法,以为新加载的内容提供不同的颜色。这种设计不仅能够增加页面的趣味性,还能让用户在使用过程中保持新鲜感。
步骤五:添加loading提示效果
在数据加载过程中,为了避免用户产生等待焦虑,我们会在页面上添加loading提示效果。这个提示可以是一个简单的进度条、旋转图标或文本提示等。通过明确的加载提示,我们可以让用户了解当前的状态,并期待即将呈现的内容。
步骤六:对上拉触底进行节流处理
由于用户可能会频繁地触发上拉触底操作,我们需要对上拉触底事件进行节流处理。节流处理能够限制事件的触发频率,从而避免因为过多请求而导致的性能问题。通过合理的节流策略,我们可以确保小程序在保持良好响应速度的同时,也能满足用户的滚动需求。
定义获取随机颜色的方法
在index.js文件中,通过使用GET请求,请求该网址:https://applet-base-api-t.itheima.net/api/color’ 来获取随机的颜色信息,
// 使用 Page 方法定义页面
Page({// 页面的初始数据data:{// 用于存储从服务器获取的颜色数据的数组colorlist:[]},// 定义一个方法,通过 GET 请求访问指定网址,随机获取颜色数据request_get() {// 调用微信小程序的 wx.request 方法来发起网络请求wx.request({/*** 请求的 URL 地址,该地址的返回信息是一个数组,数组中是五个随机的颜色* */ url: 'https://applet-base-api-t.itheima.net/api/color',// 请求的方法,这里是 GET 方法method: 'GET',// 请求成功的回调函数,res 是响应对象/*** success 是请求成功之后的回调函数,当请求URL成功之后会执行success函数* data是URL返回的结果对象,这里重命名为res*/success: ({data : res}) => {// 更新页面的 data,将新获取的颜色数据合并到 colorlist 数组中this.setData({// 使用展开运算符 ... 来合并数组,将每次获取到的颜色信息跟colorlist数组中原本存在的信息合并colorlist:[...this.data.colorlist,...res.data]})}})}
})
- 页面定义:
- 使用 Page 方法定义了一个页面,该方法接收一个对象作为参数,该对象定义了页面的初始数据、方法以及生命周期函数。
- 初始数据:
- 在 data 属性中,定义了一个空数组 colorlist,用于存储从服务器获取的颜色数据。
- 请求颜色数据的方法 (request_get):
- 使用 wx.request 方法发起网络请求,请求的 URL 是 ‘https://applet-base-api-t.itheima.net/api/color’,请求方法是 GET。
- 在请求成功的回调函数中,使用 this.setData 方法更新 colorlist 数组。这里使用了数组的展开运算符(…)来合并原有的 colorlist 数组和从服务器获取的新数据。但这里有一个潜在的问题:如果 res.data 不是一个数组,或者其结构不符合预期,这将导致错误。但是我们这里只是作为演示,我们事先就知道获取的新数据是一个数组类型的
在页面加载时获取初始数据
当页面刚加载时就获取到颜色信息,那么就需要使用页面监听函数了 onLoad,当页面刚加载的时候就会执行onLoad函数,我们直接在onLoad函数中调用request_get方法就可以在页面刚加载的时候就获取到颜色信息了
/*** 生命周期函数--监听页面加载* 当页面加载时,调用 request_get 方法来获取颜色数据*/
onLoad:function(options){//调用request_get方法this.request_get()
}
渲染UI结构并美化页面效果
现在我们需要在index.wxml页面上展示出获取到的颜色,把或许到的颜色数组渲染到view中,然后再对页面进行一些简单的美化
index.wxml文件:
<view class="box">
案例
</view>
<!-- 使用 wx:for 循环遍历 colorlist 数组,每一项用 item 表示,wx:key 使用 index 作为唯一标识,提高列表渲染性能。为每个元素应用类名 "num-item",并通过 style 动态设置背景颜色,背景颜色使用 rgba 格式,给出了 rgba 的前三个参数(红、绿、蓝)。把数组中获取到的颜色的值赋值进去
-->
<view wx:for="{{colorlist}}" wx:key="index" class="num-item" style="background-color: rgba({{item}});">{{item}}</view>
index.wxss文件:
/* index.wxss 样式表 */
/*
.num-item 类样式定义
边框:1rpx宽的实线,颜色为#efefef
边框圆角:8rpx
行高:200rpx,这会影响元素内文本的垂直居中
外边距:15rpx,为元素四周提供空间
文本对齐:居中对齐
文本阴影:水平偏移0rpx,垂直偏移0rpx,模糊半径5rpx,颜色为#fff(白色),用于增强文本可读性
盒阴影:水平偏移1rpx,垂直偏移1rpx,模糊半径6rpx,颜色为#aaa(浅灰色),用于给元素添加立体效果
*/
.num-item {border: 1rpx solid #efefef; /* 边框样式修正为 solid */border-radius: 8rpx;line-height: 200rpx;margin: 15rpx;text-align: center;text-shadow: 0rpx 0rpx 5rpx #fff;box-shadow: 1rpx 1rpx 6rpx #aaa;
}/*
.box 类样式定义
字体大小:190px,注意这里使用的是 px 单位而不是 rpx,如果需要在微信小程序中保持自适应,应使用 rpx
由于 px 是绝对单位,它不会根据屏幕宽度自动缩放,而 rpx 会
如果这里确实需要非常大的字体(尽管 190px 在手机上可能看起来过大),这里我们是为了确保首次加载页面的时候请求获取的颜色能够铺满整个页面
*/
.box {font-size: 190px; /* 注意:这里使用的是 px 单位 */
}
在上拉触底时调用获取随机颜色的方法
为了实现无限滚动的效果,我们需要在用户上拉触底时触发数据加载操作。在这个过程中,我们会再次调用之前定义的获取随机颜色的方法,以为新加载的内容提供不同的颜色。这种设计不仅能够增加页面的趣味性,还能让用户在使用过程中保持新鲜感。
/*** 页面相关事件处理函数--监听页面上拉触底事件的处理函数* 当用户滚动页面到底部时,调用 request_get 方法来获取更多颜色数据*/
onReachBottom: function() {//调用获取随机颜色的方法this.request_get()
}
添加loading提示效果
在数据加载过程中,为了避免用户产生等待焦虑,我们会在页面上添加loading提示效果。这个提示可以是一个简单的进度条、旋转图标或文本提示等。通过明确的加载提示,我们可以让用户了解当前的状态,并期待即将呈现的内容。
描述
wx.showLoading(Object object)
基础库 1.1.0 开始支持,低版本需做兼容处理。
以 Promise 风格 调用:支持
小程序插件:支持,需要小程序基础库版本不低于 1.9.6
微信 Windows 版:支持
微信 Mac 版:支持
微信 鸿蒙 OS 版:支持
功能
wx.showLoading显示 loading 提示框。需主动调用 wx.hideLoading 才能关闭提示框
参数
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
title | string | 提示的内容 | 否 | 标题 |
mask | boolean | false | 否 | 是否显示透明蒙层,防止触摸穿透 |
success | function | - | 否 | 接口调用成功的回调函数 |
fail | function | - | 否 | 接口调用失败的回调函数 |
complete | function | - | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
语法示例
wx.showLoading({title: '数据加载中...',
})setTimeout(function () {wx.hideLoading()
}, 2000)
当遇到请求的时候,先使用showLoading,页面上会显示loading动画,并且显示 数据加载中...
这段文字
当数据请求完毕之后,就使用hideLoading关闭loading的显示
本案例中使用
// 定义一个方法,通过 GET 请求访问指定网址,随机获取颜色数据
request_get() {// 显示加载提示,告诉用户数据正在加载中wx.showLoading({// 显示加载动画时,动画中展示的文字title: '数据加载中...',})/** 使用 setTimeout 函数延迟 2 秒后执行网络请求(通常不推荐这样做,除非有特定需求)这里是作为演示,能够比较直观的看到请求等待中的动画效果*/setTimeout(() => {// 调用微信小程序的 wx.request 方法来发起网络请求wx.request({/*** 请求的 URL 地址,该地址的返回信息是一个数组,数组中是五个随机的颜色* */ url: 'https://applet-base-api-t.itheima.net/api/color',// 请求的方法,这里是 GET 方法method: 'GET',// 请求成功的回调函数,res 是响应对象/*** success 是请求成功之后的回调函数,当请求URL成功之后会执行success函数* data是URL返回的结果对象,这里重命名为res*/success: ({data : res}) => {// 更新页面的 data,将新获取的颜色数据合并到 colorlist 数组中this.setData({// 使用展开运算符 ... 来合并数组,将每次获取到的颜色信息跟colorlist数组中原本存在的信息合并colorlist:[...this.data.colorlist,...res.data]})},// 请求完成的回调函数(无论成功还是失败都会执行)complete:()=>{// 隐藏加载提示wx.hideLoading()}})},2000)// 延迟时间为 2000 毫秒(2 秒)
}
主要观察在什么时候使用了wx.showLoading和什么时候使用了wx.hideLoading,在刚进入request_get方法的时候,就在页面上展示Loading动画,让用户等待,下面就开始请求URL中的数据,请求完毕之后获取到数据了,在使用wx.hideLoading在结束页面的Loading动画
对上拉触底进行节流处理
由于用户可能会频繁地触发上拉触底操作,我们需要对上拉触底事件进行节流处理。节流处理能够限制事件的触发频率,从而避免因为过多请求而导致的性能问题。通过合理的节流策略,我们可以确保小程序在保持良好响应速度的同时,也能满足用户的滚动需求。
节流就是当用户一直向下滑动会一直触发上拉触底事件,为了防止频繁触发,就通过节流的方法,在当前请求没有结束之前,不管触发多少次上拉触底事件,都不会重复请求
// 使用 Page 方法定义页面
Page({// 页面的初始数据data:{// 用于存储从服务器获取的颜色数据的数组colorlist:[],isloding: false // 可以发起网络数据请求},// 定义一个方法,通过 GET 请求访问指定网址,随机获取颜色数据request_get() {//设置为true表示正在发起网络请求,当开始请求时将isloding设置为truethis.setData({isloding: true})// 显示加载提示,告诉用户数据正在加载中wx.showLoading({// 显示加载动画时,动画中展示的文字title: '数据加载中...',})/** 使用 setTimeout 函数延迟 2 秒后执行网络请求(通常不推荐这样做,除非有特定需求)这里是作为演示,能够比较直观的看到请求等待中的动画效果*/setTimeout(() => {// 调用微信小程序的 wx.request 方法来发起网络请求wx.request({/*** 请求的 URL 地址,该地址的返回信息是一个数组,数组中是五个随机的颜色* */ url: 'https://applet-base-api-t.itheima.net/api/color',// 请求的方法,这里是 GET 方法method: 'GET',// 请求成功的回调函数,res 是响应对象/*** success 是请求成功之后的回调函数,当请求URL成功之后会执行success函数* data是URL返回的结果对象,这里重命名为res*/success: ({data : res}) => {// 更新页面的 data,将新获取的颜色数据合并到 colorlist 数组中this.setData({// 使用展开运算符 ... 来合并数组,将每次获取到的颜色信息跟colorlist数组中原本存在的信息合并colorlist:[...this.data.colorlist,...res.data]})},// 请求完成的回调函数(无论成功还是失败都会执行)complete:()=>{// 隐藏加载提示wx.hideLoading()//设置为false表示可以发起网络请求,当请求结束时将isloding设置为False表示可以继续请求this.setData({isloding: false})}})},2000)// 延迟时间为 2000 毫秒(2 秒)},/*** 生命周期函数--监听页面加载* 当页面加载时,调用 request_get 方法来获取颜色数据*/onLoad:function(options){//调用request_get方法this.request_get()},/*** 页面相关事件处理函数--监听页面上拉触底事件的处理函数* 当用户滚动页面到底部时,调用 request_get 方法来获取更多颜色数据*/onReachBottom: function() {//当前触发了页面上拉触底事件时,先判断isloding的值是否为true,如果为true就表示当前已经再请求数据了,不能再次请求,直接return退出,如果不为true,那么表示当前没有在请求,那就直接进入到request_get方法中去请求,这就是节流if(this.data.isloding) return //调用获取随机颜色的方法this.request_get()}
})
完整代码
index.wxml文件
<!-- 列表渲染 -->
<view class="box">
案例
</view>
<!-- 使用 wx:for 循环遍历 colorlist 数组,每一项用 item 表示,wx:key 使用 index 作为唯一标识,提高列表渲染性能。为每个元素应用类名 "num-item",并通过 style 动态设置背景颜色,背景颜色使用 rgba 格式,给出了 rgba 的前三个参数(红、绿、蓝)。把数组中获取到的颜色的值赋值进去
-->
<view wx:for="{{colorlist}}" wx:key="index" class="num-item" style="background-color: rgba({{item}});">{{item}}</view>
index.wxss文件
/* index.wxss 样式表 */
/*
.num-item 类样式定义
边框:1rpx宽的实线,颜色为#efefef
边框圆角:8rpx
行高:200rpx,这会影响元素内文本的垂直居中
外边距:15rpx,为元素四周提供空间
文本对齐:居中对齐
文本阴影:水平偏移0rpx,垂直偏移0rpx,模糊半径5rpx,颜色为#fff(白色),用于增强文本可读性
盒阴影:水平偏移1rpx,垂直偏移1rpx,模糊半径6rpx,颜色为#aaa(浅灰色),用于给元素添加立体效果
*/
.num-item {border: 1rpx solid #efefef; /* 边框样式修正为 solid */border-radius: 8rpx;line-height: 200rpx;margin: 15rpx;text-align: center;text-shadow: 0rpx 0rpx 5rpx #fff;box-shadow: 1rpx 1rpx 6rpx #aaa;
}/*
.box 类样式定义
字体大小:190px,注意这里使用的是 px 单位而不是 rpx,如果需要在微信小程序中保持自适应,应使用 rpx
由于 px 是绝对单位,它不会根据屏幕宽度自动缩放,而 rpx 会
如果这里确实需要非常大的字体(尽管 190px 在手机上可能看起来过大),这里我们是为了确保首次加载页面的时候请求获取的颜色能够铺满整个页面
*/
.box {font-size: 190px; /* 注意:这里使用的是 px 单位 */
}
index.js文件
// 使用 Page 方法定义页面
Page({// 页面的初始数据data:{// 用于存储从服务器获取的颜色数据的数组colorlist:[]},// 定义一个方法,通过 GET 请求访问指定网址,随机获取颜色数据request_get() {// 显示加载提示,告诉用户数据正在加载中wx.showLoading({// 显示加载动画时,动画中展示的文字title: '数据加载中...',})/** 使用 setTimeout 函数延迟 2 秒后执行网络请求(通常不推荐这样做,除非有特定需求)这里是作为演示,能够比较直观的看到请求等待中的动画效果*/setTimeout(() => {// 调用微信小程序的 wx.request 方法来发起网络请求wx.request({/*** 请求的 URL 地址,该地址的返回信息是一个数组,数组中是五个随机的颜色* */ url: 'https://applet-base-api-t.itheima.net/api/color',// 请求的方法,这里是 GET 方法method: 'GET',// 请求成功的回调函数,res 是响应对象/*** success 是请求成功之后的回调函数,当请求URL成功之后会执行success函数* data是URL返回的结果对象,这里重命名为res*/success: ({data : res}) => {// 更新页面的 data,将新获取的颜色数据合并到 colorlist 数组中this.setData({// 使用展开运算符 ... 来合并数组,将每次获取到的颜色信息跟colorlist数组中原本存在的信息合并colorlist:[...this.data.colorlist,...res.data]})},// 请求完成的回调函数(无论成功还是失败都会执行)complete:()=>{// 隐藏加载提示wx.hideLoading()}})},2000)// 延迟时间为 2000 毫秒(2 秒)},/*** 生命周期函数--监听页面加载* 当页面加载时,调用 request_get 方法来获取颜色数据*/onLoad:function(options){//调用request_get方法this.request_get()},/*** 页面相关事件处理函数--监听页面上拉触底事件的处理函数* 当用户滚动页面到底部时,调用 request_get 方法来获取更多颜色数据*/onReachBottom: function() {//调用获取随机颜色的方法this.request_get()}
})
演示效果
相关文章:
小程序开发-页面事件之上拉触底实战案例
🎥 作者简介: CSDN\阿里云\腾讯云\华为云开发社区优质创作者,专注分享大数据、Python、数据库、人工智能等领域的优质内容 🌸个人主页: 长风清留杨的博客 🍃形式准则: 无论成就大小,…...
[读书日志]从零开始学习Chisel 第六篇:Scala面向对象编程——特质(敏捷硬件开发语言Chisel与数字系统设计)
3.4特质 3.4.1什么是特质 特质使用trait开头,它与单例对象很像,两者都不能有输入参数,但单例对象是具体的,特质是抽象的。两者都不能用new实例化,类,单例对象,特质三者内部都可以包含字段和方…...
导航技术的分类
导航技术可以根据不同的分类标准进行划分,以下是从不同角度对导航技术的分类: 一、按导航信息获取原理分类 无线电导航:利用无线电波的传播特性来测定运动体的位置、速度等导航参数。常见的无线电导航系统包括罗兰-C、奥米加、台卡等。卫星…...
学习标准库atomic_base.h中typedef enum memory_order
1、背景 在多线程编程中,特别是在使用原子操作时,内存顺序(Memory Order)是一个关键的概念。在C11及其之后的标准中,memory_order 枚举类型(typedef enum memory_order)用于控制原子操作的内存…...
git push -f 指定分支
要将本地代码推送到指定的远程分支,你可以使用以下步骤和命令: 确认远程仓库: 确保你的本地仓库已经与远程仓库关联。你可以使用以下命令查看当前的远程仓库状态: git remote -v查看本地分支: 使用命令查看当前存在的本…...
ADO.NET知识总结3---SqlCommand命令对象
目录 4.1 SqlCommand对象介绍 4.2 SqlCommand创建 4.3 Command执行方法 4.1 SqlCommand对象介绍 SqlCommand:Ado.Net中执行数据库命令的对象。 它对SQLServer数据库执行一个T-SQL语句或存储过程。 重要属性: Connection: SqlCommand对象使用的SqlConnection对…...
CANopen转EtherCAT网关连接伺服驱动
在现代工业自动化领域,CANopen和EtherCAT是两种常见的通信协议,各自在不同的应用场景中发挥着重要作用。然而,随着工业自动化系统的日益复杂化,不同设备间的通信需求也变得多样化。因此,如何实现不同协议设备之间的无缝…...
前端基础技术全解析:从HTML前端基础标签语言开始,逐步深入CSS样式修饰、JavaScript脚本控制、Ajax异步通信以及WebSocket持久通信
目录 前言: 1.前端技术html简单了解: 1.1HTML代码是由标签构成的。 1.2.HTML 文件基本结构 1.3.HTML 常见标签 标题标签: 段落标签: p 文本格式化标签 图片标签: 超链接标签: a 测试代码: 展示效果: 表单…...
试用kotlin multiplatform
目录 多平台框架简介 示例工程建立与运行 常用库 桌面平台遇到的一些问题 使用总结 多平台框架简介 多平台的框架不少,flutter,rust,每一个都是优点明显,缺点也明显. flutter的桌面端控件少,质量不一.dart语言丑陋又慢.我不喜欢它. rust,桌面gui不成熟,成熟一些的slint…...
Scratch023-(沙漠变绿洲)
提示: 知识回顾: 1、画笔的各个属性 2、“将笔的颜色设为”积木 3、“将笔的颜色增加”积木 文章目录 前言一、案例展示二、功能分析三、步骤拆解1.背景角色和画笔的初始化(1)初始化画笔2、一起绘制一个小雨滴3、绘制多个随机的小…...
【Linux】深入理解文件系统(超详细)
目录 一.磁盘 1-1 磁盘、服务器、机柜、机房 📌补充: 📌通常网络中用高低电平,磁盘中用磁化方向来表示。以下是具体说明: 📌如果有一块磁盘要进行销毁该怎么办? 1-2 磁盘存储结构 编辑…...
基于 Apache Commons Pool 实现的 gRPC 连接池管理类 GrpcChannelPool 性能分析与优化
基于 Apache Commons Pool 实现的 gRPC 连接池管理类 GrpcChannelPool 性能分析与优化 1. 输出关键信息的代码示例 日志记录方法 使用以下代码记录连接池的关键信息,帮助分析连接池的状态和性能瓶颈: import org.apache.commons.pool2.impl.GenericO…...
微信小程序实现登录注册
文章目录 1. 官方文档教程2. 注册实现3. 登录实现4. 关于作者其它项目视频教程介绍 1. 官方文档教程 https://developers.weixin.qq.com/miniprogram/dev/framework/路由跳转的几种方式: https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.switchTab…...
网络安全-kail linux 网络配置(基础篇)
一、网络配置 1.查看网络IP地址, 我的kail:192.168.15.128 使用ifconfig查看kail网络连接情况,ip地址情况 又复制了一台kail计算机的IP地址。 再看一下windows本机:使用ipconfig进行查看: 再看一下虚拟机上的win7I…...
Lua语言的软件工程
Lua语言的软件工程 引言 在软件工程领域,编程语言的选择对项目的成功与否有着至关重要的影响。Lua语言作为一种轻量级、高效、可扩展的脚本语言,近年来在游戏开发、嵌入式系统以及其他高性能应用程序中得到了广泛应用。本文将深入探讨Lua语言的特点、优…...
【Rust自学】11.4. 用should_panic检查恐慌
喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 11.4.1. 验证错误处理的情况 测试函数出了验证代码的返回值是否正确,还需要验证…...
基于深度模型的印章检测(c++)
效果展示: 有点: (1)快速(几十毫秒级别); (2)精度高; int main() {std::string imagePath;// 提示用户输入图像路径std::cout << "请输入图像路…...
C#Struct堆栈
Struct若其内部含有堆对象,Struct的该对象放在堆上; Struct当做参数传递时,其堆属性作为引用传递,值属性还是作为值传递; struct TS { public int[] t1; public int t2; } public void TF1(TS t) { int[] t1 t.t1; …...
STM32之一种双通路CAN总线消息备份冗余处理方法(十三)
STM32F407 系列文章 - Dual-CANBus-ProMethod(十三) 目录 前言 一、现状分析 二、解决思路 1.应用场景网络结构图 2.数据发送流程 3.数据接收流程 4.用到的模块 1.CAN网络速率及时间片分配 2.CAN网络消息ID组成 3.设备节点定义 4.数据格式说明…...
深入学习RabbitMQ的Direct Exchange(直连交换机)
RabbitMQ作为一种高性能的消息中间件,在分布式系统中扮演着重要角色。它提供了多种消息传递模式,其中Direct Exchange(直连交换机)是最基础且常用的一种。本文将深入介绍Direct Exchange的原理、应用场景、配置方法以及实践案例&a…...
客户端 ORA-12537: TNS: 连接已关闭
现象: 1、双节点数据库. 2、客户端连接 db1 正常 3、客户端连接db2 显示:ORA-12537: TNS: 连接已关闭 4、数据库正常启动 5、lsnrctl status 检查 监听正常 6、lsnrctl stop/start 重启监听正常 过程: 冲浪 查看网友的解决方法。 连接&…...
.net开发环境安装配置以及程序发布 详细教程
文章目录 一、安装visual studio1.1推荐win10操作系统1.2推荐vs20221.3选择工作负载 二、新建基于.net的winform应用程序2.1为什么要.net 2.22.2.1 选择Window窗体应用 三、发布.net应用 一、安装visual studio 1.1推荐win10操作系统 1.2推荐vs2022 社区版、专业版、企业版都…...
盛最多水的容器
一、题目 给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i, 0)和(i, height[i])。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。也就是求x轴与y轴的面积。 说明:你不能倾…...
spring boot解决swagger中的v2/api-docs泄露漏洞
在配置文件中添加以下配置 #解决/v2/api-docs泄露漏洞 springfox:documentation:swagger-ui:enabled: falseauto-startup: false 处理前: 处理后:...
MySQL和Hive中的行转列、列转行
水善利万物而不争,处众人之所恶,故几于道💦 文章目录 MySQL1.行转列2.列转行 Hive1.行转列2.列转行(1)侧窗(2)union MySQL 1.行转列 把多行转成列。直接group,sum(if()) 2.列转行 Hive 1.行转列 select name,sum(if(kmshuxu…...
【关于 vite 使用plugin-legacy兼容低版本浏览器仍出现的问题的情况】
项目使用了vitevue3ts的方案,采用plugin-legacybabel适配低版本浏览器 在开发工作中,项目使用了vitevue3ts的方案,但是需要适配低版本浏览器。首先使用了vitejs/plugin-legacy插件,配置完成后发现并不能解决问题, 出现…...
【集成学习】Bagging算法详解及代码实现
文章目录 1. Bagging集成学习算法1.1 简介1.2 基本步骤1.3 Bagging优缺点1.4 随机森林:Bagging的一个重要应用1.5 总结 2. Python代码实现3. 如何理解偏差与方差3.1 偏差(Bias)3.2 方差(Variance)3.3 方差与偏差的权衡…...
HTML5实现好看的中秋节网页源码
HTML5实现好看的中秋节网页源码 前言一、设计来源1.1 网站首页界面1.2 登录注册界面1.3 节日由来界面1.4 节日习俗界面1.5 节日文化界面1.6 节日美食界面1.7 节日故事界面1.8 节日民谣界面1.9 联系我们界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载结束语 HTML5实现好看…...
OBS Zoom to Mouse 脚本安装与使用指南
前言:OBS有两个不错的放大插件,经过多台电脑测试发现,唯一好用的就是下面介绍的obs-zoom-to-mouse.lua这个插件,因为它安装简单,不需要python,设置更人性化性价比极高。 zoom_and_follow_mouse.py 这个pyth…...
使用codeblock+wxwidgets做的界面,运行时额外出现了一个cmd窗口
如何不让cmd窗口出现? 定位到Workspace project,选择菜单Project->Properties 将Type从Console application改为GUI application, 然后rebuild 这个project 之后再运行就没有cmd窗口了: 原因是在创建Project的时候选择了console mode application, 可…...
AI眼镜赛马,谁是C位,谁在边缘?
CES2025正在火热开展,智能眼镜成为最受关注的赛道之一。 去年8月,Meta曾一枝独秀引领AI眼镜爆发了一次大行情,带动AI眼镜市场百花齐放,近几个月更是爆发新品潮。 据悉,包括国内的雷神科技、恺英网络投资的乐相科技&a…...
Linux中彻底卸载Oracle 19.25单实例数据库
Linux中彻底卸载Oracle 19.25单实例数据库 1、关闭数据库实例2、关闭数据库监听3、执行deinstall卸载脚本4、删除相关目录5、删除数据库相关的用户和组 1、关闭数据库实例 su - oracle sqlplus / as sysdba shutdown immediate2、关闭数据库监听 su - oracle lsnrctl stop3、…...
分享:osgb倾斜数据转cesium-3dtiles 小工具.
背景: 很多知识殊途同归,在三维软件这块,少不了要和各种各样的数据格式打交道.osgb,stl,obj,3dtiles,3ds等等..虽然里面本质核心基本都是几何数据拓扑数据材质纹理数据等等,但是由于其组织方式不同和特殊的应用场景,导致很多模型需要转来转去...相信很多人在这方面都或多或少吃…...
基于单片机的客车载客状况自动检测系统(论文+源码)
1系统整体设计 本课题为客车载客状况自动检测系统,在此以STM32单片机为核心控制器,结合压力传感器、红外传感器、蜂鸣器、语音提示模块、继电器、液晶等构成整个客车载客状况自动检测系统,整个系统架构如图2.1所示,在此通过两个红…...
Chrome访问https页面显示ERR_CERT_INVALID,且无法跳过继续访问
在访问网页的时候,因为浏览器自身的安全设置问题, 对于https的网页访问会出现安全隐私的提示, 甚至无法访问对应的网站,尤其是chrome浏览器, 因此本文主要讲解如何设置chrome浏览器的设置,来解决该问题&…...
中国省级产业结构高级化及合理化数据测算(2000-2023年)
一、数据介绍 数据名称:中国省级产业结构高级化、泰尔指数 数据年份:2000-2023年 数据范围:31个省份 数据来源:中国统计年鉴、国家统计局 数据整理:内含原始版本、线性插值版本、ARIMA填补版本 数据说明…...
云手机 —— 手机矩阵的 “超级外挂
如何打造手机矩阵 打造手机矩阵主要包括以下几个步骤: 1.确定目标与需求:首先,明确打造手机矩阵的目的和需求,是为了进行电商运营、自媒体推广、任务管理还是其他目的。这将决定后续的手机数量、操作系统选择以及应用安装等。 2.选择手机与操作系统:根据…...
Ruby语言的编程范式
Ruby语言的编程范式 在软件开发的世界里,编程语言不仅仅是实现功能的工具,更是一种表达思想和解决问题的方式。Ruby语言凭借其简洁优雅的语法和强大的功能,广受开发者喜爱,并逐步形成了一种独特的编程范式。本文将深入探讨Ruby语…...
【微服务】SpringBoot 整合Redis实现延时任务处理使用详解
目录 一、前言 二、延迟任务的高频使用场景 三、延迟任务常用解决方案 3.1 Quartz 3.2 DelayQueue 3.2.1 Timer + TimerTask 3.2.2 ScheduledExecutorService 3.3 Redis sorted set 3.4 RabbitMQ 四、Redis实现延时队列操作实战 4.1 Redis Sorted Set 概述 4.1.1 Re…...
STM32烧写失败之Contents mismatch at: 0800005CH (Flash=FFH Required=29H) !
一)问题:用ULINK2给STM32F103C8T6下载程序,下载方式设置如下: 出现下面两个问题: 1)下载问题界面如下: 这个错误的信息大概可以理解为,在0x08000063地址上读取到flash存储为FF&am…...
图像分割综述
1. 简述 图像分割(Image Segmentation)是计算机视觉领域中的一项基本任务,旨在将图像划分为多个具有语义或视觉意义的区域。这项任务在医学影像分析、自动驾驶、遥感图像处理、视频监控等领域都有着广泛的应用。随着深度学习技术的发展&…...
计算机毕业设计hadoop+spark知网文献论文推荐系统 知识图谱 知网爬虫 知网数据分析 知网大数据 知网可视化 预测系统 大数据毕业设计 机器学习
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
STM32-笔记38-I2C-oled实验
一、什么是I2C? I2C总线,全称Inter-Integrated Circuit(互连集成电路),是一种由Philips(现NXP半导体)公司在1980年代初开发的同步 串行 半双工通信总线。 二、有了串口通信为什么要使用I2C&…...
Vue Amazing UI 组件库(Vue3+TypeScript+Vite 等最新技术栈开发)
Vue Amazing UI 一个 Vue 3 组件库 使用 TypeScript,都是单文件组件 (SFC),支持 tree shaking 有点意思 English | 中文 Vue Amazing UI 是一个基于 Vue 3、TypeScript、Vite 等最新技术栈开发构建的现代化组件库,包含丰富的 UI 组件和常…...
Android NDK开发实战之环境搭建篇(so库,Gemini ai)
文章流程 音视频安卓开发首先涉及到ffmpeg编译打包动态库,先了解动态库之间的cpu架构差异性。然后再搭建可运行的Android 环境。 So库适配 ⽇常开发我们经常会使⽤到第三库,涉及到底层的语⾳,视频等都需要添加so库。⽽so库的体积⼀般来说 ⾮…...
Word中所有的通配符使用方式[Word如何批量删除中文标点符号,英文标点符号,英文字母符号,数字符号,中文汉字符号]
Word中所有的通配符使用方式 概念讲解通配符一览表详细介绍通配符的使用使用通配符搜索简洁通配符链接操作演示链接 概念讲解 Word中的通配符是用在查找和替换中的正则表达式。通配符可以实现高级的查找替换,快速整理和排版文档。常用的通配符包括: “*…...
ElasticSearch内存占用率过高怎么办?
文章目录 1,先用top看看各个进程的内存占用情况2,不能简单的杀死进程,然后再重启。3,查看一下ElasticSearch进程的具体启动情况4,修改Elasticsearch 的Java堆内存 1,先用top看看各个进程的内存占用情况 先…...
svelte5中使用react组件
在svelet5中导入并使用react组件库 svelte5中使用react组件 svelte5中使用react组件 在svelet5中导入并使用react组件库, 示例项目地址:https://github.com/shenshouer/my-svelte-react 在svelte5中当前还有问题,无法将children传递到react中渲染 使用…...
Linux 文件的特殊权限—ACL项目练习
本文为Ubuntu Linux操作系统- 第二十一期~~ 上期回顾: 【ACL权限控制详解】 更多Linux 相关内容请点击👉【Linux专栏】~ 主页:【练小杰的CSDN】 文章目录 项目项目要求具体的设置命令如下问题2问题3第一步:设置默认ACL前,在projec…...
游戏引擎学习第76天
确保一切正常并计划今天的内容 在本次开发中,我们正在集中精力处理引擎中的三维功能,尤其是如何有效地处理多层结构,比如在多个楼层之间行走,或者在房间上方可以看到下方的房间。我们的目标是避免使用临时解决方案或黑客方式&…...