简单使用PWA技术

PWA,Progressive Web App(渐进式web应用),PWA技术可以将web应用具备接近原生应用的特性和用户体验,无需额外安装,支持离线缓存,消息推送等功能 PWA由Service Worker,Promise,fetch,cache Api,Notification Api等技术组成 Service Worker:服务工作线程,独立于主线程,常驻内存,代理网络请求,依赖HTTPS通信 注册Service Worker navigator.serviceWorker.register('./sw.js',{scope: '/'}).then( registration => { console.log(registration) },error => { console.error(error) } ) window.onload = function() { document.body.append('PWA!') } sw.js const cachename = 'v1' self.addEventListener('install', function (event) { console.log('install',event) // 安装新的Service Worker脚本时触发,只有Service Worker脚本不同,会认为是不同的Service Worker版本 event.waitUntil(new Promise(resolve =>{ setTimeout(resolve, 1000) // 安装新的Service Worker脚本后等待1秒后激活该脚本 })) // event.waitUntil(self.skipWaiting) // 强制停止老的Service Worker,激活启动新的Service Worker,只要有更新就激活新的 event.waitUntil(caches.open(name).then(cache =>{ cache.addAll([ '/', './1.img' ]) })) // 开启cache api缓存系统 }) self....

2022-10-28 · 1 min · Me

ECharts数据可视化图表库简单使用

ECharts是基于JavaScript的数据可视化图表库 安装 npm install echarts --save 第一个实例 import * as echarts from 'echarts' let app = echarts.init(document.getElementById('app'), null, { width: 800, height: 500 }) let data = { title: { text: '用户管理' }, tooltip:{}, legend: { data: ['用户'] }, xAxis: { data: [ 'root','admin','user1','user2','user3' ] }, yAxis: {}, series: [ { name: '用户权限', type: 'bar', data: [ 10,8,5,1,3 ] } ] } app.setOption(data) 注意:容器必须具备高度和宽度(这里的容器的id为app),要么html指定,要么在初始化时指定一个

2022-06-18 · 1 min · Me

简单使用Scoop包管理器

Scoop是windows平台下开源的命令行软件包管理器,类似于ubuntu的apt或者macOS的brew scoop仓库里面全部都是通过审核的绿色软件包(前提是不要乱用来路不明的scoop源) 允许执行本地脚本权限 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser 修改Scoop安装目录(用户级) $env:SCOOP=‘D:\Software\Scoop’ [Environment]::SetEnvironmentVariable(‘SCOOP’, $env:SCOOP, ‘User’) 修改Scoop安装目录(全局) $env:SCOOP_GLOBAL=‘D:\Software\Scoop\Global’ [Environment]::SetEnvironmentVariable(‘SCOOP_GLOBAL’, $env:SCOOP_GLOBAL, ‘Machine’) 目录介绍: apps:通过scoop安装的软件存储的目录 buckets:管理软件的仓库目录(记录了哪些仓库有哪些软件) chache:软件安装包目录 persit:存储用户数据,与软件分离 shims;软链接 安装scoop iwr -useb get.scoop.sh | iex 或者 iex (new-object net.webclient).downloadstring(‘https://get.scoop.sh’) 安装软件 scoop install sudo 查看环境存在的问题 scoop checkup 将一些scoop环境必须的软件安装一下 搜索软件 scoop search git 安装软件 scoop install git 查看软件信息 scoop info git 查看已经安装的软件 scoop list 卸载软件(-p删除配置) scoop uninstall git -p 更新软件 scoop update git 更新全部已安装软件 scoop update *...

2022-05-20 · 1 min · Me

简单使用Corepack-包管理器的管理器

Corepack(管理yarn和pnpm的包管理器的管理器) corepack是nodejs官方内置的CLI,nodejs16.9.0版本及其以上版本默认携带corepack一起分发(不需要额外安装corepack,16.9.0版本之下的需要手动安装或者更新nodejs版本) corepack的特点就是不需要安装yarn和pnpm(yarn和pnpm将通过corepack来进行管理安装以及使用),而且还可以限制项目使用特定的包管理器版本(避免一个项目用多个包管理器,而且包管理器的版本还不同的情况) 手动安装 npm install -g corepack 如果全局已经安装了yarn或者pnpm的话,需要先卸载 npm uninstall -g yarn pnpm 启用corepack corepack enable 限制包管理器版本 package.json "packageManager": "yarn@1.22.19" 表示该项目只能使用yarn包管理器的1.22.19版本,使用其他版本或者使用pnpm包管理器的话,会报错,例如Usage Error: This project is configured to use yarn 默认无法限制npm,需要通过corepack enable npm来手动限制,移除限制通过corepack disable npm来处理 修改packageManager的值后,yarn install,会自动安装指定版本 安装包管理器(会根据package.json下的packageManager来下载指定版本的包管理器) yarn install 指定一个新的包管理器 corepack prepare pnpm@7.13.5 --activate 使用本地包管理器(会将本地包管理器存储到一个压缩包里,方便离线使用) 获取 corepack prepare --all -o=D:/demo/test.tgz 启动压缩包内的包 corepack hydrate D:/demo/test.tgz 或者获取完成后立刻使用 corepack hydrate D:/demo/test.tgz --activate

2022-05-13 · 1 min · Me

简单了解a11y无障碍

a11y全称为Accessibility,A到y之间有11个字母,因此叫a11y,Accessibility中文翻译为可访问性,也就是无障碍 让网站具备无障碍性,可以让一些视觉障碍人士访问该网站,而且就算是其他人士使用,也会因a11y而受益(不因网络慢,css文件丢失而无法正常浏览页面内容) 在mdn上有句话:The Web is fundamentally designed to work for all people, whatever their hardware, software, language, culture, location, or physical or mental ability. When the Web meets this goal, it is accessible to people with a diverse range of hearing, movement, sight, and cognitive ability. w3c发布了Web内容无障碍指南 (WCAG) https://www.w3.org/Translations/WCAG21-zh/ 妨碍障碍人士访问web页面常见是视觉障碍,一般需要使用放大镜或者屏幕缩放来访问,严重的可能需要使用屏幕阅读器 常见的屏幕阅读器有:NVDA(windows),ChromeVox(Chrome浏览器内置),Narrator(windows内置,也就是我们说的讲述人),VoiceOver(苹果家的,像MacOS,ios,ipadOS都内置了),TalkBack(安卓内置),以及Orca(Linux内置) mdn对于障碍人士可访问性优化提供了建议: 1.使用多种方式传达内容,比如从文本到语音或是视频; 2.更易理解的内容,例如使用更通俗的语言书写的文本; 3.将注意力集中在重要内容上; 4.尽量减少干扰,例如不必要的内容或广告; 5.一致的网页布局和导航; 6.相似的元素,比如未访问的下划线链接使用蓝色而访问过的使用紫色; 7.将过程划分为更有逻辑的,必要的步骤并附上进度指示器; 8.在不影响安全性的情况下尽可能让网站认证更简单;并且 9.使表单容易完成,例如带有清晰的错误消息和简单的错误恢复。 而WCAG指南也提供了建议: 可感知性(Perceivable):非文本内容有文本替代,对于视频内容应该提供字幕,确保视感和听感都可浏览,不会因为某些原因导致信息或者结构(可以理解为文本顺序)丢失,应该具备可辨别性(颜色不应该作用区别视觉的唯一手段(针对色盲人士)) 可操作性(Operable):页面可通过键盘来操作,而不是唯一依赖于鼠标,提供足够的时间来阅读和使用内容(比如定时可调整,关闭定时,延长定时等等),防癫痫(不使用会诱发癫痫的设计,例如控制闪光的次数),提供导航,查找以及提供内容位置,允许使用键盘之外的设备输入(例如鼠标或者手写板) 可理解性(Understandable):内容应该都是可读,可被理解的(例如设置多种人类语言,比如英文,中文,日文等等,根据操作系统使用语言或者时区设置为默认语言,语言可切换),任何操作都应该具备可预见性(例如关闭一个弹窗,不会导致其他意想不到的情况发生),当输入出现问题应该提示用户哪错了(例如注册时,密码的组合程度等等),当出现用户操作出错时,应该做到操作可逆或者二次确定操作(给予用户检查和纠正的机会) 鲁棒性(Robust):应该在发生某一些系统故障或者网络故障时,确保还能正常工作,而不是罢工或者出错,鲁棒性又叫抗干扰性,健壮性

2022-04-09 · 1 min · Me