Vue 3 30天精进之旅:Day 25 - PWA支持
一、引言
在前面的24天中,我们已经深入探讨了Vue 3的许多核心概念和高级特性。今天,我们将进入一个全新的领域——PWA(Progressive Web App)。PWA是一种现代Web应用程序的开发模式,它结合了Web和原生应用的优点,能够提供更流畅的用户体验。在Vue 3中,我们可以轻松地为我们的应用添加PWA支持。本文将带你一步步实现这一目标。
二、什么是PWA?
PWA(Progressive Web App,渐进式Web应用)是一种通过现代Web技术构建的应用程序,它结合了Web和原生应用的优点,能够提供更流畅、更接近原生应用的用户体验。PWA的核心目标是通过一系列技术手段,让Web应用具备以下特性:
1. 可离线访问
PWA通过Service Worker技术实现了离线访问功能。Service Worker是一种运行在浏览器后台的脚本,它可以拦截网络请求,并将资源缓存到本地。当用户在没有网络连接的情况下访问应用时,Service Worker可以从缓存中提供资源,确保应用仍然可用。
2. 快速加载
PWA利用缓存机制和资源预加载技术,能够显著提升应用的加载速度。通过缓存关键资源(如HTML、CSS、JavaScript文件),PWA可以在用户再次访问时快速加载页面,减少等待时间,提供流畅的用户体验。
3. 可安装
PWA支持添加到主屏幕的功能。用户可以将PWA像原生应用一样安装到设备的主屏幕上,并通过图标直接启动。这种体验让PWA更加接近原生应用,同时也减少了用户对应用商店的依赖。
4. 响应式设计
PWA采用响应式设计,能够适应不同的设备和屏幕尺寸。无论是桌面、平板还是手机,PWA都能提供一致的用户体验。
5. 安全性
PWA必须运行在HTTPS协议下,以确保数据传输的安全性。HTTPS不仅保护用户数据,还能防止恶意攻击。
6. 推送通知
PWA支持推送通知功能,能够像原生应用一样向用户发送通知。这种功能可以提升用户参与度,增加应用的粘性。
7. 跨平台
PWA基于Web技术开发,因此可以在任何支持现代浏览器的平台上运行,包括Windows、macOS、Android和iOS。这种跨平台特性大大降低了开发和维护成本。
三、在Vue 3中添加PWA支持
在Vue 3中,我们可以通过@vue/cli-plugin-pwa
插件轻松地为应用添加PWA支持。以下是详细的实现步骤:
1. 安装PWA插件
首先,确保你的项目是基于Vue CLI创建的。如果还没有安装Vue CLI,可以通过以下命令安装:
npm install -g @vue/cli
然后,在项目根目录下运行以下命令,添加PWA插件:
vue add pwa
这个命令会自动安装@vue/cli-plugin-pwa
插件,并在项目中生成相关的配置文件。
2. 配置PWA
安装完成后,你会在项目根目录下看到一个vue.config.js
文件。这个文件中包含了PWA的配置选项。以下是一个常见的配置示例:
module.exports = {pwa: {name: 'My PWA App', // 应用名称themeColor: '#4DBA87', // 主题颜色msTileColor: '#000000', // Windows磁贴颜色appleMobileWebAppCapable: 'yes', // 是否启用iOS全屏模式appleMobileWebAppStatusBarStyle: 'black', // iOS状态栏样式manifestOptions: {background_color: '#ffffff', // 背景颜色icons: [{src: './img/icons/icon-192x192.png', // 图标路径sizes: '192x192',type: 'image/png'},{src: './img/icons/icon-512x512.png',sizes: '512x512',type: 'image/png'}]},workboxPluginMode: 'GenerateSW', // 使用GenerateSW模式生成Service WorkerworkboxOptions: {skipWaiting: true, // 跳过等待,立即激活新Service WorkerclientsClaim: true, // 控制所有客户端runtimeCaching: [{urlPattern: /^https:\/\/api\.example\.com\/.*/, // 缓存API请求handler: 'NetworkFirst',options: {cacheName: 'api-cache',expiration: {maxEntries: 50,maxAgeSeconds: 60 * 60 * 24 // 缓存1天}}}]}}
}
在这个配置中,我们定义了应用的名称、主题颜色、图标等。workboxPluginMode
和workboxOptions
用于配置Service Worker的行为。
3. 生成Service Worker
Service Worker是PWA的核心技术之一,它负责缓存资源并处理网络请求。在Vue 3中,我们可以通过workbox-webpack-plugin
自动生成Service Worker。
在vue.config.js
中,我们已经配置了workboxPluginMode
为GenerateSW
,这意味着Vue CLI会自动为我们生成Service Worker。你可以在src
目录下找到一个registerServiceWorker.js
文件,这个文件用于注册Service Worker。registerServiceWorker.js
文件的内容如下:
import { register } from 'register-service-worker'if (process.env.NODE_ENV === 'production') {register(`${process.env.BASE_URL}service-worker.js`, {ready() {console.log('App is being served from cache by a service worker.')},registered() {console.log('Service worker has been registered.')},cached() {console.log('Content has been cached for offline use.')},updatefound() {console.log('New content is downloading.')},updated() {console.log('New content is available; please refresh.')},offline() {console.log('No internet connection found. App is running in offline mode.')},error(error) {console.error('Error during service worker registration:', error)}})
}
这个文件会在生产环境中自动注册Service Worker,并监听Service Worker的生命周期事件,如缓存成功、更新可用等。
4. 自定义Service Worker
如果你需要更复杂的Service Worker逻辑,可以将workboxPluginMode
设置为InjectManifest
,并在src
目录下创建一个自定义的Service Worker文件(例如src/service-worker.js
)。然后在vue.config.js
中配置workboxOptions
,指定自定义Service Worker的路径:
module.exports = {pwa: {workboxPluginMode: 'InjectManifest',workboxOptions: {swSrc: './src/service-worker.js' // 自定义Service Worker文件路径}}
}
在自定义的Service Worker文件中,你可以使用Workbox API实现更高级的缓存策略,例如动态缓存、缓存清理等。
5. 测试PWA功能
完成配置后,我们可以通过以下步骤测试PWA功能:
- 构建项目:运行
npm run build
命令,构建生产环境的应用。 - 启动本地服务器:使用
serve
或其他静态文件服务器,启动一个本地服务器来测试构建后的应用。npm install -g serve serve -s dist
- 检查PWA功能:
- 离线访问:在浏览器中打开应用,然后断开网络连接,刷新页面,检查应用是否仍然可以访问。
- 添加到主屏幕:在移动设备或支持PWA的桌面浏览器中,检查是否可以将应用添加到主屏幕。
- 缓存资源:打开开发者工具,查看
Application
选项卡中的Cache Storage
,确认资源是否被正确缓存。
6. 部署PWA
当你确认PWA功能正常后,可以将应用部署到生产环境。PWA可以在任何支持HTTPS的服务器上运行。确保你的服务器配置正确,并且所有资源都能够被正确缓存。
7. 优化PWA体验
为了进一步提升PWA的用户体验,你可以考虑以下优化措施:
- 预加载关键资源:在
index.html
中使用<link rel="preload">
标签预加载关键资源,加快页面加载速度。 - 使用Web App Manifest:在
public/manifest.json
中配置应用的图标、主题颜色、启动URL等,确保应用在添加到主屏幕时显示正确的信息。 - 实现推送通知:使用Push API和Notification API实现推送通知功能,提升用户参与度。
四、PWA在实际项目中的应用场景与最佳实践
PWA不仅仅是一种技术,更是一种提升用户体验和开发效率的解决方案。在实际项目中,PWA可以应用于多种场景,并带来显著的价值。以下是PWA的一些典型应用场景以及最佳实践:
1. 应用场景
(1)电商平台
电商平台通常需要快速加载和流畅的用户体验,以提升转化率。通过PWA,电商平台可以实现以下功能:
- 离线浏览:用户可以在没有网络连接的情况下浏览商品信息。
- 快速加载:通过缓存商品图片和页面资源,减少加载时间。
- 推送通知:向用户发送促销信息或订单状态更新。
(2)新闻和博客
新闻和博客类应用需要频繁更新内容,同时保证用户能够快速访问。PWA可以帮助实现:
- 离线阅读:用户可以将文章缓存到本地,离线阅读。
- 即时更新:通过Service Worker的更新机制,确保用户始终看到最新的内容。
- 添加到主屏幕:用户可以将新闻应用添加到主屏幕,方便随时访问。
(3)社交媒体
社交媒体应用需要实时性和互动性。PWA可以支持:
- 实时消息推送:通过推送通知功能,及时通知用户新消息或动态。
- 离线发布:用户可以在离线状态下撰写内容,待网络恢复后自动发布。
- 快速加载:通过缓存用户数据和媒体资源,提升加载速度。
(4)企业内部应用
企业内部应用(如CRM、ERP系统)通常需要跨平台和离线支持。PWA可以:
- 跨平台运行:在桌面和移动设备上无缝运行,减少开发成本。
- 离线操作:员工可以在没有网络连接的情况下继续工作,数据会在网络恢复后同步。
2. 最佳实践
(1)优化缓存策略
PWA的核心是缓存,因此需要根据应用的特点设计合理的缓存策略。以下是一些常见的缓存策略:
- 缓存优先:对于静态资源(如CSS、JavaScript文件),使用缓存优先策略,确保快速加载。
- 网络优先:对于动态内容(如API数据),使用网络优先策略,确保用户获取最新数据。
- 缓存清理:定期清理过期的缓存,避免占用过多存储空间。
(2)使用Web App Manifest
manifest.json
文件是PWA的重要组成部分,它定义了应用的元数据。以下是一个典型的manifest.json
配置示例:
{"name": "My PWA App","short_name": "PWA","start_url": "/","display": "standalone","background_color": "#ffffff","theme_color": "#4DBA87","icons": [{"src": "/img/icons/icon-192x192.png","sizes": "192x192","type": "image/png"},{"src": "/img/icons/icon-512x512.png","sizes": "512x512","type": "image/png"}]
}
(3)实现推送通知
推送通知是PWA的重要功能之一,可以提升用户参与度。以下是一个简单的推送通知实现示例:
// 请求通知权限
Notification.requestPermission().then(permission => {if (permission === 'granted') {// 显示通知new Notification('Hello!', {body: 'This is a push notification from your PWA.',icon: '/img/icons/icon-192x192.png'});}
});
(4)测试与监控
在开发PWA时,测试和监控是必不可少的环节。以下是一些常用的工具和方法:
- Lighthouse:使用Google Chrome的Lighthouse工具测试PWA的性能、可访问性和PWA特性。
- Workbox Debugging:在开发环境中启用Workbox的调试模式,查看缓存和Service Worker的行为。
- 用户反馈:收集用户对PWA功能的反馈,持续优化体验。
(5)渐进增强
PWA的核心思想是渐进增强,即在不影响基础功能的前提下,逐步添加高级特性。在开发过程中,应确保应用在不支持PWA的浏览器中仍然能够正常运行。
3. 案例分享
(1)Twitter Lite
Twitter Lite是Twitter推出的PWA版本,它显著提升了加载速度和用户体验。通过PWA技术,Twitter Lite实现了以下功能:
- 快速加载:页面加载时间减少了30%。
- 离线访问:用户可以在离线状态下浏览已加载的内容。
- 推送通知:及时通知用户新消息和动态。
(2)Pinterest
Pinterest通过PWA技术提升了用户参与度和转化率。以下是Pinterest PWA的主要改进:
- 加载速度提升:Pinterest的PWA版本将页面加载时间从23秒减少到5.6秒,显著提升了用户体验。
- 用户参与度增加:通过推送通知和离线功能,用户活跃度提升了60%。
- 安装率提高:用户将Pinterest PWA添加到主屏幕的比例提高了50%。
(3)Starbucks
Starbucks的PWA版本为用户提供了流畅的点单体验,即使在没有网络连接的情况下也能使用。以下是Starbucks PWA的关键特性:
- 离线点单:用户可以在离线状态下浏览菜单并下单,订单会在网络恢复后自动提交。
- 快速加载:通过缓存资源,PWA版本加载速度比原生应用更快。
- 跨平台支持:PWA版本可以在任何设备上运行,减少了开发和维护成本。
五、PWA的未来发展趋势
随着Web技术的不断发展,PWA的应用场景和功能也在不断扩展。以下是PWA未来的一些发展趋势:
1. 更强大的离线能力
未来的PWA将支持更复杂的离线功能,例如离线数据库同步、离线支付等。这将进一步缩小PWA与原生应用之间的差距。
2. 与原生API的深度集成
随着Web API的不断丰富,PWA将能够访问更多原生设备功能,例如蓝牙、NFC、AR/VR等。这将使PWA在更多领域发挥重要作用。
3. 跨平台开发的主流选择
PWA的跨平台特性使其成为开发者的首选。未来,更多的企业和开发者将选择PWA作为跨平台开发的主要技术栈。
4. 更智能的缓存策略
通过结合AI和机器学习技术,PWA将能够动态调整缓存策略,根据用户行为和网络条件优化资源加载。
5. 更广泛的应用场景
PWA将在更多领域得到应用,例如教育、医疗、金融等。通过PWA,这些领域可以提供更高效、更便捷的服务。
六、结语
通过今天的学习,我们成功地为Vue 3应用添加了PWA支持。PWA不仅能够提升用户体验,还能够让我们的应用更具竞争力。在未来的开发中,PWA将成为Web应用开发的重要趋势之一。希望本文能够帮助你在Vue 3中轻松实现PWA功能。
在接下来的几天中,我们将继续探索Vue 3的其他高级特性和最佳实践。敬请期待!
相关资源:
- Vue CLI PWA Plugin Documentation
- Workbox Documentation
- PWA 官方文档
相关文章:
Vue 3 30天精进之旅:Day 25 - PWA支持
一、引言 在前面的24天中,我们已经深入探讨了Vue 3的许多核心概念和高级特性。今天,我们将进入一个全新的领域——PWA(Progressive Web App)。PWA是一种现代Web应用程序的开发模式,它结合了Web和原生应用的优点&#…...
arm linux下的中断处理过程。
本文基于ast2600 soc来阐述,内核版本为5.10 1.中断gic初始化 start_kernel() -> init_IRQ() -> irqchip_init() of_irq_init()主要是构建of_intc_desc. 489-514: 从__irqchip_of_table中找到dts node中匹配的of_table(匹配matches->compatible)…...
Linux上Elasticsearch 集群部署指南
Es 集群部署 Es 集群部署 Es 集群部署 准备好三台服务器。示例使用:110.0.5.141/142/143 1、es用户和用户组创建,使用root账号 groupadd esuseradd -g es es2、将es安装包和ik分词器上传到:/home/es/目录下(任意目录都行&#…...
SpringBoot+shardingsphere实现按月分表功能
SpringBootshardingsphere实现按月分表功能 文章目录 前言 ShardingSphere 是一套开源的分布式数据库中间件解决方案,旨在简化数据库分片、读写分离、分布式事务等复杂场景的管理。它由 Apache 软件基金会支持,广泛应用于需要处理大规模数据的系统中 一…...
如何设置 Nginx 连接超时并进行测试(Nginx优化)
🏡作者主页:点击! Nginx-从零开始的服务器之旅专栏:点击! 🐧Linux高级管理防护和群集专栏:点击! ⏰️创作时间:2025年2月15日14点22分 在高并发场景下,如…...
Python实现AWS Fargate自动化部署系统
一、背景介绍 在现代云原生应用开发中,自动化部署是提高开发效率和保证部署质量的关键。AWS Fargate作为一项无服务器计算引擎,可以让我们专注于应用程序开发而无需管理底层基础设施。本文将详细介绍如何使用Python实现AWS Fargate的完整自动化部署流程。 © ivwdcwso (ID…...
ubuntu20.04声音设置
step1:打开pavucontrol,设置Configuration和Output Devices, 注意需要有HDMI / DisplayPort (plugged in)这个图标。如果没有,就先选择Configuration -> Digital Stereo (HDMI 7) Output (unplugged) (unvailable),…...
AWS Database Migration Service
AWS Database Migration Service (DMS) 是亚马逊 Web 服务(AWS)提供的一项服务,旨在帮助用户将数据库迁移到 AWS 云环境中。无论是将现有的数据库迁移到 Amazon RDS(关系型数据库服务)、Amazon Aurora、Amazon Redshif…...
ROS学习
1.ROS工作空间 存放项目开发相关文件的文件夹; src:代码空间(Source Space)install:安装空间(Install Space)build:编译空间(Build Space)log:日志空间(Log Space) 2.c…...
【NLP 24、模型训练方式】
你的痛苦,我都心疼,想为你解决 —— 25.2.15 一、按学习范式分类 1. 监督学习(Supervised Learning) 核心思想:使用带有标签(已知输入-输出对)的数据训练模型。 常见任务:分类&…...
【算法】【区间和】acwing算法基础 802. 区间和 【有点复杂,但思路简单】
题目 假定有一个无限长的数轴,数轴上每个坐标上的数都是 0。 现在,我们首先进行 n 次操作,每次操作将某一位置 x 上的数加 c。 接下来,进行 m 次询问,每个询问包含两个整数 l 和 r,你需要求出在区间 [l,r] …...
DeepSeek 从入门到精通学习指南,2025清华大学《DeepSeek从入门到精通》正式发布104页pdf版超全解析
DeepSeek 是一款强大的 AI 搜索引擎,广泛应用于企业级数据检索和分析。无论您是初学者还是有经验的用户,掌握 DeepSeek 的使用都能为您的工作带来极大的便利。本文将从入门到精通,详细介绍如何学习和使用 DeepSeek。 链接: https://pan.baid…...
PyQt6/PySide6 的自定义信号实现
一、信号与槽基础概念 核心机制:观察者模式的实现,支持对象间的松耦合通信原生信号:内置控件(如QPushButton)的clicked等预定义信号自定义优势:实现业务逻辑解耦,增强组件复用性 PyQt6/PySide…...
什么是FCC认证
联邦通信委员会(FCC)认证是美国一种强制性的认证,确保电子设备在上市前符合特定标准。 联邦通讯委员会(FCC)----管理进口和使用无线电频率装置,包括电脑、传真机、电子装置、无线电接收和传输设备、无线电…...
共享设备管理难?MDM助力Kiosk模式一键部署
目录 1. 简化设备部署与配置:实现一键式部署 2. 自动化应用更新与内容推送:确保设备始终保持最新状态 3. 权限控制与设备安全:防止滥用与数据泄露 4. 远程管理与故障诊断:保障设备长期稳定运行 5. 数据分析与报告:…...
RAMinit 程序编译运行考古记录
本科的时候浅浅研究了DOSBox,今天看到网上挺多关于雷军代码的新闻,我把雷军代码在web上编译出来了,但是我是业余选手,所以做得比较差,不过大家感兴趣可以关注我的dosplay项目,旨在利用js-dos实现汇编语言在…...
今日AI和商界事件(2025-02-15)
根据2025年2月15日的科技动态,以下是今日AI领域的重要事件及相关进展总结: 1. DeepSeek日活突破3000万,开源生态加速AI普惠 里程碑意义:开源大模型DeepSeek宣布日活跃用户数突破3000万,其R1模型凭借开源策略和低成本优…...
鸿蒙开发:熟知@BuilderParam装饰器
前言 本文代码案例基于Api13。 在实际的开发中,我们经常会遇到自定义组件的情况,比如通用的列表组件,选项卡组件等等,由于使用方的样式不一,子组件是动态变化的,针对这一情况,就不得不让使用方把…...
基于和声搜索(Harmony Search, HS)的多中心点选址优化算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于和声搜索(Harmony Search, HS)的多中心点选址优化算法matlab仿真。可以设置多个不同的中心点。 2.测试软件版本以及运行结果展示 matlab2022a/matlab2024b版…...
word文档提取信息
目录 一、说明二、Aspose-words方式2.1、Aspose-words介绍2.2、Aspose-words使用说明2.3、Aspose-words解析核心代码一、说明 项目中遇到这样的一个需求问题:“一个docx文档,用户根据关键词能搜索定位到文档的哪一页”。docx文档主要有文本、表格、图片、附件这几类组合,为…...
单、双 链 表
数组模拟链表 ①单链表:邻接表{储存图和树} ②双链表:优化某些问题 单链表 // head 表示头结点的下标 // e[i] 表示节点i的值 // ne[i] 表示节点i的next指针是多少 // idx 存储当前已经用到了哪个点 e[i]和ne[i]用下标关联起来ÿ…...
SpringBoot整合easy-es
一、easy-es简介 EasyES是一款基于Elasticsearch官方提供的RestHighLevelClient开发的ORM框架,旨在简化开发流程并提高效率。 EasyES在保持RestHighLevelClient原有功能的基础上进行增强,而不做任何改变。它采用与Mybatis-Plus相似的语法,使得…...
2025年2月15日(ipython 换行-deepseek)
好的,用户现在想知道在IPython中如何换行而不运行代码。之前他们问过关于树莓派安装matplotlib的问题,现在转向IPython的使用,可能他们正在学习Python,并且可能在使用树莓派进行项目开发。需要确定用户的使用场景,可能…...
MyBatis:动态SQL高级标签使用方法指南
一、引言 目前互联网大厂在搭建后端Java服务时,常使用Springboot搭配Mybatis/Mybatis-plus的框架。Mybatis/Mybatis-plus之所以能成为当前国内主流的持久层框架,与其本身的优点有关:支持定制动态 SQL、存储过程及高级映射,简化数…...
Python常见面试题的详解5
1. re 模块中 search () 和 match () 的区别 要点:在 Python 的 re 模块中,re.match() 和 re.search() 是用于正则表达式匹配的两个重要函数,它们的主要区别在于匹配的起始位置:re.match():从字符串的开头开始匹配正则…...
python包的管理
管理python包 python能跻身最欢迎编程语言前列的一个主要原因是python有着活跃的社区提供丰富的包,诸如numpy,pandas,scikit-learn等等。 python的包都存放PyPI中,PyPI即Python Package Index,是python的软件仓库。所…...
性能测试流程、主流性能工具
性能测试流程 性能测试流程 测试测试需求分析 性能测试计划和方案 测什么: 测试背景 测试目的 测试范围 谁来测: 进度和分工 交付清单 怎么测: 测试策略 性能测试用例设计 性能测试测试执行 性能分析和调优 性能测试报告 测试报告是…...
Lua闭包的使用以及需要注意的问题
1. 闭包的基本概念 在 Lua 中,闭包是一个函数值,它包含了函数本身以及该函数所创建时的环境。闭包允许函数访问其外部函数作用域中的变量,即使外部函数已经执行完毕。 2.闭包的简单使用 代码:在下面的代码中,create…...
【个人开发】deepseed+Llama-factory 本地数据多卡Lora微调
文章目录 1.背景2.微调方式2.1 关键环境版本信息2.2 步骤2.2.1 下载llama-factory2.2.2 准备数据集2.2.3 微调模式2.2.4 微调脚本 2.3 踩坑经验2.3.1 问题一:ValueError: Undefined dataset xxxx in dataset_info.json.2.3.2 问题二: ValueError: Target…...
LabVIEW 天然气水合物电声联合探测
天然气水合物被认为是潜在的清洁能源,其储量丰富,预计将在未来能源格局中扮演重要角色。由于其独特的物理化学特性,天然气水合物的探测面临诸多挑战,涉及温度、压力、电学信号、声学信号等多个参数。传统的人工操作方式不仅效率低…...
VisualStudio 2012 fatal error C1083: 无法打开包括文件:“stdio.h 找不到 sdkddkver.h
今天安装了一个VC 2012 Express 学习版,提示找不不到stdio.h, 提示找不到sdkddkver.h 发现是没有安装windows8.0 SDK ,还有一个些VC头文件没有安装. 真是太奇怪了,可能版本太多,安装出问题. 我这里放一个备份文件,省得以后,不能安装的时候,没地方找这些头文件. 无法打开包…...
什么是access token和refresh token?
access token 验证身份有效时间相对refresh token 时间短一点 refresh token 用于辅助access token 过期,避免用户反复登录的问题当accesstoken过期直接拿refreshtoken去获取最新的token...
盛铂科技 SCP4006/4018/4040:国产袖珍式功率计 射频微波功率探头 平均功率计
在通信、电子测量等领域,功率计是确保信号稳定、系统高效运行的关键设备。盛铂科技自主研发的 SCP4000 系列自带 USB 接口的袖珍式 CW 信号平均功率计,以其卓越的性能、高性价比和便捷的操作,在众多同类产品中脱颖而出,成为行业内…...
Unity 获取独立显卡数量
获取独立显卡数量 导入插件包打开Demo 运行看控制台日志 public class GetGraphicCountDemo : MonoBehaviour{public int count;// Start is called before the first frame updatevoid Start(){count this.GetIndependentGraphicsDeviceCount();}}...
wx061基于ssm+vue+uniapp的疫情期间学生请假与销假系统小程序
开发语言:Java框架:ssmuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:M…...
硕成C语言22【一些算法和数组的概念】
1.求水仙花数 #include <stdio.h>int main() {//求水仙花数:1.三位数 2.个位的立方十位的立方百位的立方该数int unit, tens, hundreds;for (int i 100; i < 1000; i)//i表示该水仙花数{unit i / 1 % 10;tens i / 10 % 10;hundreds i / 100 % 10;if (…...
最新国内 ChatGPT Plus/Pro 获取教程
最后更新版本:20250202 教程介绍: 本文将详细介绍如何快速获取一张虚拟信用卡,并通过该卡来获取ChatGPT Plus和ChatGPT Pro。 # 教程全程约15分钟开通ChatGPT Plus会员帐号前准备工作 一个尚未升级的ChatGPT帐号!一张虚拟信用卡…...
Django中实现简单易用的分页工具
如何在Django中实现简单易用的分页工具?📚 嗨,小伙伴们!今天我们来看看如何在 Django 中实现一个超简单的分页工具。无论你是在处理博客文章、产品列表,还是用户评论,当数据量一大时,分页显得尤…...
个人下载中国生物医学文献服务系统SinoMed文献的途径及操作方法
中国生物医学文献服务系统——SinoMed数据库介绍: 中国生物医学文献服务系统——SinoMed,由中国医学科学院医学信息研究所/图书馆研制,整合了中国生物医学文献数据库(CBM)、中国医学科普文献数据库(CPM&am…...
软件开发 | GitHub企业版常见问题解读
什么是GitHub企业版? GitHub企业版是一个企业级软件开发平台,专为现代化开发的复杂工作流程而设计。 作为可扩展的平台解决方案,GitHub企业版使组织能够无缝集成其他工具和功能,并根据特定需求定制开发环境,提高整体…...
【Bluedroid】BLE连接过程详解
在BLE通信中,广播(Advertising)和扫描(Scanning)是设备发现和建立连接的基本过程。根据蓝牙SPEC,当一个设备(称为Advertiser)在广播模式下发送广播包时,它遵循一定的时序和规则,以便其他设备(称为Observer或Scanner)可以检测到它,并在适当的时机发送连接请求。 B…...
清影2.0(AI视频生成)技术浅析(二):自然语言处理
清影2.0(AI视频生成)中的自然语言处理(NLP)技术是其核心组件之一,负责将用户输入的自然语言文本转化为机器可以理解的语义表示,从而指导后续的视频生成过程。 一、基本原理 1. 目标 清影2.0的NLP技术旨在将用户输入的自然语言文本转化为机器可以理解的语义表示,从而指…...
Bob the Canadian
1:around the house Hi! Bob the Canadian here! Let’s learn English around the house. Come on in! Hi, Bob the Canadian here. Welcome to this video. If this is your first time here, don’t forget to click the subscribe button below, and give…...
DeepSeek、Kimi、文心一言、通义千问:AI 大语言模型的对比分析
在人工智能领域,DeepSeek、Kimi、文心一言和通义千问作为国内领先的 AI 大语言模型,各自展现出了独特的特点和优势。本文将从技术基础、应用场景、用户体验和价格与性价比等方面对这四个模型进行对比分析,帮助您更好地了解它们的特点和优势。…...
算法思考:非0整数除法
这是一道很简单的问题,但是我们可以有更多的思考 1.如何提升效率? 除法,很明显就是循环嘛,那么如何进一步提升效率?就是跳过多余的循环步骤比如15/2,原先是1111111再余1,现在尽量每次除2的最大…...
服务器租用:虚拟化技术都包含哪些内容?
服务器作为常见的网络设备,有着物理服务器、云服务器和虚拟服务器等多种类型,其中虚拟服务器主要是依靠虚拟化技术将物理服务器划分成多个虚拟机,以此来充分利用服务器资源,那虚拟化技术都包含了哪些内容呢? 硬件虚拟化…...
[免费]SpringBoot公益众筹爱心捐赠系统【论文+源码+SQL脚本】
大家好,我是老师,看到一个不错的SpringBoot公益众筹爱心捐赠系统,分享下哈。 项目介绍 公益捐助平台的发展背景可以追溯到几十年前,当时人们已经开始通过各种渠道进行公益捐助。随着互联网的普及,本文旨在探讨公益事业…...
uniapp商城之首页模块
文章目录 前言一、自定义导航栏1.静态结构2.修改页面配置3.组件安全区适配二、通用轮播组件1. 静态结构组件2.自动导入全局组件3.首页轮播图数据获取三、首页分类1.静态结构2.首页获取分类数据并渲染四、热门推荐1.静态结构2.首页获取推荐数据并渲染3.首页跳转详细推荐页五、猜…...
类与对象C++详解(上)
目录 1.类的定义 1.1 类定义格式 补充: struct与class的区别(c语言与c) 1.2 访问限定符 1.3 类域 2.实例化 3.对象大小 4.this指针 1.类的定义 1.1 类定义格式 class为定义类的关键字,Stack为类的名字,{}中为类的主体&…...
AI agent 未来好的趋势:AI医疗影像、智能客服、个性化推荐
AI agent 未来好的趋势:AI医疗影像、智能客服、个性化推荐 目录 AI agent 未来好的趋势:AI医疗影像、智能客服、个性化推荐比特币AI Agents稳定币扩容区块链AI基础设施AI驱动的软件应用AI赋能的行业应用AI医疗影像、智能客服、个性化推荐AI药物研发比特币 市场与机构化:2024…...