当前位置: 首页 > news >正文

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天}}}]}}
}

在这个配置中,我们定义了应用的名称、主题颜色、图标等。workboxPluginModeworkboxOptions用于配置Service Worker的行为。

3. 生成Service Worker

Service Worker是PWA的核心技术之一,它负责缓存资源并处理网络请求。在Vue 3中,我们可以通过workbox-webpack-plugin自动生成Service Worker。

vue.config.js中,我们已经配置了workboxPluginModeGenerateSW,这意味着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功能:

  1. 构建项目:运行npm run build命令,构建生产环境的应用。
  2. 启动本地服务器:使用serve或其他静态文件服务器,启动一个本地服务器来测试构建后的应用。
    npm install -g serve
    serve -s dist
    
  3. 检查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天中&#xff0c;我们已经深入探讨了Vue 3的许多核心概念和高级特性。今天&#xff0c;我们将进入一个全新的领域——PWA&#xff08;Progressive Web App&#xff09;。PWA是一种现代Web应用程序的开发模式&#xff0c;它结合了Web和原生应用的优点&#…...

机器学习-生命周期

假如一个用户向银行申请贷款&#xff0c;银行该如何对这个用户进行评估?很明显&#xff0c;银行首先需要调查清楚该用户的资金储备情况和信用历史等&#xff0c;然后再决定是否向其放款。 整个机器学习生命周期如下图所示&#xff1a; 1、定义问题 在使用机器学习中的术语表…...

大道至简 少字全意 易经的方式看 缓存 mybatis缓存 rendis缓存场景 案例

目录 介绍 mybatis缓存 一级缓存 1.是什么 2.特点 3.场景 mybatis 二级缓存 1.是什么 2.特点 3.配置步骤 注意 一级缓存问题 二级缓存问题 扩展 1.MyBatis集成 Redis 2.直接使用Redis redis 缓存 一、String 字符串 二、Llst 列表 三、Hash 哈希 四、Set…...

如何使用 Flutter DevTools 和 PerformanceOverlay 监控性能瓶颈

使用 Flutter DevTools 和 PerformanceOverlay 监控性能瓶颈&#xff1a;详细分析与实战 在开发 Flutter 应用时&#xff0c;性能问题可能会导致用户体验下降&#xff0c;比如页面卡顿、掉帧、内存泄漏等。为了定位和解决这些问题&#xff0c;Flutter 提供了强大的性能监控工具…...

TS中Any和Unknown有什么区别

在 TypeScript 中&#xff0c;any 和 unknown 都是顶级类型&#xff08;top types&#xff09;&#xff0c;表示可以是任何类型的值。但它们在使用和行为上有显著区别&#xff0c;主要体现在类型安全性和使用方式上。 1. any 类型 特点&#xff1a; any 是 TypeScript 中最宽松…...

【Mpx】-环境搭建项目创建(一)

一.概述 官方文档&#xff1a;https://mpxjs.cn/guide/basic/start.html mpxjs/cli文档: https://github.com/mpx-ecology/mpx-cli 二.脚手架安装&创建项目 2.1项目创建 //脚手架安装 npm i -g mpxjs/cli //创建Mpx项目 mpx create mpx-demo(项目名称) //安装依赖 np…...

PyQt加载UI文件

1.动态加载 import sys from PySide6 import QtCore,QtWidgets from PySide6.QtWidgets import * from PySide6.QtUiTools import QUiLoaderclass readfile(QWidget):def __init__(self):super().__init__()self.uiQUiLoader().load("test.ui",self) self.__c…...

Java面试第二山!《计算机网络》!

在 Java 面试里&#xff0c;计算机网络知识是高频考点&#xff0c;今天就来盘点那些最容易被问到的计算机网络面试题&#xff0c;帮你轻松应对面试&#xff0c;也方便和朋友们一起探讨学习。 一、HTTP 和 HTTPS 的区别 1. 面试题呈现 HTTP 和 HTTPS 有什么区别&#xff1f;在…...

Mysql基础语句

一、 MySQL语句 在熟悉安装及访问 MySQL 数据库以后&#xff0c; 接下来将学习使用 MySQL 数据库的基本操作&#xff0c;这也是在服务器运维工作中不可或缺的知识。 本节中的所有数据库语句均在“MySQL>”操作环境中执行 MySQL 是一套数据库管理系统&#xff0c;在每台 MySQ…...

连接池Java导包

目录 一、Java导包 二、 数据库连接池 1. 概述 2. 常见参数 3. 常见连接池 4. Druid连接池&#xff08;重点&#xff09; 核心功能&#xff1a; 使用方法&#xff1a; 导入依赖 配置连接池&#xff1a; 代码配置&#xff1a; 配置文件&#xff1a; 获取连接&#…...

一些耳朵起茧子的名词解释

1 web应用 1.1 web应用的概念 Web应用&#xff08;Web Application&#xff09; 是一种通过浏览器访问的软件程序&#xff0c;它运行在服务器上&#xff0c;用户通过网络&#xff08;如互联网或内网&#xff09;与它进行交互。与传统网站&#xff08;主要提供静态内容&#x…...

HBuilderX中,VUE生成随机数字,vue调用随机数函数

Vue 中可以使用JavaScript的Math.random() 函数生成随机数&#xff0c;它会返回 0 到 1 之间的浮点数&#xff0c; 如果需要0到1000之前的随机数&#xff0c;可以对生成的随机数乘以1000&#xff0c;再用js的向下取整函数Math.floor() 。 let randNum Math.random(); // 生成…...

C#发送邮件

基础调用类&#xff1a; public class EmailHelper{/// <summary>/// 发件人名称/// </summary>public string MailName { get; set; }/// <summary>/// 收件人/// </summary>public string MailTo { get; set; }/// <summary>/// 密送/// <…...

2025-2-19学习笔记 : this关键字,constructor结构体,class类

1、This关键字 在 JavaScript 中&#xff0c;this 是一个关键字&#xff0c;其指向取决于函数的调用方式。理解 this 的指向对于编写正确的代码至关重要。以下是 this 在不同情况下的指向规则&#xff1a; 1. 全局函数调用 当函数在全局作用域中被调用时&#xff0c;this 指向…...

避坑:过早的文件结束符(EOF):解决“git clone龙蜥OS源码失败”的失败过程

避坑&#xff1a;过早的文件结束符&#xff08;EOF&#xff09;&#xff1a;解决“git clone龙蜥OS源码失败”的失败过程 安装Anolis OS 8.9 下载AnolisOS-8.9-x86_64-dvd.iso并安装。 使用uname -a查看内核版本为5.10.134-18.an8.x86_64。 [rootlocalhost cloud-kernel]# c…...

【Quest开发】全身跟踪

软件&#xff1a;Unity 2022.3.51f1c1、vscode、Meta XR All in One SDK V72 硬件&#xff1a;Meta Quest3 最终效果&#xff1a;能像meta的操作室沉浸场景一样根据头盔移动来推断用户姿势&#xff0c;实现走路、蹲下、手势匹配等功能 需要借助UnityMovement这个包 GitHub …...

通过BingAPI爬取Bing半个月内壁纸

通过BingAPI爬取Bing半个月内壁纸 一、前言二、爬虫代码三、代码说明 一、前言 爬取Bing搜索网站首页壁纸的方式主要有两种&#xff0c;第一种为间接爬取&#xff0c;即并不直接对Bing网站发起请求&#xff0c;而是对那些收集汇总了Bing壁纸的网站发起请求&#xff0c;爬取图片…...

Linux升级Anacodna并配置jupyterLab

在使用 Anaconda 的过程中&#xff0c;随着项目和需求的发展&#xff0c;可能需要升级 Anaconda 的 Base 环境中的 Python 版本。本文将详细介绍如何安全地进行升级&#xff0c;包括步骤、代码示例与最终流程图。 升级 Python 一、环境准备 在进行任何升级之前&#xff0c;建…...

ctfshow web入门 web11-web24

web11 web12 进来浏览网站&#xff0c;底部有一串数字&#xff0c;根据提示可能有用&#xff0c;访问robots.txt&#xff0c;发现禁止访问/admin/&#xff0c;进去看看发现需要输入用户名和密码&#xff0c;刚想爆破就猜对了&#xff0c;用户名是admin&#xff0c;密码是页面下…...

Windows 环境下配置多个不同版本的 Maven

在实际开发中,不同的项目可能需要使用不同版本的 Maven。例如,老项目可能依赖于 Maven 3.3,而新项目可能需要 Maven 3.8+ 才能正常运行。因此,在 Windows 下配置多个 Maven 版本并能方便地切换是非常必要的 1. 下载并安装多个 Maven 版本 1.1 下载 Maven 访问 Apache Mav…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample&#xff08;样本数&#xff09; 表示测试中发送的请求数量&#xff0c;即测试执行了多少次请求。 单位&#xff0c;以个或者次数表示。 示例&#xff1a;…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...