Archives
All the articles I've archived.
神奇的 contenteditable
Published: at 06:44 PM探索 contenteditable 的神奇之处,并使用它构建一个简单的所见即所得编辑器。
有着代码高亮的代码编辑组件 Monaco
Published: at 02:26 PM有着代码高亮的代码编辑组件 Monaco
强大的 toLocaleDateString
Published: at 09:43 AM使用 JavaScript 中的 `toLocaleDateString` 方法格式化日期字符串。
Markdown 编辑器 富文本编辑器 调研
Published: at 06:18 PM本文调研了 Markdown 编辑器和富文本编辑器,包括 cherry-markdown, tiptap, editor.md, lexical, Umo-Editor, md-editor-v3 等,并最终选择了 cherry-markdown。
博客从 Hexo 迁移至 Astro
Published: at 04:31 AM2024年12月14日,我正式将博客从 Hexo 迁移至 Astro。这篇文章记录了我的迁移过程,包括选择新框架的原因、优化步骤以及最终成果展示。
keep-alive 缓存页面不生效的三种原因
Published: at 10:46 AMVue keep-alive 缓存页面不生效的三种原因
Vue 项目中 KeepAlive 缓存失败原因排查
Published: at 03:11 AM本文探讨了 Vue 项目中 KeepAlive 缓存失败原因排查
Fabric.js: 解除缩放比例固定
Published: at 01:39 AMFabric.js 中如何解除缩放比例固定。两种方法:在缩放时按住 Shift 键,或设置`canvas.uniformScaling = false;`
Android 播放按钮适配问题
Published: at 03:12 AM解决安卓手机上播放按钮 position: absolute;无效的问题。img 标签默认是 inline 元素,导致 position 属性失效。通过添加 display: block;属性解决该问题。
Node.js 错误代码 ERR_OSSL_EVP_UNSUPPORTED
Published: at 03:12 AMNode.js 错误代码 ERR_OSSL_EVP_UNSUPPORTED 通常与 Node.js 版本和证书参数有关。解决方法包括使用环境变量 `NODE_OPTIONS=--openssl-legacy-provider` 或在 `package.json` 的 `scripts` 节点中配置该选项。此外,确保私钥格式正确,包含 `-----BEGIN PRIVATE KEY-----` 和 `-----END PRIVATE KEY-----` 等标记。如果私钥格式错误,例如仅包含 `Padfadfafccaf...xadfda` 这样的内容,也会导致该错误。
禁用 H5 视频自动全屏
Published: at 03:12 AM如何禁用 H5 视频播放的自动全屏功能,并提供相关的代码示例。
Xcode 13 中 Info.plist 文件的位置
Published: at 03:39 PM在 Xcode 13 中,Info.plist 文件已移动到 target -> Info 标签页中。选择项目根目录,然后选择你的 App target,最后选择“Info”标签页即可找到它。
解决 iOS 连点问题
Published: at 04:39 PM本文介绍如何使用 fastclick 解决 iOS 设备上的连点问题。
iOS 内容安全区域处理
Published: at 03:12 AM本文介绍如何在 iOS 设备上使用 CSS 处理内容安全区域,避免内容被刘海屏或底部虚拟按键遮挡。文章提供 HTML `<meta>` 标签和 CSS 代码示例,以及一个使用 JavaScript 异步调用 App 的函数。
iOS WebView 忽略 SSL 证书错误
Published: at 09:39 AMiOS WebView 加载 HTTPS 网站时出现 SSL 证书错误(An SSL error has occurred and a secure connection to the server cannot be made.),解决方法包括修改 Info.plist 文件和使用 WKNavigationDelegate 处理 URLAuthenticationChallenge。
解决自定义字体加载闪烁问题
Published: at 09:39 AM使用 `font-display: swap;` 属性可以有效解决加载自定义字体时出现的闪烁问题。
滚动到指定位置并进行偏移
Published: at 11:12 AM本文介绍如何使用 JavaScript 将页面滚动到指定元素位置并进行偏移,避免被其他元素遮挡。
幻灯片左右两侧显示一小块预览
Published: at 11:12 AM使用 Swiper 实现幻灯片左右两侧显示预览效果的教程,包含 HTML、CSS 和 JavaScript 代码示例。
URL Scheme 调用 App
Published: at 11:12 AM使用 JavaScript 通过 URL Scheme 调用 App 的方法,包含超时处理。
解决微信 H5 页面缓存导致更新不生效的问题
Published: at 09:39 AM本文介绍如何解决微信环境下 H5 页面缓存导致更新不生效的问题,包括后端设置响应头和前端设置 meta 标签两种方法。
JavaScript Sticky 吸顶效果实现与优化
Published: at 01:45 PM本文探讨了 JavaScript 实现 Sticky 吸顶效果的多种方法,包括使用 `scroll`事件监听器、`getBoundingClientRect()` 方法、`requestAnimationFrame`、`IntersectionObserver` API 等,并分析了每种方法的优缺点及可能遇到的问题,例如抖动现象和 `z-index` 失效等。最终,文章推荐了使用`position: sticky`的方案,并提供了相应的代码示例和优化建议。
CSS 动画实现元素从右到左插入
Published: at 03:12 AM使用 CSS 动画,让一个元素从右侧平滑地插入到页面中。文章提供 HTML、CSS 和 JavaScript 代码示例,并解释了实现方法。
CSS border-radius 属性详解
Published: at 03:12 AM本文深入讲解 CSS 属性 `border-radius` 的使用方法,并提供示例代码,包括如何使用百分比和具体数值来创建圆角边框。
CSS 图片比例设置方法
Published: at 03:12 AM本文介绍两种使用 CSS 设置图片比例的方法:第一种方法使用 `width`、`height`、`object-fit: cover` 属性;第二种方法使用 `aspect-ratio` 属性。两种方法都能有效控制图片比例,避免图片变形。
全文搜索技术调研
Published: at 03:12 AM本文调研了全文搜索相关的技术,包括前缀树、Trie 树、后缀树、倒排索引、BKD 树等数据结构,以及 Elasticsearch、Apache Solr、Apache Lucene、Meilisearch、TypeSense 等全文搜索库。
JavaScript 除法运算中处理除数为零的情况
Published: at 03:12 AMJavaScript 中除法运算时,如果除数为 0,结果将为 NaN (Not a Number)。本文介绍了这个问题,并提供了相应的解决方法,避免程序出现错误。
JS 正则表达式中的 /g 修饰符
Published: at 03:12 AM本文解释了 JavaScript 正则表达式中 /g 全局匹配修饰符的行为,以及它如何影响 `test()` 方法的多次调用。
前端动画库推荐
Published: at 11:12 AM本文推荐几款常用的前端动画库,包括 animate.css, animejs, motion.dev 和 framer,方便开发者选择合适的动画库进行开发。
JavaScript 文本高亮方法
Published: at 11:12 AM本文介绍两种 JavaScript 文本高亮的方法,一种使用正则表达式替换,另一种使用循环逐字替换。两种方法都实现了将指定文本在一段话中高亮显示。
被选择文本的圆角样式
Published: at 11:12 AM本文介绍如何使用 CSS 实现被选择文本的圆角样式,包含代码示例和详细解释,帮助你快速上手。
可调整大小的分割面板
Published: at 11:12 AM本文介绍几种实现可调整大小分割面板的方法,包括使用 vue-draggable-resizable, split.js 和 vue-split-view 等库。
JavaScript 埋点库
Published: at 11:12 AM本文介绍 JavaScript 埋点库的相关内容。
Vue Transition 弃用原因及优化
Published: at 11:12 AMVue 的 transition 在 v-if、v-show 或 display: none 的情况下会导致动画不触发,需要使用 setTimeout 进行优化。本文探讨了 Vue Transition 的弃用原因,并提供了代码示例和解决方案。
100vw 是否包含滚动条宽度
Published: at 07:06 AM本文探讨了 `100vw` 是否包含滚动条宽度,并提供了两种计算滚动条宽度的 JavaScript 代码示例。第一种方法直接返回滚动条宽度;第二种方法将宽度设置为 CSS 变量,方便后续使用。
浏览器检测库和移动端检测方法
Published: at 07:06 AM本文介绍了几个常用的浏览器检测库和移动端检测库,并探讨了几种移动端检测方法,包括 `ua-parser-js`, `web.wurfl.io`, `current-device`, `device-detector-js` 等。
CSS 设置背景颜色透明
Published: at 03:06 PM学习两种使用 CSS 设置背景颜色透明的方法:`background-color: rgba(0, 0, 0, 0.5);` 和 `opacity: 0.5;`,了解它们的区别和适用场景。
Element-UI Form 表单 disabled 属性继承原理
Published: at 07:06 AM本文介绍了 Element-UI form 表单中 disabled 属性如何向下传递到子组件,以及如何使用 Vue 的 inject 和 provide 机制实现属性的传递。
Element UI 指定字段校验
Published: at 06:34 AM本文介绍如何使用 Element UI 对指定表单字段进行校验。代码示例演示了如何使用 `validateField` 方法校验邮箱字段,并根据校验结果进行相应的操作。
空数组的 every 方法总是返回 true
Published: at 07:06 AMJavaScript 中,`every()` 方法作用于空数组时,总是返回 `true`,即使回调函数返回 `false`。
监听动画结束 JavaScript
Published: at 09:06 AM使用 JavaScript 监听动画结束事件的示例代码及讲解。
JS 生成随机数及 Element UI 表单校验
Published: at 10:34 PM本文介绍了 JavaScript 中生成随机数的几种方法,包括使用 Math.random()、Symbol 和 BigInt,并提供了一个使用 Element UI 进行表单字段校验的示例。
Hammer.js 手势检测库
Published: at 09:06 AMHammer.js 是一个 JavaScript 库,用于检测各种手势,例如轻扫、点击、捏合和旋转。本文介绍 Hammer.js 的使用。
JS 实现文本选择弹出提示
Published: at 09:06 AM本文介绍如何使用 JavaScript 实现文本选择弹出提示功能,包括使用 floating-ui 库的示例,以及其他一些相关的库和文章链接,例如 TextTip.js, share-this, Selection-js 等,并附带了几个 stackoverflow 问题的链接和相关教程链接。
lama-cleaner: 一个移除图像中对象的工具
Published: at 09:06 AMlama-cleaner 是一款 AI 工具,用于移除图像中的不需要的对象。
Material Design 图标库搜索
Published: at 09:06 AMMaterial Design 图标库搜索方法,包含谷歌官方字体库和 MUI 官方文档的搜索链接。
流程图开源 JS 库推荐
Published: at 09:06 AM本文推荐几个常用的开源流程图 JavaScript 库,包括 bpmn.io/toolkit/bpmn-js, anseki.github.io/leader-line, reactflow.dev, 和 vueflow.dev。
overflow: hidden 不生效,文字覆盖到 padding 上问题解决
Published: at 09:06 AMCSS overflow:hidden 属性失效,导致文字超出 padding 的问题及解决方案。文章分析了该问题出现的原因,并提供了一种通过设置 display: flex 和 overflow: hidden 解决该问题的有效方法。
父元素设置 min-height 后,子元素 height: 100% 无效的解决方法
Published: at 10:34 PM本文探讨了父元素设置 `min-height` 后,子元素设置 `height: 100%` 无效的问题,并提供了六种有效的解决方法,包括使用 `position: relative/absolute`、Flex 布局、Grid 布局以及 `min-height: inherit` 等,并分析了每种方法的优缺点。
Tailwind CSS Animate 动画库
Published: at 09:06 AMTailwind CSS Animate 动画库,一个好用的动画库,支持在线调试。https://www.tailwindcss-animated.com/
解决 Vue v-for 循环中数组顺序变化导致图片重新加载的问题
Published: at 10:34 PM本文介绍如何解决 Vue.js 中使用 v-for 循环时,数组顺序发生变化导致页面重绘,从而引起图片重新加载的问题。通过为 v-for 循环添加:key 属性,绑定数组中对象的唯一标识符,可以有效避免此问题。
Vue 按钮点击取消事件冒泡
Published: at 09:06 AM如何在 Vue 中阻止按钮点击事件冒泡到父元素。本文提供了一种使用 `@click.stop` 指令的简单方法。
Vue i18n 使用及相关资源整理
Published: at 09:06 AM本文介绍 Vue i18n 的使用方法,包括语言切换、选择文本弹出提示、浏览器检测库、移动端检测库、手势检测库等相关资源和工具的整理。
Vue3 获取 DOM 元素
Published: at 09:06 AMVue3 中使用 ref 获取 DOM 元素的方法,包括 Composition API 的使用以及一些常见的错误和解决方法。
微信小程序 new Date() 方法异常问题及解决方法
Published: at 10:34 PM微信小程序中使用 new Date() 方法时,如果日期字符串格式为 'YYYY-MM-DD HH:mm',则会返回无效的日期对象。本文介绍了该问题的解决方法,并提供了代码示例。
高德地图 UI 组件踩坑记录
Published: at 07:21 AM本文记录了使用高德地图 UI 组件过程中遇到的问题,尤其强调了 `initAMapUI()` 方法的必要性,以及如何正确引入高德地图 JSAPI 和 UI 组件库。
C 语言变量定义详解(右左法则)
Published: at 07:21 AM本文详细讲解 C 语言中变量的定义,并介绍了方便理解变量声明的“右左法则”。通过示例代码,阐述了不同类型的变量声明,例如:整型、指针、指针的指针、数组、指针数组、指向数组的指针、指向函数的指针以及指向函数的指针数组。
C 语言学习笔记:十进制转二进制
Published: at 07:47 AM这篇博客记录了学习 C 语言过程中遇到的进制转换问题,特别是将十进制转换为二进制。文章分析了使用 char 类型导致输出错误的原因,并给出了使用 int 类型解决问题的正确代码。
跨窗口、Tab 页通信方法总结
Published: at 12:21 AM本文总结了跨窗口、Tab 页通信的多种方法,并提供了多个 GitHub 项目和文章链接,以及 Stack Overflow 问题的参考。
数据大屏示例代码及资源链接
Published: at 07:50 AM本文收集整理了一些数据大屏示例代码链接,方便学习和参考。包含 ECharts 图表库的应用,以及其他数据可视化工具和平台,例如:基于 ECharts 的 Sankey 图示例,以及其他数据可视化资源。
常用图标库:React Icons 和 Oh Vue Icons
Published: at 10:50 AM本文介绍两个常用的图标库:react-icons (适用于 React) 和 oh-vue-icons (适用于 Vue),它们提供了丰富的图标资源,方便开发者在项目中使用。
JavaScript 令人迷惑的语法特性
Published: at 07:21 AM本文介绍 JavaScript 中一些不常见且容易混淆的语法特性,例如使用 `+` 和 `-` 进行类型转换,`~` 运算符的用法,简化条件表达式,`&&` 和 `||` 操作符的特性,以及容易混淆的真假值情况和数组空判断方法。
Linux 服务器性能测试
Published: at 09:50 AM本文介绍几种 Linux 服务器性能测试方法,包括使用一键脚本 `bench.sh`,以及使用 `top` 命令监控系统资源占用情况,并提供查找指定进程 ID 的方法。
后端测试工具使用及推荐
Published: at 10:34 AM本文对比评测了 JMeter、Locust、k6 和 go-stress-testing 四款后端测试工具,分别介绍了其使用方法、优缺点以及推荐指数,旨在帮助开发者选择合适的工具进行后端性能测试。
低代码前端后端方案调研
Published: at 09:50 AM本文调研了多种低代码前端和后端方案,包括基于拖拽的表单构建工具(如 Variant Form 3、MetaLowCode、amis 等)以及后端框架(如 qmgo)。
Mac 使用 Docker 安装 MongoDB
Published: at 09:50 AM如何在 macOS 系统上使用 Docker 安装和运行 MongoDB 数据库。
PM2 进程监控
Published: at 09:50 AM使用 PM2 监控 Node.js 进程的方法,包括命令行监控和云端监控平台的使用。
解决 VS Code 反复提示 any 类型的问题
Published: at 09:50 AM本文介绍如何解决 VS Code 反复提示 any 类型的问题,提供了一种简单有效的解决方案:禁用 TypeScript 的验证功能。
UI 组件库调研、React State、React Hooks、画板和 React Query
Published: at 03:21 PM本文调研了多个 UI 组件库,例如 shadcn;探讨了 React State 管理方案 Redux 和 zustand;介绍了 React Hooks 库 ahooks;推荐了一个非常酷的画板库 tldraw;最后分析了 React Query 库及其应用。
Vue Admin 框架和 Axios 请求封装调研
Published: at 09:50 AM本文调研了多个流行的 Vue Admin 框架,并分析了其中 Axios 请求的封装方法,包括 `vue-vben-admin`, `gin-vue-admin`, `soybean-admin`, `RuoYi-Vue3`, `v3-admin-vite`, `vue3-antdv-admin` 和 `cool-admin-midway` 等。
微信小程序地图组件高度设置百分比问题解决
Published: at 03:21 PM微信小程序地图组件高度无法设置百分比(例如:height: 80%)导致地图消失的问题,以及通过设置页面和容器高度为 100% 来解决该问题的方案。
JS 获取浏览器指纹
Published: at 05:19 PMJavaScript 获取浏览器指纹的方法,包括使用 canvas 指纹和用户代理信息生成指纹,并使用 SHA-256 进行哈希处理。
JS SHA256 加密
Published: at 05:27 PMJavaScript SHA256 加密方法,无需依赖外部库。
前端 JS 生成好看的背景
Published: at 02:58 AM使用 JavaScript 和 CSS 代码生成漂亮的动态背景效果。代码包含颜色数组,随机生成不同大小和位置的彩色方块,并添加悬停动画和阴影效果,最终实现一个好看的背景。
iOS Safari 下 CSS 100vh 高度问题及解决方案
Published: at 10:23 AMiOS Safari 浏览器存在一个已知问题:使用 CSS 中的 `100vh` 属性时,高度往往会比屏幕实际高度多出一小部分。本文讨论了这个问题的成因,并提供了解决方案,使用`@supports (-webkit-touch-callout: none) { height: -webkit-fill-available; }`来修正 iOS Safari 下 `100vh` 不准确的问题。
Git GPG 重置与错误修复
Published: at 08:41 AM解决 Git 提交签名后出现的错误,例如'error: unsupported value for gpg.format: ssh'和'Git err:gpg failed to sign the data'。文章提供了解决方案,包括重置 Git GPG 配置的命令,帮助你修复 Git 签名相关的故障。
JS 解构赋值
Published: at 05:20 PM本文记录了 JavaScript 解构赋值中的一些细节,特别是关于默认值的使用,以及 `null`值和`undefined` 值在解构赋值中的不同行为。文章通过示例代码演示了如何正确使用解构赋值,以及如何避免一些常见的错误。
JS 深拷贝补充
Published: at 04:04 PM深入探讨 JavaScript 深拷贝的实现,涵盖基本数据类型、对象类型(包括 Map、Set、Date、RegExp 等)、函数、Symbol 作为 key、不可枚举属性以及循环引用等复杂场景的处理。
认识 JavaScript document.all
Published: at 05:50 PM本文讲解 JavaScript 中 `document.all` 的特性,并分析一道关于 `document.all` 和 `valueOf` 方法的代码题,解释其背后的原理,包括 Falsy 值和类型转换。
前端 JS 生成随机 CSS 样式
Published: at 05:52 PM使用 JavaScript 生成随机的 CSS 样式,使页面元素在鼠标悬停时显示随机颜色。
ThreeJS 实现汽车 3D 展示
Published: at 02:04 PM使用 ThreeJS 加载和渲染 glTF 格式的汽车 3D 模型,实现汽车颜色修改、模型旋转、加载进度显示、环境贴图和灯光设置等功能,并附带完整代码示例和资源链接。
Vue Data Resetting Techniques
Published: at 05:31 PMThis article explores different methods for resetting data in Vue.js applications, including resetting the entire data object or specific properties using `this.$data` and `this.$options.data()`. Learn how to efficiently restore your component's data to its initial state.
重拾 C 语言 - 第一天
Published: at 02:11 AM本文记录了重拾 C 语言学习的第一天内容,包括进制转换(十进制、二进制、十六进制之间的转换),设置文件夹及解决代码编译错误,编写进制字面量以及反码和补码的介绍。
C 语言学习笔记:浮点数类型详解
Published: at 02:32 AM本文记录重拾 C 语言学习的第二天内容,主要讲解了 C 语言中的浮点数类型(float、double、long double),包括它们各自的精度、大小和存储空间。同时,还介绍了如何使用 setprecision() 函数来设置浮点数的输出精度。
CSS 碰撞变色小球
Published: at 02:49 AM使用 CSS 实现碰撞变色的小球效果。文章包含 HTML 和 CSS 代码示例,演示如何通过动画和颜色计算实现小球碰撞时颜色的变化。
Git 获取代码行数
Published: at 03:46 AM使用 Git 命令统计项目代码行数,包括所有文件行数、项目代码总行数以及如何查看项目文件列表。
JS 按位异或运算详解
Published: at 05:25 PM本文讲解 JavaScript 中的按位异或运算符 (^),并解释其运算规则和优先级,澄清一些常见的误解,例如`2^2 + 2^1`的计算结果。
Sequelize 打印 SQL 语句及参数详解
Published: at 05:47 PM本文介绍如何在 Sequelize 中打印完整的 SQL 语句以及参数,包括解决参数显示为占位符的问题,并深入分析 Sequelize 的日志机制和源码。
JS Symbol.toPrimitive 详解
Published: at 05:19 PM本文讲解了 JavaScript 中 Symbol.toPrimitive 的用法,并通过一个具体的例子演示了如何使用 Symbol.toPrimitive 实现一个有趣的函数式编程技巧。
Mac 双网卡配置方案
Published: at 09:48 AMMac 双网卡配置方案,解决公司网络不稳定时使用手机热点并保证内网访问的需求。详细介绍了设置双网卡优先级、路由配置以及恢复路由的方法,并提供相关命令和截图。
JavaScript 毫秒级定时器
Published: at 09:45 AM使用 JavaScript 和 React 构建一个毫秒级精度的定时器,包含 requestAnimationFrame, performance.now(), useCallback, useRef, useMemo 等知识点的讲解和应用。
CSS flex 布局问题:子元素宽度和 `flex: 1` 解释
Published: at 02:11 AMCSS flex 布局中,`align-items` 的默认值 `stretch` 会导致子元素占据父元素全部宽度,即使设置了 `display: inline-flex`。解决方法是将子元素的 `align-items` 属性设置为 `flex-start`。此外,文章还解释了 `flex: 1` 的含义及适用场景,`flex: 1` 是 `flex: 1 1 0%` 的简写。
ESLint 解决 TypeScript 路径别名错误:Cannot find module
Published: at 08:20 AMWebpack 配置了路径别名 @ ,但 ESLint 报错:`Cannot find module '@/redux/hooks'`。解决方法是在 tsconfig.json 中配置 paths:`{"paths": {"@/*": ["src/*"]}}`,从而解决 TypeScript 路径别名问题。
查看 Git 代码更新量
Published: at 09:34 AM学习如何使用 Git 命令查看当天或指定时间段内更新的代码量,包括新增行数、删除行数和总行数变化。文章提供多种 Git 命令示例,例如 `git log --since="1 day ago" --format=tformat: --numstat`,`git log --since="1 day ago" --stat` 和 `git log --stat` 等命令的用法和解释。
JS Echarts 地图颜色配置
Published: at 01:33 PM使用 JS Echarts 库,根据数据大小为中国地图不同省份显示不同的颜色。
Webpack Alias 别名配置
Published: at 05:27 PM使用 Webpack alias 解决项目中冗长的 `../../../` 路径问题,提高代码可读性和维护性。配置方法和使用示例。
CSS 鼠标点击穿透问题解决
Published: at 05:19 PM本文介绍如何解决 CSS 鼠标点击事件穿透的问题。通过设置 `pointer-events` 属性来控制元素是否响应鼠标事件,`pointer-events: none;`可以阻止元素响应鼠标事件,而`pointer-events: auto;`则允许其响应鼠标事件。文章还讲解了如何避免父元素阻止子元素接收鼠标事件。
JavaScript 判断元素是否滚动到底部
Published: at 09:27 AM本文介绍了如何使用 JavaScript 判断一个元素是否滚动到了底部,并提供了相应的代码示例和 Vue.js 实现。
Sequelize 中 createdAt/updatedAt 的重命名
Published: at 03:25 PM本文介绍如何在 Sequelize 中修改 `createdAt` 和 `updatedAt` 属性的名称,以及如何只启用其中一个属性。通过示例代码演示如何将 `updatedAt` 重命名为 `updateTimestamp`,并禁用 `createdAt` 属性。
CSS 固定宽高比
Published: at 06:56 AMCSS 实现固定宽高比的多种方法,包括使用 `aspect-ratio` 属性和通过 padding-bottom 技巧实现。
CSS 相对居中
Published: at 07:03 AM使用 CSS 实现元素相对居中的方法。
JS 的一些十六进制操作
Published: at 02:43 PMJavaScript 中十六进制与十进制、二进制之间的转换,以及十六进制颜色代码与 RGB 之间的转换,包含多种实现方法和示例代码。
Mac 使用 exiftool 删除图片元数据
Published: at 11:46 AM学习如何在 Mac 系统上使用 exiftool 命令行工具删除图片中的元数据信息。
Mac 系统下快速删除 node_modules 文件夹
Published: at 06:33 AMMac 系统下,node_modules 文件夹通常很大,删除很慢。本文介绍使用`npx npkill`或 `find` 命令快速删除 node_modules 文件夹的方法。
JS Axios 获取 Blob 类型响应中的 JSON 数据
Published: at 04:50 PM使用 Axios 获取 Blob 类型响应数据并解析为 JSON 对象的方法,包括处理错误和非 JSON 数据的情况。文章提供了两种示例代码,并解释了如何判断响应数据是否为 JSON Blob,以及如何将其转换为 JSON 对象。
微信小程序 JS 添加自定义位置水印
Published: at 05:22 PM微信小程序实现图片加水印功能,支持自定义水印文字位置,并解决高清屏模糊和 Canvas 大小限制问题。文章详细介绍了获取 canvas 上下文,压缩图片,计算文字长度,以及添加水印文字的步骤和代码。
JS 获取文本宽度
Published: at 04:44 PM两种使用 JavaScript 获取文本宽度的方法:一种使用 canvas,另一种使用 div 元素。文章提供了两种方法的代码实现并进行了比较。
JS 图片处理研究笔记
Published: at 03:32 PM本文记录了 JavaScript 图片处理方面的研究,包括获取图片真实大小、提取和设置 EXIF 数据、图片裁剪、微信小程序图片处理(base64 转换,本地文件操作,canvas 操作)以及一些常用的工具库和方法。
Android 应用签名详解
Published: at 01:59 AM本文详细记录了使用 Android Studio 打包安卓应用时进行签名的完整过程,包括生成签名文件、查找签名文件路径、密码以及相关的命令行操作,并提供了相关的参考链接。涵盖了 debug.keystore 的使用以及自定义签名文件的创建。
解决 Docker 错误:'OSError: cannot open shared object file: No such file or directory'
Published: at 01:52 PM在 macOS M1 芯片上运行 Docker 时,遇到错误'OSError: /root/.cache/pypoetry/virtualenvs/chatbot-twitter-9TtSrW0h-py3.11/lib/python3.11/site-packages/tls_client/dependencies/tls-client-amd64.so: cannot open shared object file: No such file or directory'。该错误是因为使用了错误的架构。解决方法是在 Dockerfile 中指定 `--platform=amd64` 来使用 amd64 镜像。
Kibana 国际化 (i18n) 中文设置
Published: at 03:31 AM本文介绍如何在 Kibana 7.0 及更高版本中将语言设置为中文。通过修改 `kibana.yml` 文件或 `docker-compose.yml` 文件,即可轻松实现 Kibana 的中文界面显示。文章提供详细的代码示例和步骤。
Elasticsearch 和 MySQL 数据同步方案
Published: at 05:16 AM本文探讨 Elasticsearch 与 MySQL 数据同步的方案,包括官方收费连接器 connectors-python 以及使用 Logstash 的开源方案。文章提供了多个参考链接,方便读者学习和实践。
Go 语言获取 IP 地址及对应城市信息
Published: at 05:25 PM使用 Go 语言结合 ip2region 库获取客户端 IP 地址及对应城市信息。文章包含 Gin 框架的示例代码,演示如何获取 IP 地址,并使用 ip2region 库进行 IP 地址到城市信息的查询。
JS 获取选中文本的所有 DOM 块元素
Published: at 10:10 PMJavaScript 代码实现获取网页选中文本的所有 DOM 块元素。提供两种方法,并分析其优缺点。
JS 监听选中文本事件
Published: at 10:10 PM本文介绍如何使用 JavaScript 监听网页选中文本事件,包括 `selectionchange`、`mouseup`、`touchstart`和`touchend` 事件的用法和优缺点,并提供了相应的代码示例。
使用 Axios 获取 EventStream
Published: at 09:29 AM本文介绍如何使用 Axios 获取 EventStream,包括代码示例和错误处理。
JS 多元素文本选择
Published: at 10:10 PMJavaScript 实现跨多个元素选中文本的方法。本文提供一个函数,通过指定起始和结束元素来选择文本。
Linux 使用 Caddy 解决 CORS 问题
Published: at 02:10 PM本文介绍如何在 Linux 系统中使用 Caddy Web 服务器解决跨域资源共享 (CORS) 问题,包括基本的配置方法以及处理反向代理和 Cookie 的高级方案。
Linux curl 忽略证书错误
Published: at 11:36 AMLinux curl 命令出现 "curl: (60) SSL certificate problem: Invalid certificate chain" 错误的解决方法,通过添加 `-k` 参数忽略证书错误。
MySQL 事件调度器:启用和禁用
Published: at 01:04 PM本文介绍如何启用和禁用 MySQL 事件调度器,包括使用 SQL 命令和配置文件的方法,并提供验证事件调度器状态的方法。
Mac 系统 zsh 命令行提示'command not found: mysql'
Published: at 10:02 PMMac 系统安装 MySQL 后,在 zsh 命令行中输入 mysql 命令提示'command not found: mysql'的解决方法,通过修改环境变量 PATH 解决。
NodeJS 证书验证失败解决方案
Published: at 01:22 AMNodeJS 发起请求时报错“unable to verify the first certificate”的解决方法,以及代码示例`process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';`的使用和安全风险提示。
Python CERTIFICATE_VERIFY_FAILED 错误解决方法
Published: at 11:41 AM解决 Python requests 库请求时遇到的 CERTIFICATE_VERIFY_FAILED 错误,包括安装 certifi 包、macOS 系统下的证书安装以及代码层面解决方法。
解决 Python 错误:'lib' module has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK'
Published: at 11:41 AM解决 Python 代码中出现的`module 'lib' has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK'`错误。通过升级 pip 和 pyopenssl 库来解决此问题。
解决 Python 'module' object has no attribute 'SSL_ST_INIT' 错误
Published: at 11:41 AM本文介绍了如何解决 Python 中出现的 'module' object has no attribute 'SSL_ST_INIT' 错误,包括使用 pip install pyopenssl 和 sudo python -m easy_install --upgrade pyOpenSSL 两种方法。
C 语言中获取数组长度的方法
Published: at 09:53 AMC 语言中获取数组长度的方法,以及在函数内外获取数组长度的差异和解决方法。本文讨论了 `sizeof` 运算符的使用,以及如何在函数中正确处理数组参数以获取其长度,并提供完整的代码示例和解决方法。
CSS `display: inline` 研究:多个 div 在一个段落内显示
Published: at 02:23 AMCSS `display: inline` 的使用研究:如何将多个 div 在一个段落内显示,以及解决`display: inline`下 `margin`失效的问题,并使用`line-height` 调整间距。
CSS 字体呈现优化
Published: at 09:36 AM字体加载缓慢导致页面渲染缓慢,影响用户体验。本文介绍如何使用 `font-display` 等方法优化 CSS 字体呈现,从而提升页面加载速度。
CSS text-indent 属性 (段前缩进)
Published: at 09:23 AMCSS `text-indent` 属性用于设置文本的段落缩进。本文介绍如何使用 `text-indent` 属性实现段落前缩进,并提供示例代码。
Docker API 使用指南及 VSCode 集成
Published: at 09:53 AM本文介绍 Docker API 的使用方法,以及如何在 VSCode 中使用 Docker 插件连接远程 Docker 容器进行开发,包含 `docker.host` 配置和自定义 Docker 命令 `docker.commands.run` 示例。
Git 放弃本地修改,强制拉取更新
Published: at 05:44 AM本文介绍了三种使用 Git 放弃本地修改并强制拉取更新的方法:使用`git restore`、`git reset`以及`git stash`。
Go 语言 fmt.Printf 函数详解
Published: at 08:55 AM本文详细讲解 Go 语言 fmt.Printf 函数的用法,包括占位符 %v 的含义和使用场景,以及与 log.Printf 的区别。
Jenkins API 使用教程
Published: at 09:27 AMJenkins 使用 API 触发构建的教程,包括获取 Token、使用 curl 命令以及前端调用方法,并提供了相关参考链接。
Vue Cli 打包报错:Uncaught ReferenceError: exports is not defined
Published: at 05:23 PMVue Cli 打包报错 Uncaught ReferenceError: exports is not defined,解决方法:导入的包使用了 CommonJS 规范,而 Vue Cli 打包使用的是 ESM 规范,导致冲突。文章分析了问题原因,并提供了解决方案。
Npm 换源 - 使用 nrm
Published: at 05:49 PM学习如何使用 nrm 管理 npm 源,包括安装、查看、切换、添加、删除和测试 npm 源。
JS 自动选中 div 内文本
Published: at 05:43 PMJavaScript 代码实现自动选中 div 元素内的文本。提供两种方法,一种是简单的点击事件触发,另一种是封装成函数,方便复用。
JS 解析 xlsx 文件
Published: at 05:45 PM本文介绍了如何使用 JavaScript 解析 xlsx 文件。xlsx 文件本质上是一个压缩包,包含多个 XML 文件,这些文件存储了 Excel 数据。文章讲解了如何使用 JSZip 和 xml2js 包解析 xlsx 文件,并提供了代码示例。
Nginx proxy_pass 配置详解
Published: at 02:00 PM本文详细解释了 Nginx 中 `proxy_pass` 指令的各种用法,包括 `proxy_pass` URL 是否包含路径、与正则表达式结合使用以及 URL 重写等场景,并通过大量示例代码进行说明,帮助读者理解和掌握 Nginx 反向代理配置。
React 中使用定时器和性能优化
Published: at 05:31 PM本文探讨在 React 中使用定时器的最佳实践,包括如何利用 `requestAnimationFrame`、`performance.now()` 等 API 提升性能,并结合 `useMemo`, `useRef`, `useCallback`, `useEffect` 等 Hook 进行优化,避免常见的性能问题。文章分析了示例代码,并对 `requestAnimationFrame` 和 `setTimeout` 的区别进行了讲解。
Docker 安装 Redis 及 Redis Modules
Published: at 06:51 AM本文介绍如何使用 Docker 安装 Redis 数据库,以及如何使用 Docker 运行包含 Redis Modules 的 Redis 实例。
Go 语言 Gorm 数据库 ORM 框架使用问题及解决方案
Published: at 05:23 AM本文总结了在 Go 语言中使用 Gorm 数据库 ORM 框架时遇到的几个问题及解决方案,包括数据库表头和列名转换、设置数据库最大线程和连接池、处理 JSON 类型数据以及指定表名和禁用表名复数等。
常用 HTTP 接口测试工具
Published: at 06:05 AM本文介绍了几款常用的 HTTP 接口测试工具,包括 JMeter、Postman、wrk、ab 和 Vegeta,并简要说明了它们的特性和使用方法。
JavaScript 添加 CSS 属性
Published: at 02:30 PM几种在 JavaScript 中添加 CSS 属性的方法,包括使用 className, setAttribute 和 classList。
前端 CORS 跨域问题详解
Published: at 10:04 AM本文详细分析了前端 CORS 跨域问题,特别是涉及 cookie 的场景,并提供了多种解决方案,包括在服务端设置 Access-Control-Allow-Origin 和 Access-Control-Allow-Credentials,以及在客户端设置 withCredentials 等。
JS MessageChannel 实现深拷贝
Published: at 05:21 PM使用 JavaScript 的 MessageChannel API 实现对象的深拷贝,并通过 Promise 处理异步操作,确保拷贝结果的正确性。
JavaScript structuredClone 深拷贝实现详解
Published: at 05:21 PM本文详细介绍了 JavaScript 中 `structuredClone` API 实现深拷贝的方法,并对比了使用 `MessageChannel` 实现异步深拷贝的技巧,以及相关的性能和应用场景。文章还提供了代码示例和参考链接,方便读者理解和实践。
Node.js 报错:PayloadTooLargeError: request entity too large
Published: at 10:33 AMNode.js 接口报错 `PayloadTooLargeError: request entity too large` 的解决方案,包括使用 express.json 和 body-parser 设置上传文件大小限制的方法。
JS 解决 'Failed to execute 'put' on 'IDBObjectStore'...' 问题
Published: at 06:00 PM本文介绍如何解决 JavaScript 中 IndexedDB 的 'Failed to execute 'put' on 'IDBObjectStore': An object could not be cloned' 错误。该错误通常是因为存储对象包含不可序列化的数据类型(例如 Promise 对象)引起的。文章提供了几种解决方案,包括使用 `realistic-structured-clone` 库进行深拷贝,以及其他替代方案的比较。
浏览器指纹库 - fingerprinting
Published: at 01:37 PM一个收集整理浏览器指纹库的文档,包含了高准确性和稳定性的库,以及获取 IP 和机器人检测相关的资源。
indexOf 引发的一系列问题
Published: at 09:26 AM本文探讨了 JavaScript 中 indexOf 方法引发的一系列问题,包括 !!~ 的用法、抽象渗漏的概念,以及 indexOf 与 includes 的区别。文章还包含了一些关于 NaN 和 void 0 查找的示例和解答。
优秀的浏览器 IndexedDB 库 - localforage
Published: at 10:32 AMlocalforage 是一个优秀的浏览器本地存储库,它简化了 IndexedDB 的使用,提供统一的 API,兼容多种浏览器,方便开发者在不同浏览器环境中进行本地数据存储操作。
JS 点击事件监听失效问题及解决
Published: at 03:49 PM本文介绍了在使用 JavaScript 的 `addEventListener` 监听点击事件时,事件监听失效的问题,并提供了使用事件冒泡解决该问题的方案,同时也讨论了 `mousedown`、`mouseup`、`click` 事件的执行顺序以及事件委托的技巧。
JS 错误捕捉
Published: at 02:21 PM记录 JavaScript 前端错误捕捉的方法,包括一般事件异常捕捉、资源加载异常捕捉、全局异常捕捉和 Promise 异常捕捉。
JavaScript 图片预加载
Published: at 02:20 PM本文介绍了两种 JavaScript 图片预加载的方法:一种是简单的 Image 对象方法,另一种是使用 Promise 进行封装,以便更好地处理异步操作,提高加载效率。
Js 的 Promise 学习笔记
Published: at 02:48 PMJavaScript Promise 学习笔记,包含 Promise 的简单实现、符合 Promise/A+ 规范的 Promise 实现,以及如何判断一个对象是否是 Promise 等内容。
Rollup 打包工具笔记
Published: at 10:44 AMRollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码,以便在浏览器中使用或在 Node.js 中使用。本文档包含 Rollup 的使用方法、示例以及与 Webpack 的对比。
优秀的 JavaScript 前端录制回放库 - rrweb
Published: at 10:21 AMrrweb 是一个强大的 JavaScript 库,用于录制和回放 Web 界面中的用户操作。它利用现代浏览器 API,提供便捷的录制和重播功能,方便开发者进行测试、调试和分析。
Vue3 父子组件传值及方法调用
Published: at 10:20 AM本文介绍了 Vue3 中父子组件之间如何进行数据传递和方法调用,包括父组件向子组件传递数据,以及子组件调用父组件方法,并提供了具体的代码示例。
Vue3 watch props 监听属性变化
Published: at 10:15 AM本文介绍了如何在 Vue3 中使用 watch 来监听 props 属性的变化,并提供了相应的代码示例。
JS XHR 拦截
Published: at 02:15 PM本文介绍如何使用 JavaScript 拦截 XHR 请求,并提供两种不同的实现方法,一种简易方法和一种更完善的方法,包含详细代码示例和参考链接。
MySQL 删除表
Published: at 05:22 PM本文介绍 MySQL 中删除表的三种方法:DROP TABLE、DELETE FROM 和 TRUNCATE TABLE,并比较了它们的速度和适用场景。DROP TABLE 直接删除表,速度最快;DELETE FROM 删除表数据,速度最慢但可与 WHERE 子句一起使用;TRUNCATE TABLE 清空表数据,速度比 DELETE 快,但不能与 WHERE 子句一起使用。
MySQL 最大连接数设置:max_connections (包含 AWS 数据库设置)
Published: at 01:18 PM本文介绍如何获取和设置 MySQL 数据库的最大连接数 max_connections,包括在 AWS 环境下的设置方法。文章涵盖了本地 MySQL 和 AWS Lightsail 数据库的配置步骤。
正则表达式匹配字符串开头、中间包含特定内容和结尾的字符串
Published: at 05:20 PM使用正则表达式匹配以特定字符串开头,中间包含特定内容(例如'worker_threads'),并以特定字符串结尾的 JavaScript 代码片段。文章提供了解决方案并分析了不同正则表达式的优劣。
Vue 中在新标签页打开页面
Published: at 02:43 PM如何在 Vue.js 应用中在新标签页打开一个页面,包含两种方法示例。
批量替换 MySQL 数据库内容
Published: at 07:22 AM使用 phpMyAdmin 批量替换 MySQL 数据库中内容的 SQL 命令及示例,包括 UPDATE 语句的 replace 函数用法。
C 语言指针学习:数组反转和遍历
Published: at 10:03 AMC 语言指针学习,包含数组反转和遍历的示例代码,以及对指针操作的深入讲解。通过指针方式实现数组反转,并提供多种数组遍历方法,包括普通循环和指针循环。
JS 的 contenteditable 属性
Published: at 09:13 AM学习笔记:记录 JS 中 contenteditable 属性的使用,以及使用 MutationObserver 监听 contenteditable 元素内容变化的方法。
ElementUI 禁用浏览器自动填充用户名密码
Published: at 02:05 PMElementUI 框架下,如何禁止浏览器自动填充用户名和密码输入框。提供多种方法,包括使用 `autocomplete='off'` 属性以及其他技巧。
JS 获取时间戳
Published: at 03:22 PMJavaScript 获取时间戳的多种方法,包括精确到秒和精确到毫秒的方法。
从 PDF 中提取图片和文字
Updated: at 01:12 AM使用 JavaScript 从 PDF 文件中提取文本和图像的多种方法,包括使用 pdf.js 库和 SVG 转换。
JS Quill 富文本编辑器添加图片
Updated: at 09:12 AM本文介绍如何使用 JS Quill 富文本编辑器添加图片,包括使用 `quill.insertEmbed()` 方法以及利用编辑器自带的工具栏或自定义按钮实现图片上传。
解决 Quill 富文本编辑器粘贴后跳转到顶部的问题
Updated: at 09:12 AMQuill 富文本编辑器粘贴内容后页面跳转到顶部的常见问题及解决方法。通过设置 `scrollingContainer` 参数和 CSS 样式,有效防止粘贴后页面跳转。
JavaScript 数组反转性能比较
Published: at 02:32 PM对比 JavaScript 中三种数组反转方法的性能:常规 for 循环、交换法和内置 reverse 方法,并分析其效率差异。测试结果表明内置 reverse 方法性能最佳。
Sequelize 关联查询详解
Updated: at 09:12 AM本文详解 Sequelize 框架下如何进行联表查询,包含一对多关联关系的查询示例及代码优化建议,并提供多个参考链接以帮助读者深入理解 Sequelize 关联查询的原理和用法。
Sequelize 分页与计数
Updated: at 09:12 AM使用 Sequelize 进行数据库分页查询并获取总记录数的教程,包含完整代码示例和优化建议。
JS 可拖拽调整窗口大小的库
Updated: at 09:12 AM本文介绍几个 JavaScript 库,用于通过拖拽实现窗口大小的调整,并推荐 `split.js`和`splitpanes` 两个优秀的库。
JS 判断字符串是否为 HTML
Updated: at 09:12 AMJavaScript 函数判断字符串是否包含 HTML 标签。
Vite 打包配置:创建可直接双击运行的本地页面
Updated: at 09:12 AM本文解决 Vite 打包后,生成可直接双击运行的本地页面的问题,包括处理 `type: 'module'` 跨域问题、`@vitejs/plugin-legacy` 插件失效问题以及 `vite-plugin-singlefile` 插件的应用和配置。同时,探讨了使用 `@rollup/plugin-html` 插件以及多入口方案。
JS 全局监听 globalData 属性变化
Published: at 09:42 AM监听小程序 globalData 中某个属性的变化,并在变化时执行特定函数。文章提供了解决方案,并分析了不同方法的优缺点,包括避免 Object.defineProperty 中 set 方法死循环的问题。
JS 监听 DOM 属性变化
Published: at 01:13 AMJavaScript 监听 DOM 属性变化的方法,包括使用 MutationObserver API 进行属性变化监听,并提供代码示例。
LeetCode 34:在排序数组中查找元素的第一个和最后一个位置
Published: at 05:54 PMLeetCode 34 题:在排序数组中查找元素的第一个和最后一个位置的题解,包含多种解法和详细代码示例,并解释了二分查找的原理和应用。
Linux 后台运行命令
Published: at 03:22 PM本文介绍如何在 Linux 系统中后台运行命令,包括使用 nohup 命令以及将输出重定向到/dev/null 的方法,并对命令的优缺点进行分析。
Mac M1X 安装 Ubuntu
Published: at 03:22 PM本文介绍如何在 Mac M1X 芯片的电脑上安装 Ubuntu 系统,包括使用 Parallels Desktop 等虚拟化软件的方法。
MySQL 与 SQLite 的自然语言全文索引查询
Updated: at 09:12 AM如何在 MySQL 和 SQLite 数据库中使用自然语言模式进行全文索引查询,并匹配包含部分关键词的记录,例如搜索 "abc123456" 匹配到包含 "123" 或 "456" 的记录。文章详细介绍了 MySQL 的 FULLTEXT 索引和查询方法,以及 SQLite 的分片查询策略。
密码相关正则表达式大全
Published: at 01:55 PM本文整理了多种密码正则表达式,涵盖了不同密码强度要求,例如:至少 8 个字符,包含大小写字母、数字和特殊字符等。提供了多种正则表达式实现方案及详细解释,方便开发者根据自身需求选择合适的正则表达式。
Vue 约定式路由(文件路由)
Updated: at 09:12 AM本文介绍 Vue 约定式路由(文件路由)的配置方法,包括使用 vite-plugin-pages 插件,以及页面元数据配置、页面缓存优化等技巧。文中还提供了 Vue2 和 Vue3 下页面缓存的优化方案。
Vuex 到 Pinia 的迁移
Published: at 03:22 PM记录将 Vue3 项目中 Vuex 迁移到 Pinia 的过程,分享迁移经验,并提供相关参考文章链接。
CentOS 7 Yum 源更改教程
Published: at 05:22 AM本文介绍如何更改 CentOS 7 的 Yum 源,包括备份原有源、使用阿里云和网易源,以及安装 EPEL 源的方法,并提供其他 CentOS 版本换源的命令。文章涵盖了备份现有 yum 源,使用阿里云和网易源,安装 EPEL 源以及其他 CentOS 版本换源命令等内容。
CentOS 安装 Yarn
Published: at 07:08 AM本文介绍如何在 CentOS 系统上安装 Yarn 包管理器。通过简单的命令行指令,即可快速完成 Yarn 的安装配置。
CentOS 卸载 Java
Published: at 04:04 AM本文介绍如何在 CentOS 系统中卸载 Java,包括使用 rpm 和 yum 命令移除不同版本的 Java 运行环境。
CentOS Jenkins 卸载教程
Published: at 04:04 AM本文介绍如何在 CentOS 系统中卸载 Jenkins,包括使用 yum 和 rpm 命令移除 Jenkins,以及查找并删除 Jenkins 相关残留文件的方法。
CentOS 上 Jenkins 的更新
Published: at 04:04 AM如何在 CentOS 系统上更新 Jenkins。本文介绍了更新 Jenkins 的方法,包括在 `/usr/share/java` 目录下更新 `jenkins.war` 文件。
Docker 容器访问宿主机
Published: at 07:19 AMDocker 容器内应用程序需要连接运行在宿主机上的数据库。文章介绍了多种方法,包括使用`--network host`、`host.docker.internal` 以及常用的 Docker 命令,解决 Docker 容器访问宿主机的问题。文中提供了 `ifconfig` 命令查看宿主机 IP 地址,`docker ps`、`docker network ls`、`docker network inspect`命令查看 Docker 容器网络信息,以及 `host.docker.internal:3306`和`https://host.docker.internal:8080` 等访问宿主机的方法。
Jenkins 在 CentOS 上的安装与问题解决
Published: at 01:12 PM本文记录了在公司服务器 CentOS 系统上安装 Jenkins 的过程,以及解决安装过程中遇到的问题,包括更换 yum 源和解决 'Please wait while Jenkins is getting ready to work' 问题过长等。
Mac 安装 Jenkins
Published: at 03:31 PM如何在 macOS 系统上安装 Jenkins,包括使用 Homebrew 安装最新稳定版本、指定版本、启动、重启以及更新 Jenkins。
Jenkins 运行 nvm 失败的解决方法
Published: at 01:45 PMJenkins 运行 nvm 命令返回'nvm not found'错误的解决方法,提供两种有效方案:`source ~/.nvm/nvm.sh` 和 `. ~/.nvm/nvm.sh; . ~/.profile; . ~/.bashrc`,并分析其原因。
Linux Shell 使用日期作为文件名
Published: at 04:13 PM学习如何在 Linux shell 中使用 date 命令生成包含日期和时间的文件名。
Linux 使用 sshpass 直接密码登录
Published: at 02:39 PM使用 sshpass 命令直接通过密码登录远程 Linux 服务器的教程和示例。
MySQL 连接问题及解决方案
Published: at 03:23 PM本文总结了 MySQL 连接过程中遇到的常见问题,包括远程连接、权限不足、身份验证协议错误等,并提供了相应的解决方案,涵盖了 Windows 和 Linux 系统下的操作。
Webpack 页面更新检查插件
Published: at 04:35 PM本文介绍一个 Webpack 插件,用于检查页面是否更新,解决前端部署后缓存问题。通过生成 version.json 文件记录版本和构建时间,前端页面加载时检查版本,实现自动刷新。
CentOS 7 安装 Conda
Published: at 09:06 AM本文介绍如何在 CentOS 7 系统上安装 Conda,包含下载 Miniconda、安装脚本执行、环境初始化和激活等步骤。
CentOS 7 Python 安装教程
Published: at 09:06 AM本文介绍如何在 CentOS 7 系统上安装 Python,包含安装依赖、下载安装包、编译安装等步骤。
CentOS 8 AppStream 错误及解决方法
Published: at 02:43 PMCentOS Linux 8 已结束生命周期,yum 源失效导致安装软件时出现 "Cannot prepare internal mirrorlist No URLs in mirrorlist" 错误。本文提供了解决方案,通过修改 yum 配置文件来指向可用的镜像源,解决 AppStream 错误。
Vue3 监听 Prop 变化
Published: at 09:28 AM本文介绍如何在 Vue3 中使用 `watch` 函数监听 Prop 的变化,并提供代码示例。
JS 条码识别 API 使用教程
Published: at 05:02 PM本教程介绍如何使用 JavaScript 的 BarcodeDetector API 进行条码识别,包括 API 支持性检查、初始化、支持格式查看以及条码识别流程。
Element 级联菜单城市选择组件优化
Published: at 09:17 AM本文介绍基于 Element UI 的级联菜单城市选择组件的优化方案,解决原项目中频繁点击关闭导致卡死的问题,并提供改进后的代码和使用方法。
在 CentOS 中安装 Puppeteer 依赖项
Published: at 10:06 PM本文介绍如何在 CentOS 系统上安装 Puppeteer 所需的依赖项。一个简单的方法是使用 yum 命令安装 chromium,它会自动安装 Puppeteer 运行所需的依赖。
JS Node Sass 升级及常见错误解决方法
Published: at 09:15 AM本文记录了升级 JS Node Sass 过程中遇到的问题及解决方案,包括 `SassError: expected selector` 错误(使用 `::v-deep` 替换 `/deep/`)、`TypeError: token.type.endsWith is not a function` 错误(降级 `babel-eslint` 至 `^8.2.2`),并提供了解决方案。
Mac 查看端口占用情况
Published: at 04:54 PM学习如何在 Mac 系统上查看端口占用情况,并提供命令 `lsof -i tcp:端口` 和 `kill 进程 ID` 来查找并结束占用指定端口的进程。
使用 Docker 构建前端项目
Published: at 05:38 AM公司流水线服务器无法升级 nodejs 和安装 nvm,故使用 Docker 构建前端项目。本文记录了使用 Docker 构建前端项目的流程,包括 Dockerfile 的编写、常见报错及解决方法,以及一些 Docker 常用命令。涵盖了 vite 构建工具相关的错误解决,如 esbuild 模块重建,依赖树冲突解决等。
Gin 框架的文件上传和下载
Published: at 02:56 AMGin 框架的文件上传和下载功能详解,包含代码示例和官方文档链接。
高德地图点聚合:添加和删除标记点
Published: at 06:51 PM本文介绍如何使用高德地图的点聚合功能添加和删除标记点,包含代码示例和使用方法。
JavaScript 将 input File 对象转换为 Blob 对象
Published: at 05:42 PM本文介绍如何使用 JavaScript 将 input File 对象转换为 Blob 对象,包括使用 FileReader 和 URL.createObjectURL 两种方法,并附带示例代码和详细解释。
Element 在线运行报错解决
Published: at 04:55 PMElement 在线运行报错的解决方法,主要介绍如何找到合适的 Vue2 版本来解决问题,并提供参考文章链接。
Element UI el-table 表格表头错位问题及解决方法
Published: at 10:41 AMElement UI 的 el-table 表格在数据刷新后,表头和表格数据出现错位的问题,以及几种常见的解决方法,包括 CSS 方法、JS 方法以及控制滚动条位置的方法。文章还讨论了在 Safari 浏览器下出现的表头和表格错位问题,并提供了相应的 CSS 解决方法。
在 Vite 项目中加载外部 SCSS 文件
Published: at 09:02 AM如何在 Vite 项目中配置加载外部 SCSS 文件,包括 `_variables.scss`、`_mixins.scss` 等文件的导入。
JS 通过 input 加载 PDF
Published: at 05:42 PM记录 JavaScript 如何通过 input 元素加载 PDF 文件,并提供两种方法的代码示例及参考文章链接。
Sequelize 不区分大小写查找数据
Published: at 02:22 PM使用 Sequelize 进行不区分大小写的数据库查找操作的方法。
Linux 性能监控:查看进程内存和 CPU 占用
Published: at 05:44 PM学习如何使用 Linux 命令查看系统性能,特别是哪些进程占用了过多的内存和 CPU 资源。文章包含 `ps`命令和`top` 命令的使用方法。
Swift 录屏与录像
Published: at 10:58 AMSwift iOS 平台录屏和录像的资源整理,包含多个代码示例和相关链接,涵盖音频录制、视频录制以及 ReplayKit 的使用。
Swift 文字识别教程与资源整理
Published: at 09:49 AM本文整理了 Swift 文字识别的相关资源,包括 Apple 官方文档、教程、Demo 以及一些问题解决方案,涵盖了 Vision 框架的使用方法和相关技巧,帮助开发者快速上手 Swift 文字识别技术。
TensorFlow 错误:texture size [0x0] is invalid
Published: at 02:53 AMTensorFlow 运行时报错“texture size [0x0] is invalid”,通常是因为传入模型的图片数据无效,可能是图片损坏或并非图片对象。请确保输入的 `data` 是一个有效的图片对象。
TensorFlow 使用笔记:shape, rank, dimension 理解及 tf.image.nonMaxSuppression() 函数
Published: at 02:53 AM记录 TensorFlow 学习笔记,包括 TensorFlow 的 shape, rank, dimension 理解以及 TensorFlow.js tf.image.nonMaxSuppression() 函数的使用。文章内容涵盖了对象检测模型的训练以及 TensorFlow.js 的相关知识。
解决 TypeScript 项目中 ESLint 关于 AMap 的报错问题
Published: at 01:06 AM在 TypeScript 项目中使用高德地图 (AMap) 时,ESLint 报错问题的解决方法:通过在 `d.ts`文件中声明`AMap`接口,并在`.eslintrc.js`中配置全局变量`AMap` 来解决。
JS 反转义实现与研究
Published: at 10:11 AM后端对提交的数据进行了一些转义操作,例如 `<p><b>123&456</b></p>` 会被转义成 `<p><b>123&456</b></p>`,前端请求数据时需要进行反转义。本文研究了几种 JavaScript 反转义实现方法,包括使用 DOM 方法、正则表达式方法,并对它们的性能进行了比较。
JS URL 正则表达式判断
Published: at 11:10 AM本文提供两种 JavaScript 函数,用于判断一个字符串是否为有效的 URL 地址。第一种函数利用内置的 URL 对象进行判断,第二种函数使用正则表达式进行匹配。
JS 监听 DOM 高度变化
Published: at 10:58 AM监听 DOM 高度变化,解决图片加载完毕后获取高度的问题。文章介绍了多种方法,包括 `DOMNodeInserted`事件监听、`ResizeObserver` 和`MutationObserver`,并对每种方法的优缺点进行了分析。
JavaScript 获取视频和图片加载状态
Published: at 10:12 AM使用 JavaScript 获取页面中所有图片和视频的加载状态,并在加载完成后执行指定操作。文章提供了详细的代码示例和相关的参考链接。
JS 获取树状数据下的所有节点个数,及符合条件的节点个数
Published: at 10:10 AMJavaScript 获取树状数据下所有节点的个数,以及满足特定条件的节点个数。提供代码示例和详细解释,帮助你高效处理树形结构数据。
JavaScript 如何处理大量数据
Published: at 10:32 AM本文探讨 JavaScript 如何处理大量数据,重点介绍 Node.js 如何利用单线程和异步 I/O 实现高并发,以及如何避免阻塞操作以提升性能。文章还涉及 Libuv 多线程线程池以及 pm2 进程管理器等相关技术。
Electron 中编译安装 Sqlite3 的方法与问题排查
Published: at 03:30 PM本文介绍在 Electron 应用中编译安装 Sqlite3 的多种方法,包括使用官方方法、手动编译以及针对 Node.js 版本和 Homebrew 的问题排查和解决方案。文章涵盖了常见错误及解决方法,并提供了详细的命令行示例。
NestJS 调试方法
Published: at 11:45 AM本文介绍了使用 Visual Studio Code 调试 NestJS 应用的方法,包括配置 launch.json 文件。
NestJS 文件上传:单文件、多文件及额外参数
Published: at 10:57 AMNestJS 如何接收单个文件和多个文件的上传,以及如何在上传文件时添加额外参数的教程和示例代码。
JavaScript OpenCV 边缘检测
Published: at 11:01 AM使用 JavaScript 和 OpenCV 库进行图像边缘检测,包含 Canny 算子示例和使用方法。
JavaScript OpenCV Hough Transform 直线检测
Published: at 11:01 AM使用 JavaScript OpenCV 库进行霍夫变换直线检测,包括代码示例和参数解释。文章介绍如何使用 HoughLinesP 函数检测图像中的直线,并提供代码示例和参考文章链接。
JavaScript OpenCV inRange 颜色过滤
Published: at 11:01 AM使用 JavaScript OpenCV 库进行颜色过滤的 inRange 函数示例,包含代码示例和参考链接。
JS OpenCV 入门教程
Published: at 11:01 AM一篇关于使用 JavaScript 和 OpenCV 库的入门教程,涵盖了库的下载、使用方法以及一些代码示例。教程中介绍了如何将图片加载到 canvas 中,如何添加上传按钮,以及如何使用 utils.js 文件加载 opencv.js 文件。
使用 JavaScript 获取 PDF 页码
Published: at 11:18 AM本文介绍如何使用 JavaScript 获取 PDF 文件的页码数量。文中提供了一个使用 `pdfjs-dist` 库的代码示例,并讲解了如何加载 PDF 文件并获取其页数。
JS 自定义 Quill 插入标签
Published: at 09:21 AM使用 JavaScript 自定义 Quill 富文本编辑器,实现插入和删除话题标签或@标签的功能,确保标签能够作为一个整体被删除。
JS 视频播放事件拦截
Published: at 10:25 AMJavaScript 拦截视频播放事件,在视频播放时暂停并重置播放时间。
Vite 不压缩代码打包
Published: at 10:32 AM方便调试打包后的代码,查找原因。本文介绍如何配置 Vite 使其在打包时不压缩代码。
JS Vue React 路由处理机制
Published: at 10:32 AM本文探讨了 JavaScript、Vue 和 React 如何处理路由,并解释了 Nginx 配置中 `try_files` 指令的作用,以及如何通过它实现单页应用的路由机制。
Vue3 响应式数据重新赋值问题详解
Published: at 10:32 AM本文探讨 Vue3 中使用 reactive 进行响应式数据重新赋值的几种方法,包括 Object.assign, ref, reactive 以及 toRefs 的使用,并分析各自的优缺点。
解决 TypeScript 错误:Window & typeof globalThis 上不存在属性 WebViewJavascriptBridge
Published: at 10:53 AM在 TypeScript 文件内使用 window.WebViewJavascriptBridge 属性报错,提示 'Window & typeof globalThis' 上不存在属性 'WebViewJavascriptBridge' 的解决方法,包括在 ts 文件内声明 window 的示例。
Swift WKWebView 加载网页或本地文件
Published: at 10:02 AM使用 Swift 和 WKWebView 加载网页或本地 HTML 文件的教程,包含代码示例和资源链接。学习如何在 iOS 应用中集成 WKWebView 并处理本地文件加载。
CDN 跨域访问 403 错误排查
Published: at 08:49 AM使用腾讯云 CDN 加速自建字体反代服务时,遇到字体文件 (woff2) 加载出现 403 错误,而 CSS 文件加载正常。问题原因是 CDN 服务的防盗链机制,导致反代服务器无法访问自身资源。解决方法是将反代服务的域名添加到 CDN 的防盗链白名单。
CSS 解决 border 影响元素宽高的问题 (box-sizing 属性)
Published: at 02:33 AM在 CSS 中动态设置 `border`属性时,`border` 会影响元素的宽高。本文介绍两种解决方法:使用`box-sizing: border-box;`属性,或者使用 `outline` 代替`border`。
非阻塞加载 CSS:避免 CDN 故障导致页面加载延迟
Published: at 02:09 AM页面加载 CSS 文件时,如果 CDN 链接失效,会导致页面加载缓慢。本文介绍一种非阻塞加载 CSS 的方法,有效避免 CDN 故障导致的页面加载延迟,通过使用 `media='none'`属性和`onload` 事件,在 CSS 文件加载完成后再将其应用于页面。
CSS: 视频相对容器全宽
Published: at 11:42 AMCSS: 视频相对容器全宽
ESLint 忽略@ts-ignore 错误提示
Published: at 11:55 AMESLint 忽略@ts-ignore 错误提示
使用视频作为网页背景
Published: at 10:47 AM如何使用 CSS 和 HTML 创建以视频为背景的网页。文章包含代码示例及参考链接,讲解如何实现全屏视频背景。
技术栈更新:Pinia、Vitest 和 Cypress
Published: at 10:51 AM记录技术栈更新,包含状态管理库 Pinia、单元测试框架 Vitest 和端到端测试框架 Cypress 的使用。
JS Axios 文件上传
Published: at 11:56 AM使用 Axios 上传文件的几种方法,包含代码示例和说明。
JavaScript 基准测试 Benchmark
Published: at 11:32 AM使用 Benchmark.js 进行 JavaScript 基准测试的示例和说明。
JavaScript 数字格式化库 numeral.js
Published: at 11:55 AM学习如何使用 JavaScript 的 numeral.js 库格式化数字,包括安装、使用方法和示例。
JS 将 Canvas 转换为 Blob 或 Image
Published: at 04:22 PMJavaScript 代码示例,演示如何将 Canvas 转换为 Blob 或 Image 对象,包含多种方法及解释。
JS 创建 video 元素
Published: at 07:49 PM使用 JavaScript 创建 video 元素,并设置其属性,例如 src, poster, autoplay, controls, muted, height, width 等,然后将 video 元素添加到指定的容器中。
使用 JavaScript 裁剪 Canvas 画布
Published: at 05:52 PM本文介绍如何使用 JavaScript 裁剪 Canvas 画布上的图像,包括两种方法:使用 drawImage() 方法和自定义裁剪函数 cutArea()。文章包含代码示例和练习链接,并提供参考文章链接。
JS 移除 DOM 所有事件监听器
Published: at 07:54 PMJavaScript 移除 DOM 元素及其子元素所有事件监听器的几种方法,包括克隆节点替换和遍历移除等方式的比较和优缺点。
JS 更改树状数据的几种方式
Published: at 07:32 PM本文介绍几种在 JavaScript 中更改树状数据的方法,包括递归、JSON.stringify 和 Proxy,并通过基准测试比较了它们的性能。主要针对如何修改树状结构中 `children` 属性为 `erzi`,或通过 `erzi` 访问 `children` 属性。
JS 将 JSON 格式文件导出为 XLSX 格式文件
Published: at 05:51 PMJavaScript 将 JSON 数据导出为 XLSX 格式文件的几种实现方法,包含简单实现和较为完善的实现,并附带相关资源链接。
JS 生成测试数据
Published: at 07:43 PM使用 Mock.js 和 Faker.js 生成 JavaScript 测试数据,Faker.js 是目前维护较好的库。
JS 立即执行函数与 this 的研究
Published: at 11:11 AM本文研究 JavaScript 中立即执行函数表达式 (IIFE) 与 `this` 指向的问题,并分析两种不同写法下 `this` 的值。
JS input 上传文件只能上传一次问题解决
Published: at 08:01 PM解决 JS input 上传文件只能点击一次,再次点击无效的 bug。文章提供代码示例及解决方案,帮助开发者解决文件上传问题。
JS input 文件上传格式限制
Published: at 05:34 PM本文介绍如何使用 JavaScript 限制 input 文件上传的格式,包括图片和视频格式的限制。
MDN 网站改版记录
Published: at 11:32 AM记录 MDN 网站今日改版。
JS PDF 转图片
Published: at 05:58 PM两种 JavaScript 代码实现 PDF 转图片功能,包含使用 PDFJS 库的示例,以及基于 base64 数据的渲染方法。
JS 调用打印机的库,非常好用
Published: at 05:46 PM本文介绍一个非常好用的 JavaScript 打印库 Print.js,并提供多种使用方法,包括打印多张图片(支持 base64 编码)、打印页面元素以及弹窗打印等示例。
JS 自定义 Quill 富文本编辑器
Published: at 07:38 PM本文介绍如何使用 JavaScript 自定义 Quill 富文本编辑器,包括创建自定义组件、监听删除事件以及相关代码示例和参考文章。
JS Quilljs 与其他富文本编辑器的比较
Published: at 11:49 AM本文比较了 JavaScript 富文本编辑器 Quilljs 与其他编辑器(例如 wangEditor 和 Draft.js)的优缺点,旨在帮助开发者选择合适的工具。
JS ref 获取 DOM 元素
Published: at 05:37 PM本文介绍了在 Vue2 和 Vue3 中使用 ref 获取 DOM 元素的方法。
使用 requestAnimationFrame 模拟 setInterval
Published: at 07:43 PM使用 JavaScript 中的 requestAnimationFrame 函数模拟 setInterval 函数的功能,并比较两种方法的差异和优缺点。
JavaScript 保存文件的几种方法
Published: at 04:21 PM几种使用 JavaScript 保存文件的方法,包括使用 FileSaver.js 和 downloadjs 库。
JS 点击按钮上传文件
Published: at 07:45 PM使用 JavaScript 点击按钮实现文件上传功能,包含 HTML 结构和 TypeScript 代码示例。
在 React/NextJs 中使用 PDF.js 预览和转换 PDF 文件为图片
Published: at 05:33 PM本文介绍如何在 React 和 Next.js 项目中使用 pdf.js 库来预览 PDF 文件,并将其转换为图片。文章包含了详细的代码示例和配置步骤,涵盖了客户端渲染和服务端渲染两种场景。
Vant 样式覆盖问题及解决方法
Published: at 05:44 PM解决 Vant 组件按需导入导致自定义样式覆盖无效的问题。文章详细介绍了通过全局导入 Vant 样式来解决此问题的方法,并分析了按需导入与全局导入在样式优先级上的差异。
好用的 Windicss
Published: at 01:14 PM不想在项目中写 css 了,就试了一下 windicss,非常好使,比如 `padding: 10px;` `classname` 可以写成 `p-10px`,还可以自定义配置。
NextJS 中 'window is not defined' 错误的解决方法
Published: at 02:51 PMNext.js 项目中使用 print-js 库时遇到'window is not defined'错误的解决方法,包括使用 useEffect hook、检查环境和动态导入等方法,以及作者使用 import() 方法的解决思路。
Linux 数据库备份脚本及实践
Published: at 04:21 PM本文介绍了使用 Shell 脚本在 Linux 系统上执行 MySQL 数据库备份的方法,包括解决 mysqldump 命令找不到的问题,以及使用 ssh 和 scp 命令进行远程备份和下载。
Linux 查看运行进程
Published: at 10:21 AM本文介绍几种在 Linux 系统中查看运行进程的命令,包括 `ps aux`、`ps -elf`、`top` 和 `pstree -aup`,并详细解释了每个命令的选项和用法。
Linux 免费证书签发教程
Published: at 07:45 PM使用 acme.sh 在 Linux 系统上轻松签发免费证书,包括阿里云泛域名证书的签发方法。
Nginx 自动列出文件
Published: at 10:21 AM本文介绍如何使用 Nginx 的 autoindex 功能自动列出指定目录下的文件。
Linux 查询域名 TXT 记录
Published: at 05:58 PM使用 nslookup 命令在 Linux 系统中查询域名的 TXT 记录。
Linux SSH 远程运行多个命令
Published: at 11:21 AM本文介绍了如何在 Linux 系统中使用 SSH 远程运行多个命令,并解决了一些常见问题,例如`ssh root@ip 'cd /path | ls -la'`命令执行结果不符合预期的情况。
Linux zip 压缩文件夹但不包含当前文件夹
Published: at 11:21 AMLinux zip 命令压缩文件夹,但不包含当前文件夹本身,提供两种方法解决这个问题。
Stack Overflow 2021 调查报告
Published: at 10:51 AM2021 年 5 月,超过 8 万名开发者分享了他们的学习方法、使用的工具以及期望。这份报告总结了 Stack Overflow 2021 开发者调查的结果。
Vite 动态引入图片
Published: at 01:25 PM本文介绍了使用 Vite 动态引入图片的几种方法,包括使用 `import.meta.globEager`、`import()` 和 `new URL()` 等方式,并对各种方法进行了比较和优化。
Vue 移动端适配方案
Published: at 05:30 PM本文介绍两种 Vue 移动端适配方案:rem 方案和 viewport 方案,并讲解了如何结合使用以及解决 dpr 引发的字体大小问题。包括 `amfe-flexible`、`postcss-pxtorem`和`postcss-px-to-viewport` 的使用方法和配置。
VS Code 终端中 code 命令失效的解决方法
Published: at 07:54 PM解决 Visual Studio Code 中在终端运行 `code` 命令失效的问题。文章提供了解决方案,包括将 VS Code 应用程序拖放到 Applications 文件夹中,以及使用 VS Code 的 Shell 命令。
Vue 子组件如何获取所有父组件传递的值
Published: at 03:32 PM本文介绍如何在 Vue 子组件中获取所有父组件传递的值,并提供代码示例和最佳实践。
Vue3 中使用 keep-alive 组件报错:TypeError: parentComponent.ctx.deactivate is not a function 的解决方法
Published: at 07:54 PMVue3 使用 keep-alive 组件时,切换页面报错 TypeError: parentComponent.ctx.deactivate is not a function。文章提供了解决方案:在 keep-alive 和 component 上设置 key 属性进行排序,并附带相关参考文章链接。
Vue3 路由变化监听与传参
Published: at 04:34 PM本文介绍 Vue3 中如何监听路由变化以及如何正确地进行参数传递,包括解决 params 无效和监听不到变化等常见问题,并附带相关链接和参考文章。
解决 Element UI el-tree 组件宽度超出父元素滚动条无效问题
Published: at 03:31 AM解决 Element UI 框架中 el-tree 组件宽度超出父元素时,滚动条失效的问题。本文提供 CSS 样式代码,通过设置 overflow 属性和调整节点样式来解决这个问题。
CSS resize 属性详解
Published: at 09:53 AMCSS `resize` 属性允许调整元素大小。本文详细介绍了 `resize` 属性的使用方法,并提供了一个自定义可调整大小侧边栏的代码示例,讲解如何通过修改滚动条样式来间接控制拖动按钮样式。
ESLint Variable 'data' is already declared in the upper scope. 错误解决
Published: at 05:55 PMESLint Variable 'data' is already declared in the upper scope. 错误解决
Excel 文件大小为何有时小于 TXT 文件
Published: at 02:56 AMExcel 文件(xlsx)基于 XML 和 Zip 压缩技术,因此即使包含大量数据,文件大小也可能比未压缩的 TXT 文件小。本文解释了 Excel 文件大小与 TXT 文件大小差异的原因。
Go 语言文件读取与处理
Published: at 07:25 AM本文介绍使用 Go 语言读取和处理文件的方法,包括使用 bufio.Scanner 逐行读取文件内容,以及获取当前执行程序路径的方法。
GoLand: 调整可编辑文件大小
Published: at 09:36 AM使用 GoLand 打开大文件时,如果只能进入只读模式而无法编辑,可以通过修改 GoLand 的自定义属性 `idea.max.intellisense.filesize` 来解决此问题。
JavaScript Number.MAX_SAFE_INTEGER 最大安全整数详解
Published: at 05:49 PM深入探讨 JavaScript 中 Number.MAX_SAFE_INTEGER 的含义,解释其背后的原因,并提供相关学习资源链接。文章涵盖了 JavaScript 数值精度问题、二进制与十进制转换等知识点。
解决 Element el-tree 树状数据量大时卡顿问题
Published: at 05:57 PMElement-UI 的 el-tree 组件在处理超过 1000 条树状数据时出现卡顿现象。本文介绍如何使用虚拟滚动技术解决此问题,并提供一个可用的 GitHub 仓库链接。
Element el-tree 组件搜索高亮
Published: at 04:07 PMElement UI 的 el-tree 组件实现搜索关键词高亮显示的解决方案,使用正则表达式替换关键词并用 `<mark>` 标签包裹实现高亮效果。
JavaScript 获取页面所有 Script 标签
Published: at 05:43 PM本文介绍如何使用 JavaScript 获取页面上所有的 Script 标签,并判断 JavaScript 文件是否已加载。
手写 JSON.stringify 函数
Published: at 06:42 PM深入理解 JSON.stringify() 方法的递归逻辑,并尝试手写实现该函数,分析其处理循环引用的机制以及优化策略。文章包含一个详细的用例,并对实现难度进行了评估。
JSON.stringify 递归逻辑研究
Published: at 04:20 PM深入研究 JSON.stringify 方法的递归逻辑,分析其在处理嵌套对象时的行为,并解释添加属性 'v.add = c;' 后输出结果变化的原因,以及如何避免循环引用导致的崩溃。
Nginx 前端配置与二级路由详解
Published: at 09:09 AM本文详细介绍了 Nginx 前端配置,包括 Vue 和 React 项目的打包部署,以及如何配置二级路由和处理不同访问路径下的代理转发问题,并深入探讨了 `alias`和`root`指令的区别以及`proxy_pass`中带`/`和不带`/` 的区别。
Vue 学习(二)
Published: at 11:00 AM深入学习 Vue 源码,包括 Object.defineProperty 的用法,以及父子组件继承和编译过程中的代码分析。
使用 aeneas 进行音文对齐
Published: at 05:49 AM这篇笔记记录了如何使用 aeneas 库进行音文对齐。aeneas 是一个用于音文对齐的 Python 库。Github 地址:https://github.com/readbeyond/aeneas 安装文档:https://github.com/readbeyond/aeneas/blob/master/wiki/INSTALL.md
CSS 属性选择器及 Vue scoped 样式穿透
Published: at 09:41 AMVue 的 style 使用 scoped 属性时,会给相关 DOM 元素添加类似 `[data-v-26725ac2]` 的属性,导致无法通过 CSS 选择器直接选中某些由 JavaScript 生成的 DOM 元素。本文介绍如何使用属性选择器 (`[data-v-26725ac2]`) 和 `v-deep` (已弃用,建议使用 `>>>` 或深度选择器) 解决这个问题,并详细解释 CSS 属性选择器的用法。
使用 FFmpeg 根据声级截断音频
Published: at 05:28 AM使用 FFmpeg 提取音频中包含声音的片段,并确定声音片段的起始和结束时间。文章包含多个 FFmpeg 命令示例,用于检测音频静音和计算分贝值,以及使用 ffprobe 提取音频信息。
FFmpeg 视频剪辑命令及 HTML 生成器
Published: at 01:03 AM使用 FFmpeg 剪辑视频的命令,以及一个简易的 HTML 视频剪辑命令生成器。该生成器允许用户通过拖拽视频文件,并使用视频播放器选择起始和结束时间来生成 FFmpeg 剪辑命令。
使用 FFmpeg 从视频中提取音频
Published: at 09:50 AM使用 FFmpeg 从视频文件(例如.avi)中提取音频,并将其保存为 AAC 或 MP3 格式。提供两种方法,一种是将音频复制到 AAC 文件,另一种是将音频编码为 MP3 文件。
FFmpeg 将 M4A 转换为 MP3
Published: at 09:55 AM使用 FFmpeg 将 M4A 音频文件转换为 MP3 格式。本文提供具体的 FFmpeg 命令示例。
FFmpeg 视频音频合并
Published: at 05:30 AM使用 FFmpeg 将视频文件 video.mp4 和音频文件 audio.m4a 合并成一个新的视频文件 output/video.mp4。命令:ffmpeg -i video.mp4 -i audio.m4a -acodec copy -vcodec copy output/video.mp4
使用 FFmpeg 将 WebM 文件转换为 MP4 文件
Published: at 05:28 AM本文介绍如何使用 FFmpeg 将 WebM 视频文件转换为 MP4 文件,并提供具体的命令示例。
获取和设置环境变量
Published: at 05:49 PM如何在 Windows 和 Linux 系统中获取和设置环境变量,包括查看所有环境变量、搜索环境变量、查看单个环境变量、添加/更新环境变量以及删除环境变量的方法。
Go 语言交叉编译
Published: at 03:19 AMGo 语言支持交叉编译,可以在一个平台上构建另一个平台的可执行文件。本文介绍了如何在 Mac、Linux 和 Windows 系统下进行 Go 交叉编译,并提供了相应的命令示例,涵盖了不同操作系统和架构的编译方法,例如编译 Linux、Windows 平台的 64 位可执行程序。
Go 并发编程
Published: at 05:12 AMGo 语言并发编程入门教程,讲解如何使用 go 关键字启动并发 goroutine,以及如何使用通道同步并发操作。示例代码演示了如何创建和管理并发任务。
Go 语言解决中文乱码问题
Published: at 02:05 AMGo 语言解决终端输出中文乱码问题,例如使用 `ping` 命令后,通过 Go 程序打印输出结果出现乱码的情况,本文提供了解决方案和代码示例,包含字符集转换的处理方法。
Go 语言 Cron 定时任务详解
Published: at 05:12 AM本文介绍如何在 Go 语言中使用 robfig/cron 包实现定时任务,包括代码示例和对 V3 版本更新的说明。文章还提供了官方文档和其它参考文章的链接,并讲解了如何处理 V3 版本中新增的秒级定时任务配置。
Go 获取 HTTP 请求的状态码
Published: at 09:40 AMGo 语言获取 HTTP 请求状态码的方法,以及如何优化处理大文件请求以提高效率。文章提供代码示例,展示如何使用 resty 库发送请求,并获取状态码,同时讲解如何通过设置 Range header 来限制请求数据大小,从而快速获取状态码。
保持 Go 程序持续运行
Published: at 05:12 AM本文介绍如何使 Go 程序持续运行,讲解了使用 `signal` 包捕获中断信号以及使用 `select {}` 语句阻塞程序的方法,并介绍了如何使用 `cron` 包实现定时任务。文章包含代码示例,并提供了更深入学习的链接。
Go log.Fatal 导致程序提前退出的问题
Published: at 09:20 AM在使用 Go 语言编写代码时,使用 log.Fatal 打印 cmd 命令错误信息导致程序直接退出,无法打印后续的 cmdStdout 和 cmdStderr 信息。log.Fatal 函数会打印错误信息后直接调用 os.Exit(1) 终止程序运行。将 log.Fatal(err) 修改为 log.Println(err) 后问题解决。
Go 后台运行方法
Published: at 09:20 AM本文介绍几种 Go 程序后台运行的方法,包括使用 `&` 符号、`nohup` 命令、`screen` 命令以及 go-daemon 库。同时也讲解了如何查看后台运行的 Go 进程,并提供多种后台运行方案的比较和选择建议。
Go 语言运行命令行
Published: at 03:36 AMGo 语言运行命令行的几种方法,包含使用 os/exec 包的示例代码,以及一些常用的技巧和注意事项。
Go 语言单引号和双引号的区别
Published: at 08:46 AMGo 语言中单引号用于表示字符,双引号用于表示字符串。本文通过示例代码解释了单引号和双引号的区别,并说明了为什么在使用字符串时应该使用双引号。
JavaScript 复制文本到剪贴板的问题及解决方法
Published: at 02:25 PM解决 JavaScript 在非安全上下文 (例如 http://) 下无法使用 `navigator.clipboard` 复制文本到剪贴板的问题。文章提供了一种兼容各种环境的解决方案,包括安全上下文和非安全上下文。
JavaScript 动态时间规整 (DTW) 算法实现
Published: at 02:42 PMJavaScript 实现的动态时间规整 (DTW) 算法,用于计算两个时间序列(尤其是不同长度的序列)的相似度。该算法在语音识别、手势识别等领域有广泛应用。
Js 异常点检测算法
Published: at 02:21 PM使用 JavaScript 算法从数据集中识别异常值,例如从 `0,1,2,2,2,3,111,2,333,4,3,2`中找出`111`和`333` 这两个异常值。
JavaScript 动态寻峰算法
Published: at 01:56 PM使用 JavaScript 实现动态寻峰算法,用于实时时间序列数据中的峰值检测。该算法基于平滑 Z 分数方法,能够有效地识别波峰和波谷。
使用 Spleeter 进行人声提取
Published: at 01:40 PM使用 Spleeter 库进行人声提取的笔记,包含 Github 地址及安装过程中可能遇到的问题。
Vscode 解决 GitHub Copilot 与 Markdown All in One 插件冲突问题
Published: at 05:24 PM解决 Vscode 中 GitHub Copilot 与 Markdown All in One 插件的 Tab 键冲突问题,使 Tab 键可以正常用于代码补全。
CSS 禁用文本选择
Published: at 09:46 AM使用 CSS 禁用文本选择的方法。
使用 CSS 隐藏滚动条并绘制三角形
Published: at 09:46 AM使用 CSS 绘制三角形,并介绍如何隐藏滚动条。文章包含代码示例,以及对 CSS 形状绘制的资源链接。
CSS 原子化设计
Published: at 05:51 PM本文探讨 CSS 原子化设计,介绍了利用 Sass 循环生成 CSS 类的方法,并推荐了 Windi CSS、Tailwind CSS 和 uView UI 等成熟方案,以及它们的优缺点。文章还分析了 uView UI 中优雅的 CSS 原子化代码示例,并提供了代码示例。
CSS Grid 平均分布自动换行
Published: at 09:38 AM使用 CSS Grid 实现子元素宽度高度固定,列数不固定,且内容整体平均分布,自动换行的布局效果。解决 flex 布局在列数不固定时,最后几个元素难以居左的问题。
CSS 隐藏滚动条
Published: at 09:59 AM使用 CSS 隐藏滚动条的方法。
CSS `text-align: center` 图片居中失效的解决方法
Published: at 09:27 AM使用 CSS `text-align: center` 属性使图片水平居中时,图片需要设置 `display: inline-block;` 属性。本文解释了原因,并提供了代码示例。
Go 语言切片:一个有趣的 append() 循环 bug
Published: at 07:52 AM学习 Go 语言切片时遇到的一个有趣 bug:在循环中使用 append() 扩容切片时,循环条件使用 len(slice) 导致无限循环。文章分析了 bug 原因,并提供了修复方案,同时也用 JavaScript 复现了该问题。
HTML Language Setting
Published: at 09:54 AM如何在 HTML 中设置语言,避免谷歌翻译提示。本文介绍了 `lang` 属性的用法,以及不同语言代码的示例,例如:`zh-Hans`(简体中文)、`zh-cmn-Hant`(繁体中文)、`en`(英语)。
JS 与 GoLang 的闭包比较
Published: at 02:27 PM本文比较了 JavaScript 和 Go 语言中闭包的用法,并通过具体的代码示例演示了它们在实现相同功能时的异同。文章还解答了作者在学习 Go 语言闭包时遇到的疑惑,并对 JavaScript 中闭包的理解进行了反思。
JS 跨 Tab 通信
Published: at 04:04 PM同一个浏览器打开多个页面,页面之间通信的方法,介绍 Broadcast Channel API 及其使用方法。
JavaScript 实现鼠标滚轮左右滚动
Published: at 05:41 PM使用 JavaScript 将元素的上下滚动改为左右滚动,通过监听鼠标滚轮事件并控制元素的水平滚动来实现。文章提供代码示例和相关参考资料,方便读者理解和应用。
Js 鼠标拖动 Dom 实现滚动条移动
Published: at 05:41 PM使用 JavaScript 实现鼠标拖动 Dom 元素来控制滚动条移动的代码示例及解释。
JavaScript 异常数据提取算法
Published: at 04:08 PMJavaScript 异常数据提取算法,使用四分位距 (IQR) 方法识别并提取数据中的异常值。
滚动条导致的布局问题
Published: at 03:52 PMFlex 布局下,滚动条的出现与否导致元素位置发生变化的 CSS 布局问题排查与解决方法。文章描述了一个由于滚动条的存在与否导致输入框在页面上位置不同的 bug,并分析了其原因。
JS 移除中文标点
Published: at 02:35 PM使用正则表达式移除常见的中文标点符号。
JavaScript 的一些意想不到的 Bug
Published: at 05:45 PM本文介绍了一个 JavaScript 中意想不到的 bug,以及如何修复它。代码示例展示了如何避免在数组操作中出现类似问题。
JS 时间转换为字幕时间,生成字幕
Published: at 04:10 PMJavaScript 代码实现将时间戳转换为字幕时间格式,并生成字幕文件。包含 `srtTimestamp` 函数用于时间格式化,以及 `inputToSRT` 函数用于生成 SRT 字幕格式文本。
JS 时间工具
Published: at 02:30 PM一个 JavaScript 时间转换函数,可以将时间戳转换为“刚刚”、“几分钟前”、“几小时前”、“几天前”等相对时间格式,方便显示时间信息。
Linux: 将当前目录所有文件移动到上一级目录
Published: at 05:53 PMLinux 命令:将当前目录下的所有文件移动到上一级目录。
Vue 设置 iframe 内容样式
Published: at 05:46 PM在 Vue 中,如何设置 iframe 内容的样式,这篇文章介绍了如何在同源策略下,通过 JavaScript 在 iframe 加载后动态添加样式,解决 iframe 内容样式设置的问题。
YouTube 视频下载教程
Published: at 03:44 PM学习如何使用 youtube-dl 下载 YouTube 视频,包括直接下载、选择格式下载以及转换为 MP3 格式。
CSS 实现 1px 高清边框
Published: at 09:40 AM移动端 1px 边框的 CSS 实现方案,包括利用伪元素缩放实现高清 1px 边框的代码和解决方法。本文提供了一种使用伪元素和缩放来解决移动端 1px 边框模糊问题的 CSS 代码,并针对不同设备像素比做了适配。
HTML 回车换行与 CSS
Published: at 09:40 AM如何使用 CSS 使 HTML 代码中的回车换行生效。介绍了 `white-space: pre-line;` 和 `white-space: pre-wrap;` 属性。
Elasticsearch 使用笔记及踩坑指南
Published: at 03:37 AM记录 CentOS 7 系统上安装 Elasticsearch 的步骤、启动方法、常见问题排查(如内存配置、数据重复导入)以及常用的命令行操作和 Node.js API 使用示例。此外,包含中文分词优化建议及相关资源链接。
JS 实现锚点跳转
Published: at 11:15 AM使用 JavaScript 实现网页锚点跳转,无需使用 a 标签。
JavaScript 数组分片切割方法
Published: at 01:29 PM几种 JavaScript 数组分片切割方法的实现和比较,包括 lodash 库的使用、reduce 方法、原型链修改以及 slice 方法的运用,并对各种方法的优缺点进行分析。
JS 数组字符串转换为对象
Published: at 02:34 PM将 JS 数组字符串转换为对象,例如将 glob 获取的文件列表转换成树状结构。文中提供了解决方案和代码示例,并讨论了类似的场景。
JS 实现点击按钮复制文本到剪贴板
Published: at 05:09 PMJavaScript 代码实现点击按钮将文本复制到剪贴板的功能,包含两种方法:navigator.clipboard.writeText 和 document.execCommand('copy'),并提供兼容性处理。
专用网络的 CORS (RFC1918) 问题研究及解决方案
Published: at 01:59 PM本文研究了在专用网络环境下,由于 Chrome 浏览器 CORS (RFC1918) 策略导致的跨域访问问题,分析了问题产生的原因,并提出了多种解决方案,包括在开发和测试环境中使用内网访问,上线时使用公网接口,以及使用内网穿透技术。
JS 携带参数下载文件
Published: at 05:52 PM本文介绍了使用 Axios 和 Fetch 在 JavaScript 中携带参数下载文件的方法,并提供了相应的代码示例和参考文章链接。
JavaScript 获取浏览器信息
Published: at 03:40 PM使用 JavaScript 获取浏览器信息的代码示例及说明。
JavaScript 隐藏手机号中间部分
Published: at 05:56 PMJavaScript 实现隐藏手机号中间部分的方法,包括字符串截取和正则表达式两种方式。
npm 引入本地包
Published: at 02:20 PM如何在 npm 中引入本地包,解决项目中 UI 库样式冲突的问题,提供 `package.json` 配置和 yarn 命令行示例。
JavaScript 背景动画插件 particles.js
Published: at 04:57 PM介绍一款强大的 JavaScript 背景动画插件 particles.js,附带 GitHub 链接和在线配置示例。
JS 拦截鼠标事件
Published: at 05:04 PMJavaScript 代码示例,用于拦截鼠标事件并记录鼠标位置和目标元素 ID。代码使用 `document.addEventListener('click', TrackMouse)` 监听点击事件,并通过 `TrackMouse` 函数记录事件信息。
JS 文本选择监听
Published: at 04:57 PM本文介绍如何使用 JavaScript 监听文本选择事件,并获取选中文本信息和位置。
CentOS Frp 配置教程
Published: at 03:32 PMCentOS Frp 服务器端和客户端配置教程,包括一键配置脚本和详细的 frpc 配置文件示例,以及 Nginx 反向代理配置。
Linux tar 命令使用教程
Published: at 11:21 AMLinux 系统下 tar 命令的详细使用方法,包括压缩、解压、查看 tar 包内容等操作,以及各个参数的解释。
Nginx 跨域配置:添加 Access-Control-Allow-Origin
Published: at 05:49 PM本文介绍如何使用 Nginx 配置文件添加 `Access-Control-Allow-Origin` 头部信息,解决跨域问题,包括多种配置示例和详细解释。
Nginx 前端配置及本地服务转发
Published: at 05:49 PM本文档提供 Nginx 前端配置和本地服务转发的示例配置,包括使用 try_files 指令处理静态文件,以及使用 proxy_pass 指令将请求转发到本地服务。包含了 X-Forwarded-Proto 和 X-Real-IP 头部的设置。
Vscode Prettier 诡异的格式化换行问题及解决
Published: at 10:40 AMVscode Prettier 格式化 HTML 代码时换行不符合预期,导致 `<van-button>` 标签被拆分到多行。通过设置`htmlWhitespaceSensitivity: 'ignore'`解决此问题。
Vue 编程式添加组件
Published: at 05:45 PM本文介绍了多种在 Vue.js 中编程式添加组件的方法,包括使用 `Vue.extend`、`render` 函数以及原生 JS 创建 DOM 元素等方式,并附带了多种代码示例和参考链接,帮助开发者理解和掌握 Vue 组件的动态添加技术。
Vue 动态切换背景图片
Published: at 05:13 PM使用 Vue 动态切换背景图片的方法。
Vue 深度 CSS 选择器
Published: at 05:45 PM本文介绍 Vue 中深度 CSS 选择器的使用方法,包括 `::v-deep` 的用法以及一些示例代码,例如如何使用 `::v-deep` 选择器修改 van-cell 组件的样式。
ElementUI 抽屉组件意外关闭问题解决
Published: at 05:13 PM解决 ElementUI 抽屉组件 Drawer 在选中文字后,鼠标移到遮罩层意外关闭的问题。通过监听鼠标按下和弹起事件,阻止遮罩层在选中文字拖拽时关闭。
Vue 开发环境端口修改及跨域代理配置
Published: at 11:09 AM本文介绍如何修改 Vue 开发环境的端口号,以及如何配置跨域本地代理,解决开发过程中前后端分离导致的跨域问题。
Vue.js 修改浏览器 URL 无刷新
Published: at 11:09 AM使用 Vue.js 和 JavaScript 的 `window.history.pushState` 和 `$router.push` 方法修改浏览器 URL,无需刷新页面,并支持浏览器返回按钮功能。文章包含代码示例和详细解释。
Vue 获取 Element UI 中的 Textarea
Published: at 05:16 PM本文介绍如何使用 Vue.js 获取 Element UI 中的 Textarea 组件。提供了一种改进的方法,避免了使用笨方法带来的潜在问题。
Vue.js 实用技巧:使用 .sync 修饰符实现父子组件数据同步
Published: at 05:13 PM本文介绍了 Vue.js 中如何使用 `.sync` 修饰符实现父子组件之间数据的双向绑定,并提供了具体的代码示例,方便开发者快速学习和应用。
CSS 选择器详解:`[id~=footnotes]` 失效原因分析
Published: at 09:11 AM深入探讨 CSS 选择器,特别是 `[id~=footnotes]`选择器失效的原因,并与`[id^='footnotes']` 进行比较。文章通过一个实际案例,解释了如何正确选择包含特定字符串的 ID 属性。
CSS 设置文本不可选
Published: at 09:16 AMCSS 设置文本不可选,防止部分文本被选中。使用 `user-select: none;` 属性即可。
ESLint 配置允许使用 any
Published: at 08:13 AM在使用 TypeScript 的 Vant 项目中,ESLint 插件 `@typescript-eslint/no-explicit-any` 默认禁止使用 `any` 类型。本文介绍如何通过在 ESLint 配置中添加规则 `"@typescript-eslint/no-explicit-any": "off"` 来解决这个问题,从而允许使用 `any` 类型。
Git 拉取更新使用 LF 格式
Published: at 08:06 AM使用 Git 拉取代码时,常常会遇到自动将 LF 转换为 CRLF 的问题。本文介绍如何全局配置 Git,使其在拉取更新时始终使用 LF 格式,避免因换行符差异带来的困扰。
Git 回滚并删除远程服务器上的提交
Published: at 09:29 AMGit 提交错误代码后,需要回滚并删除不需要的提交。本文介绍如何使用 `git reset --hard` 命令回滚到指定的 commit,以及使用 `git push origin HEAD --force` 命令强制推送更改到远程服务器。
同步 Fork 的 Git 项目
Published: at 09:30 AM本文介绍如何使用 Git 命令同步 Fork 的项目,包括配置远程仓库、拉取代码、合并代码以及推送代码到个人仓库等步骤。此方法适用于 GitLab 等不支持一键同步 Fork 项目的平台。
Github Actions 远程 SSH 和 SCP 操作
Published: at 08:06 AM本文记录了使用 Github Actions 进行远程 SSH 和 SCP 操作的方法,包括使用 appleboy/scp-action 和 appleboy/ssh-action 两个仓库,以及使用命令行 SCP 和 SSH 命令的替代方案,并提供了一些调试方法的链接。
解决 iOS 输入框页面自动放大问题
Published: at 05:53 AMiOS 点击 input 输入框时页面会放大,本文提供一种 meta 标签的解决方案,有效防止页面自动放大。
JavaScript 判断是否为 iPad
Published: at 04:17 PM使用 JavaScript 判断用户设备是否为 iPad 的方法,包括解决 iPad Pro 检测问题。
Vue 加载 HTML 代码的方法及优化
Published: at 05:04 PM本文介绍了在 Vue 中加载 HTML 代码的几种方法,并重点分析了 `v-html` 指令和自定义指令 `v-string` 的优缺点,以及如何避免 `v-html` 导致的 HTML 结构改变问题。提供了更优的解决方案,并附带了相关 API 的链接。
Windows 下快速删除 node_modules 文件夹
Published: at 05:22 PMnode_modules 文件夹太大,删除缓慢?本文提供两种方法,使用 Windows 原生命令和 rimraf 工具,快速删除 node_modules 文件夹。
提取 CODEIF 核心代码片段
Published: at 07:54 AM这段代码从 searchcode.com API 提取代码片段,并解析其中的变量,最终输出包含变量名、仓库链接和语言的列表。代码使用了 axios 库进行网络请求,并包含正则表达式匹配和数据处理逻辑。核心功能是根据关键词从代码仓库中提取变量信息。
JS 锚点偏移
Published: at 05:53 PMJavaScript 锚点点击后滚动到指定 DOM 元素,解决顶部固定 Header 导致的偏移问题。提供一种高效的 JavaScript 实现方法,处理锚点滚动并考虑固定 Header 高度的偏移。
优雅地创建 1 到 N 的数组
Published: at 10:46 AM几种 JavaScript 优雅创建 1 到 N 的数组的方法,包含多种代码示例及对比,方便开发者选择最合适的方法。
JS Array 和 Set 相互转换
Published: at 01:49 PMJavaScript 中 Array 和 Set 数据结构的相互转换方法。
JavaScript 从 HTML 字符串中提取文本
Published: at 05:20 PMJavaScript 方法,用于从包含 HTML 标签的字符串中提取纯文本内容。提供代码示例及详细说明,解决富文本编辑器中提取文本的需求。
JS 遍历对象所有 key 并转成数组
Published: at 01:43 PMJavaScript 遍历对象的所有 key,并将它们转换成数组。文章提供了递归方法,以及广度优先和深度优先遍历方法,并对代码进行了详细的解释。
NodeJS 递归读取文件夹内容
Published: at 01:18 PM几种 NodeJS 递归读取文件夹内容的方法,包括使用 glob 和原生 fs 模块的实现,并比较了同步和异步遍历的性能差异。
JS 正则匹配 HTML 标签并去除
Published: at 05:13 PM使用 JavaScript 正则表达式去除富文本编辑器中的 HTML 标签,只保留文本内容。文章提供了一个正则表达式示例及代码,并对该正则表达式的优缺点进行了分析。
Vscode 谷歌翻译中文变量名并转换为小驼峰
Published: at 11:59 AMVscode 插件 Google Translate 的改进版本,可以将中文变量名翻译成英文并转换为小驼峰命名法。该插件提高了开发效率,尤其适合英语能力较弱的开发者。
自定义 VS Code 代码片段
Published: at 10:33 AM本文介绍如何自定义 VS Code 代码片段,以 Vue.js 代码为例,提高开发效率。无需每次新建 Vue 文件都复制粘贴模板,只需输入自定义的代码片段前缀,即可快速生成常用的 Vue 文件结构。
Git 强制拉取更新的三种方法
Published: at 08:40 AM本文介绍了三种 git 强制拉取更新的方法:使用 git restore 重置、使用 git reset 强制拉取更新以及推荐方法使用 git stash 暂存代码再同步。详细解释了每个命令的用法和注意事项,包括 reset 的--hard、--soft、--mixed 参数。解决 git pull 失败的问题。
Safari 输入框无效问题及解决方法
Published: at 03:06 AM本文记录了在 Safari 浏览器中,input 输入框无效以及 jQuery 的 onchange 方法失效的问题。文章分析了问题原因,并提供了使用 addEventListener 方法和将输入框挂载到 DOM 上的解决方案。
一个难以发现的 JavaScript Bug
Published: at 01:42 PM本文分析了一个难以发现的 JavaScript Bug,该 Bug 发生在使用 `const` 声明变量时,由于没有变量提升导致的错误。文章包含了出错代码、Webpack 打包后代码以及错误原因分析。
JS 柯里化的思考
Published: at 02:12 PM本文并非讲解柯里化本身,而是记录学习过程中的一些思考,并包含多个难度级别的柯里化函数实现和解答。
JS 为什么是单线程的
Published: at 02:27 PMJavaScript 为什么是单线程的?本文探讨了 JavaScript 单线程的本质原因,以及由此带来的优势和挑战,并延伸讨论了浏览器多进程、Node.js 多线程和多进程等相关概念。
JS 字符串去重最佳方案
Published: at 04:36 PM本文研究了 JavaScript 字符串去重的最佳方案,并对几种不同方法的效率进行了比较,最终得出 `test6`方法最快,并解释了其原因。文章还探讨了`indexOf` 方法的效率以及`new Set`方法的底层原理。
JS 正则表达式技巧
Published: at 05:43 PM本文介绍了一些 JavaScript 正则表达式技巧,包括如何匹配可能存在的值,如何使用捕获组和命名分组,以及如何避免一些常见的陷阱。通过具体的例子,演示了如何使用正则表达式提取字符串中的特定部分。
Vue 学习(一)深入 Vue 源码学习 JavaScript
Published: at 03:09 PM通过阅读 Vue 源码学习 JavaScript,分析 new Vue 的过程,以及 initMixin 如何操作 Vue 原型的机制,并进行手写练习,加深对 JavaScript 原型继承和 this 指向的理解。
JS 闭包
Published: at 11:18 PM深入理解 JavaScript 闭包的概念、应用场景及常见示例,包括闭包模拟私有变量等技巧。文章解答了闭包与高阶函数的关系等常见疑问。
JS 常见的拷贝方法,手写一个深拷贝
Published: at 10:54 PM本文介绍了 JavaScript 中常见的浅拷贝和深拷贝方法,包括 `Object.assign`、扩展运算符、`JSON.stringify`以及`lodash`库的`_.cloneDeep`方法,并手写实现了一个深拷贝函数。同时解释了浅拷贝和深拷贝的区别,以及`JSON.stringify` 方法的局限性。
JSONP 与 CSP 的探究
Published: at 08:32 AM本文探讨了 JSONP 的工作原理以及 Content Security Policy (CSP) 如何影响 JSONP 的使用,并通过一个实际案例分析了知乎网站的 CSP 设置如何阻止来自 y.qq.com 的 JSONP 请求。
使用 setTimeout 和 clearTimeout 模拟 setInterval 和 clearInterval
Published: at 08:39 AM本文介绍了如何使用 `setTimeout` 和 `clearTimeout` 函数来模拟 `setInterval` 和 `clearInterval` 函数的功能,并讨论了实现过程中遇到的问题和解决方案。文章分析了不同实现方法的优缺点,并提供了改进建议。
JS 基础复习笔记(面试用)
Published: at 10:54 PMJavaScript 基础知识复习笔记,涵盖原型、原型链、继承、闭包、this、箭头函数、instanceof、typeof、V8 内存回收、内存泄露、call、bind、apply、Promise、Event Loop、宏任务、微任务等,并包含一些手写代码练习题。
TSLint 忽略特定行
Published: at 11:29 AM如何使用 `// @ts-ignore` 忽略 TSLint 在特定行中的错误,例如处理有问题的外部组件声明。
JavaScript Array.prototype.flat() 兼容性处理
Published: at 10:02 AM本文介绍了如何处理 JavaScript 中 Array.prototype.flat() 方法的兼容性问题,特别是针对不支持该方法的旧版浏览器(例如 Chrome65 及更低版本)的解决方案。提供了 polyfill 代码,可以确保在所有浏览器中都能正常使用 flat() 方法。
LeetCode 1744: 你能在你最喜欢的那天吃到你最喜欢的糖果吗?
Published: at 05:34 PMLeetCode 1744 题解:你能在你最喜欢的那天吃到你最喜欢的糖果吗?使用 JavaScript 和前缀和算法解决此问题。
LeetCode 523 连续的子数组和
Published: at 05:34 PMLeetCode 523 连续的子数组和题解,使用前缀和与哈希表优化算法,解决连续子数组和为 k 的倍数的问题。
Linux 磁盘挂载教程
Published: at 11:23 AM本教程介绍如何在 Linux 系统中手动挂载新的磁盘,包括分区、创建文件系统、创建挂载点、以及实现自动挂载的方法。
Linux Screen 使用教程
Published: at 11:10 AMLinux Screen 使用教程,包含安装、常用参数、快捷操作等内容,帮助用户解决网络不稳定导致服务器连接中断的问题。
CSS position: absolute 属性问题详解
Published: at 09:51 AM本文深入探讨了 CSS 中 `position: absolute` 属性的使用,特别是子元素相对于父元素定位的问题。详细解释了为什么父元素需要设置 `position: relative` 属性才能使子元素的 `absolute` 定位生效,并通过示例代码演示了正确的使用方法。
深入理解 CSS 中的块格式化上下文 (BFC)
Published: at 06:41 AM深入理解 CSS 中的块格式化上下文 (BFC),学习如何使用 BFC 阻止元素被浮动元素覆盖,包含浮动元素,以及阻止 margin 合并。文章包含代码示例和个人理解,适合有一定前端基础的开发者学习。
CSS 鼠标悬停光标变化
Published: at 08:48 AM本文介绍如何使用 CSS 的`cursor: pointer;`属性以及其他 cursor 属性值,例如 auto、default、wait、text 等,实现不同类型的鼠标光标效果,例如鼠标悬停时变为小手。
CSS hover 的用法详解及示例
Published: at 02:51 AM本文详细介绍了 CSS hover 的用法,并通过一个示例演示了如何实现鼠标移到父 div 时显示子 div,移出父 div 时隐藏子 div 的效果。文章还包含一个 Stack Overflow 问题的链接,该问题与 CSS hover 相关。
ESLint 忽略特定文件和目录
Published: at 01:53 AM项目中引入了一个不符合 ESLint 规范的 JavaScript 文件,但又不想重构,如何使用 ESLint 忽略对该文件的检查?本文介绍如何通过 `.eslintignore` 文件忽略特定的文件和目录。
Jenkins 插件列表为空的解决方法
Published: at 11:41 AMJenkins 插件管理界面插件列表为空的解决方法:将插件升级站点 URL 中的 `https` 替换为 `http` 后重新提交。
JavaScript 获取图片宽高
Published: at 10:24 AMJavaScript 获取图片宽高的方法示例。
优雅的 JavaScript 对象值判断和重置
Published: at 10:18 AM本文介绍了两种判断 JavaScript 对象值是否都为 `true` 的方法,并提供了一种重置对象值为 `false` 的优化方案。比较了循环判断和 `Object.values().every()` 方法的效率和优雅性。
JS 可选链操作符
Published: at 03:28 PM本文介绍了 JavaScript 可选链操作符的使用,并通过示例展示了如何使用可选链操作符优化代码,避免了冗余的 null 或 undefined 检查。
JS parseInt 方法详解及常见问题
Published: at 01:38 PM深入探讨 JavaScript 中 parseInt 方法的用法,包括其参数、返回值、以及常见错误和解决方案,并附带代码示例和详细解释。
JavaScript 字符串执行代码
Published: at 03:28 PM介绍如何安全地执行 JavaScript 字符串中的代码,避免使用 `eval()` 函数带来的风险,并提供替代方案。
JS Tree 树状数据 Object Array 互转
Published: at 10:19 AMJavaScript 树状数据与数组之间的相互转换方法,包括递归和更简洁的函数式编程方法,并讨论了性能和潜在的内存溢出问题。
JS 使用 GOT 库替代 request
Published: at 03:51 PMrequest 库已停止维护,本文介绍如何使用 got 库作为替代方案,并提供使用示例,包括使用 util.promisify 和 stream.pipeline 下载文件。
React 渲染 HTML 字符串
Published: at 10:58 AMReact 组件输出 HTML 字符串,如何直接渲染而不是显示为字符串?使用 dangerouslySetInnerHTML 方法解决,但需注意其安全性。
React Hooks 中父组件调用子组件方法
Published: at 10:03 AM本文介绍了如何在 React Hooks 中使用 useRef、useImperativeHandle 和 forwardRef 三个方法,实现父组件主动调用子组件方法的功能。文章包含了子组件和父组件的代码示例,并解释了各个方法的作用。
Webpack 引入 SVG 文件
Published: at 09:55 AM公司脚手架缺少加载 SVG 图标功能,导致引入 SVG 图片失败。本文介绍使用 webpack 的 file-loader 解决此问题。
强大的 JSON.stringify 方法
Published: at 06:54 AM利用 JSON.stringify 方法优雅地处理树状数据,包括替换属性名、删除属性、数据格式化以及查找特定数据等技巧。本文介绍了 JSON.stringify 的高级用法,例如使用 replacer 函数进行属性替换、删除和数据格式化,以及如何利用它查找特定数据。这些技巧可以有效提高树状数据处理效率。
递归树状数据,查找祖先节点并数组输出
Published: at 06:12 AM处理递归树状数据,优雅地找到目标节点的祖先节点并以数组方式输出。文章包含多种实现方法,包括递归和非递归方法,并讨论了代码优化和 BUG 修复。
JS URL 校验方法及正则表达式优化
Published: at 11:06 AM本文探讨了使用 JavaScript 校验 URL 的几种方法,包括使用浏览器内置的 URL 对象和自定义正则表达式。文章分析了不同方法的优缺点,并对一个常见的 URL 正则表达式进行了优化,使其能够更准确地校验 URL 的有效性。
JavaScript 空对象判断及条件判断陷阱
Published: at 10:38 AM本文探讨了 JavaScript 中判断空对象和条件判断的陷阱,例如 `if({})` 的逻辑判断以及后端返回 '0' 字符串的情况,并提供了相应的解决方案。
使用 Node.js 实现简单的 Express 入口
Published: at 03:14 PM使用 Node.js 的 http 模块和 url 模块构建一个简单的 Express 风格的服务器,实现基本的路由和文件读取功能,包含对中文乱码的处理。文章还列出了后续需要实现的功能,例如路由优先级、资源识别、响应头设置、压缩、流式输出和缓存等。
React 性能优化之 React.memo
Published: at 02:19 PMReact 性能优化技巧:使用 React.memo 提升组件性能。文章介绍了 React.memo 的使用方法,以及如何通过自定义比较函数来优化性能,避免不必要的组件重新渲染,从而提升应用的流畅性。
React useState 更新数组无效的问题及解决方法
Published: at 09:29 PM使用 React 的 useState 更新数组时,如果直接修改数组引用,React 可能无法检测到变化,导致页面不更新。本文解释了原因并提供了有效的解决方法,例如使用展开运算符 ([...array]) 创建新的数组副本。
React 阻止事件冒泡
Published: at 11:21 AM本文介绍了在 React 中阻止事件冒泡的几种方法,并提供了具体的代码示例。
React 性能优化之 useCallback
Published: at 02:19 PM本文深入探讨 React 中的 useCallback hook,解释其作用、用法以及如何避免过度使用。通过代码示例和详细说明,帮助开发者理解 useCallback 如何提升 React 应用的性能,并避免常见的误区。文章还分析了 useCallback 与组件重新渲染之间的关系,以及在何种场景下使用 useCallback 最为有效。
正则校验及合并正则公式的一些想法
Published: at 09:47 PM本文探讨了使用正则表达式校验输入框内容,只允许输入汉字、字母(大小写)、数字以及特定符号的需求,并尝试合并多个正则表达式。文章还列举了一些常见的正则表达式资源。
使用正则表达式提取字符串开头和结尾之间的内容
Published: at 11:21 AM本文介绍如何使用正则表达式匹配以特定字符串开头和结尾的字符串,并提取中间部分。文章包含了匹配开头、匹配结尾以及同时匹配开头和结尾的正则表达式示例。
Webpack 屏蔽不需要引入的 Less 文件
Published: at 09:30 PM解决 Webpack 引入外部 npm 组件时,组件内部调用 Ant Design 的 Less 文件导致样式冲突的问题。文章提供两种解决方案:使用 `less-loader`的`additionalData`选项和使用`NormalModuleReplacementPlugin` 进行资源替换。
Jenkins 添加 GitHub 仓库时遇到的权限问题
Published: at 09:48 PMJenkins 使用 git@github.com 方式拉取 GitHub 仓库时,出现 'Permission denied (publickey)' 错误的解决方法。文章分析了问题原因,并提供了使用 SSH 密钥和 HTTPS 两种方式解决问题的方案。
Jenkins 自动化脚本问题及解决方法
Published: at 09:51 PMJenkins 通过 Github Webhooks 触发 Shell 脚本时遇到 `cd: /: Not a directory` 错误,文章分析了原因并提供了详细的解决方法,包括修改 Jenkins 用户权限、调整 Jenkins 服务配置以及设置环境变量等步骤。
使用 JavaScript 下载文件(模仿 Mega.io)
Published: at 10:12 PM使用 JavaScript 模拟 Mega.io 的文件下载方式,通过 XMLHttpRequest 和 Blob 对象实现文件下载,并在下载完成后触发浏览器下载对话框。文章包含完整代码示例和使用方法。
Linux 查看 PATH 环境变量
Published: at 08:47 PM如何在 Linux 系统中查看 PATH 环境变量。编写脚本时,需要查看当前环境变量以确保脚本能够正确执行。
Linux 配置数据库远程连接:Iptables 开启 3306 端口
Published: at 10:36 PM本文介绍如何在 Linux 系统上配置数据库远程连接,并使用 Iptables 开启 3306 端口,解决 Oneinstack 环境下无法远程连接数据库的问题。
Nginx 反向代理中的内容替换
Published: at 08:48 PM本文介绍如何使用 Nginx 反向代理谷歌服务,并替换其中的内容。文中以谷歌字体为例,讲解了配置过程及遇到的问题,例如 502 错误和字符串替换无效等,并提供了相应的解决方案。
简易的 npm 包依赖查看器
Published: at 09:05 PM一个简易的 npm 包依赖查看器,使用 Node.js 和 axios 等库实现,可以可视化展示 npm 包的依赖树。
简易的 React Table 组件
Published: at 10:43 PM一个简易的 React Table 组件,实现了固定表头和固定列的功能,并使用了 react-list 组件实现无限加载。文章包含代码分析和运行效果演示。
Nginx 防盗链导致 a 标签链接 403 错误排查
Published: at 01:39 PM网站通过 a 标签链接跳转时出现 403 错误的排查过程。分析了 Nginx 防盗链配置中 `valid_referers` 指令导致的问题,并给出了优化建议。
JS 从对象中获取需要的属性
Published: at 08:57 PMJavaScript 教程:从复杂嵌套对象中提取所需属性,包含递归函数的实现、优化和命名建议。文章讲解了如何从一个包含多个嵌套层级对象的数组中,只提取'title'和'aaa'属性,并对递归函数进行优化。
从 URL 中获取文件名:JavaScript 教程
Published: at 11:16 AMJavaScript 教程:学习如何从 URL 中提取文件名。提供简洁有效的代码示例,帮助你快速掌握这项技巧。
JavaScript 基础知识笔记
Published: at 11:55 AM这篇笔记记录了巩固 JavaScript 过程中遇到的基础知识点,包括 null 和 undefined 的区别、数据类型转换、bind、apply、call 方法的使用、AMD、CMD、UMD 和 CommonJS 模块规范的比较,new 操作符的实现原理,instanceof 操作符的实现原理,0.1+0.2!=0.3 的原因及解决方法,宏任务和微任务的区别,原型链的解释以及面向对象编程的相关知识。
JavaScript 替换字符串中的回车符 ' '
Published: at 08:18 PM本文介绍了在 JavaScript 中如何替换字符串中的回车符 ' '。示例代码展示了如何使用 `replace()` 方法及其 `g` 标志来替换所有出现的回车符。
JavaScript 获取数组中重复次数最多的项
Published: at 09:36 PM本文介绍几种 JavaScript 方法来查找数组中出现次数最多的项,并比较它们的性能差异。包括简单的计数方法、排序方法以及更高级的算法。文中还包含了代码示例和性能测试结果,方便读者理解和应用。
LeetCode 509 - 斐波那契数
Published: at 07:03 PMLeetCode 509 题:斐波那契数的解法,包括暴力递归、动态规划以及优化后的动态规划算法,并附带相关链接。
LeetCode 830 较大分组的位置
Published: at 09:54 PMLeetCode 830 较大分组的位置:在一个由小写字母构成的字符串中,找到所有包含大于或等于三个连续字符的较大分组的区间,并按起始位置下标递增顺序排序后返回结果。
LeetCode 1202 字符串元素交换
Published: at 08:56 PMLeetCode 1202 字符串元素交换详解,使用并查集算法解决问题,附带代码实现和详细注释。
斐波那契数列的几种解法
Published: at 09:23 PM本文介绍了三种不同的方法来计算斐波那契数列,包括暴力递归、动态规划和空间优化后的动态规划,并对每种方法的优缺点进行了分析。
Nginx 反向代理配置及性能优化
Published: at 09:16 PM使用 Nginx 反向代理加速站点,配置缓存机制,提高网站性能,结合 AWS Global Accelerator 实现 CDN 加速。包含 Nginx 配置文件示例及优化策略。
React 组件父子传值
Published: at 10:25 PMReact 组件间的父子传值方法详解,包括 Class 组件和 Function 组件两种方式,并附带代码示例。文章讲解如何通过 props 在父组件和子组件之间传递数据。
Safari 下载中文文件名乱码解决方案
Published: at 09:39 PM解决 Safari 下载中文文件名乱码问题,主要通过设置 `content-disposition` 响应头,遵循 RFC 5987 标准,使用 UTF-8 编码处理文件名。
正确的 MySQL 5.6 安装方法
Published: at 07:28 AM公司环境需要 MySQL 5.6 环境,直接从网上下载 XAMPP 遇到问题,XAMPP 上的并非 MySQL,同事连接出错。同事帮忙安装,记录如下:进入 MySQL 官网下载页面,不要点击列表下载,点击图片下载安装器。下载 Windows (x86, 32-bit), MSI Installer,安装器不到 3M。安装器下一步下一步,选择 MySQL 版本即可。最后运行 mysql 命令,一切正常。
福与祸的实践
Published: at 09:40 AM本文记录了父亲关于福祸转化的感悟,探讨了《孟子》和《菜根潭》中关于福祸的论述,并阐述了福祸相生相克的辩证关系,以及如何在生活中趋吉避凶。文章强调了内心修养的重要性,并提出了'人为善 福虽未至 祸已远离;人为恶 祸虽未至 福已远离'的观点,以及'舍得'的重要性。
福祸相生
Published: at 09:37 AM塞翁失马的故事阐述了福祸相生,相互依存的哲理。文章结合老子思想,探讨了圣人处世之道,并指出祸福转换的可能性,以及如何避免因固执而使善变恶。
IE 浏览器不支持 Array.prototype.findIndex() 的解决方案
Published: at 08:31 AMIE 浏览器不支持 Array.prototype.findIndex() 方法,本文提供了解决方案,包括手动编写 for 循环以及一个完善的 polyfill 代码示例,用于在 IE 中实现 findIndex 功能。
使用 JavaScript 向页面插入 CSS 代码
Published: at 06:12 PM本文介绍如何使用 JavaScript 代码向网页中插入 CSS 样式。提供了一个 `addCss` 函数,用于创建 style 元素并向其中添加 CSS 代码,最后将 style 元素添加到页面的 head 部分。
将 Vue 组件挂载到 shadowRoot
Published: at 05:07 PM本文介绍如何在 Chrome 扩展程序中使用 shadowRoot 隔离 DOM,并讲解如何将 Vue 组件挂载到 shadowRoot 中的元素上,从而避免插件与页面 DOM 产生冲突。
JavaScript 数组去重方法总结
Published: at 05:28 PM本文总结了多种 JavaScript 数组去重方法,包括使用 Set、for 循环、indexOf、sort、对象属性、includes、filter、递归、Map 以及 reduce 等方法,并对各种方法的优缺点进行了分析比较,方便开发者根据实际情况选择合适的去重方法。
检测浏览器是否支持 Canvas
Published: at 06:06 PM检测浏览器是否支持 Canvas,特别是针对 IE 浏览器不支持 canvas 某些方法的情况。
Canvas 的 globalAlpha 属性
Published: at 10:09 AMCanvas 的 globalAlpha 属性用于设置绘图的全局透明度。本文介绍了 globalAlpha 属性的作用,并提供了一个使用 globalAlpha 生成透明图片的代码示例,该示例解决了 IE 浏览器兼容性问题。
一些看上去很厉害的 JavaScript 代码示例
Published: at 09:22 PM收集了一些群里看到的 JavaScript 代码示例,包括一行代码实现特定逻辑、递归处理树结构以及基于权重进行排序的示例。
JS 消抖与节流
Published: at 02:39 PM本文介绍了 JavaScript 中的消抖 (debounce) 和节流 (throttle) 函数,并提供了相应的代码实现,以及针对华为平板点击事件触发两次问题的解决方案。
巧用 Getter 和 Setter 进行 JavaScript 调试
Published: at 11:31 AM调试 JavaScript 代码时,监控变量何时被修改可能很困难。本文介绍如何巧妙地利用 Getter 和 Setter 方法来追踪变量的修改,从而更有效地进行调试。
JavaScript 中感叹号的陷阱与解决方法
Published: at 10:26 AMJavaScript 中的感叹号 (!) 通常用于逻辑非运算符。本文介绍了一个常见的 JavaScript bug:使用感叹号对字符串进行逻辑非运算时,结果可能与预期不符,并提供了解决方案。
JavaScript 获取当天特定时间的时间戳
Published: at 03:39 PM本文介绍如何使用 JavaScript 获取当天特定时间(例如,当天某个小时、分钟、秒)的时间戳。文章提供代码示例,演示如何获取当天 0 点的时间戳。
优雅地使用 JavaScript 处理图片加载失败问题
Published: at 04:49 PM本文介绍如何优雅地使用 JavaScript 处理网页中图片加载失败的情况,避免出现难看的裂图标志以及其他不美观的边框。提供了两种方法,一种移除加载失败的图片,另一种替换为备用图片。
JavaScript 获取鼠标所在区域的 DOM 元素
Published: at 03:13 PM本文介绍了几种 JavaScript 获取鼠标所在区域 DOM 元素的方法,包括遍历元素、为所有元素添加事件监听器以及在 body 上监听 mousemove 事件,并对每种方法的优缺点进行了分析。最后,文章感谢了提供帮助的群友。
IE 浏览器 URL 中文字符导致 400 错误的解决方法
Published: at 05:11 PMIE 浏览器 URL 包含中文字符导致 400 错误的解决方法。使用 `encodeURI`或`encodeURIComponent` 方法对 URL 中的中文字符进行编码。
IE 兼容性问题及解决方法:在 head 中添加 meta 信息
Published: at 10:15 AM本文介绍了解决 IE 浏览器兼容性问题的方法,特别是 IE 浏览器使用 IE5 内核加载网页的问题。通过在 HTML 的 `<head>` 中添加`<meta http-equiv="X-UA-Compatible" content="ie=edge">`元数据标签,可以强制 IE 浏览器使用最新模式渲染页面,从而解决兼容性问题。
移除 jQuery 并提升 JavaScript 技能
Published: at 10:48 AM告别 jQuery,提升原生 JavaScript 技能。文章提供 jQuery 代码到原生 JavaScript 代码的转换示例,涵盖创建元素、设置属性、添加类名、添加元素、事件绑定、获取元素等常用操作。
JavaScript 四舍五入方法
Published: at 05:32 PM几种 JavaScript 四舍五入的有效方法,包括使用 toFixed() 和 Math.round() 的示例。
JS 设置表格列宽无效
Published: at 04:29 PM解决 JavaScript 设置表格列宽无效的问题。文章分析了 JSP 生成的表格代码,以及如何通过修改 JSP 代码中的 `<td>` 标签,添加 `width` 属性来解决问题。同时探讨了使用子代选择器和直接设置 `td` 宽度的不同方案。
正则表达式笔记与技巧
Published: at 03:08 PM记录正则表达式使用技巧,包括在 VS Code 中使用正则表达式进行批量替换,贪婪匹配与非贪婪匹配的示例。
Safari 字体设置无效排查及解决方案
Published: at 10:35 AM在 Safari 浏览器中,字体设置无效的问题排查与解决方法。文章分析了 `lang` 属性对字体设置的影响,并提供了解决方案。
Webpack 5 配置 Vue 脚手架问题及解决方法
Published: at 06:01 PM升级 Webpack 5 配置 Vue 脚手架过程中遇到的样式失效问题,以及使用 vue-style-loader 和 css-loader 的解决方案。文中分析了问题原因,并提供了修改 Webpack 配置的示例代码。
使用 Charles 调试网页
Published: at 02:37 AM使用 Charles 调试网页,包括抓取 HTTPS 内容(需要安装证书并设置代理),替换静态资源(需要清除浏览器缓存),以及手机端调试的步骤。
JS 调试技巧 2:菜单弹出框调试
Published: at 11:37 AM使用 Chrome DevTools 调试菜单弹出框的技巧。文章介绍了如何在菜单弹出时,使用 F8 快捷键进行断点调试。
JavaScript 调试技巧
Published: at 11:37 AM学习使用 Chrome 开发者工具调试 JavaScript 代码的技巧,包括使用 `debugger` 语句,`debug(function)` 函数以及其他实用技巧。
JS 检测 DevTools 是否打开
Published: at 01:43 PM几种 JavaScript 方法检测 Chrome DevTools 是否打开,并附带代码示例和参考文章链接。包括使用 Image 元素的 getter 方法,利用 debugger 语句的时间差,以及 console.profile 方法等。
JS 父页面与 iframe 页面交互
Published: at 03:38 PM本文介绍了 JavaScript 父页面与 iframe 页面之间进行交互的多种方法,包括 iframe 页面调用父页面方法、iframe 页面向父窗口发送信息、父页面操作 iframe 页面以及父页面与 iframe 页面通信等,并提供了详细的代码示例和解释。
Linux 生成 100M 测试文件
Published: at 04:01 PM快速生成 100M 大小的测试文件,用于网络测速。
Linux 端口占用排查及解决方法
Published: at 04:35 PM服务器 nginx 服务无法启动,排查发现 80 和 443 端口被进程 1040/netrelay 占用,通过 kill 1040 命令结束进程后,nginx 服务恢复正常。
Linux scp 命令使用教程
Published: at 02:26 PMLinux scp 命令用于在 Linux 服务器之间快速高效地传输文件。本文介绍了 scp 命令的基本用法,包括上传文件、下载文件、上传文件夹和下载文件夹,以及一些常用的参数选项,例如-r(递归复制)、-C(压缩)、-P(指定端口) 等。
Mac 免密登录
Published: at 01:57 AMMac 免密登录教程,使用 SSH 密钥对实现无需密码登录 Mac 的方法。
解决一些 TypeScript 错误
Published: at 03:17 PM记录一些 TypeScript 编译错误以及解决方法,包括 TS2451 和 TS2585 错误。
解决 Axios 额外发起一次 OPTIONS 请求
Published: at 03:11 AM本文讨论了前端使用 Axios 发送请求时,后端收到两次请求(一次 OPTIONS 请求和一次 POST/GET 请求)的问题,分析了出现这个问题的原因(简单跨域请求和复杂跨域请求的区别),并提供了多种解决方案,包括修改 Content-Type,使用 qs 序列化参数,以及后端配置跨域响应头部等。
Chrome DevTools 调试技巧:忽略不必要的 JavaScript 文件
Published: at 01:29 AM本文介绍如何使用 Chrome DevTools 的 Blackboxing 功能来跳过或忽略不必要的 JavaScript 文件,从而提高 JavaScript 调试效率。文章包含图文教程,并提供相关参考资料链接。
CentOS 7:启用 Root 密码登录
Published: at 02:53 AM如何在 CentOS 7 系统中启用 root 账户的密码登录功能。本文介绍了修改 `/etc/ssh/sshd_config`文件中的`PermitRootLogin`和`PasswordAuthentication` 配置,以及如何使用`sudo passwd root`命令更改 root 密码。
使用 Fiddler 抓取 HTTPS 内容
Published: at 09:29 AM使用 Fiddler 抓取 HTTPS 内容需要安装 Fiddler 根证书。本文介绍了如何生成并安装 Fiddler 根证书以捕获 HTTPS 流量。
Input 输入框仅支持 11 位手机号输入
Published: at 09:04 AM本文介绍如何限制 Input 输入框仅允许输入 11 位手机号,比较几种常见解决方法及其优缺点,最终给出实际项目中可行的方案。
jQuery 输入框文本增删改查、选择及光标位置操作
Published: at 04:50 PM使用 jQuery 实现对输入框文本的增删改查、文本选择以及光标位置控制,包含详细代码示例。
JS 的 call、bind、apply 笔记
Published: at 05:18 PM本文记录了 JavaScript 中 call、bind、apply 三个方法的区别和用法,并提供了示例代码和手写实现。
使用 Fiddler 替换 JS 文件进行调试
Published: at 04:39 PM使用 Fiddler 拦截并替换远程压缩的 JS 文件为本地文件,方便进行调试,包括 HTTPS 抓包配置。文章介绍了 Fiddler 的 AutoResponder 功能,以及如何抓取 HTTPS 内容并生成中间人证书。也简要提及了其他替代方法如 Chrome 插件和 Local Overrides。
使用 Local Overrides 调试压缩的 JavaScript 文件
Published: at 05:21 PM本文介绍如何使用 Chrome DevTools 的 Local Overrides 功能,将本地 JavaScript 文件替换远程压缩后的文件,方便调试原生 JavaScript 代码。无需服务器权限,也无需安装其他软件。
JS ESLint 配置笔记
Published: at 01:50 PM新建项目时配置 ESLint 和 Prettier,规范代码风格,并介绍 VS Code 插件配置,方便代码格式化和自动修复。
使用 JavaScript 加载其他 JS 文件
Published: at 05:59 PM本文介绍了两种使用 JavaScript 加载其他 JS 文件的方法:ES6 Promise 方法(同步加载和按顺序加载多个文件)以及传统的异步加载方法。文章包含代码示例和解释,方便读者理解和应用。
JavaScript 条码扫描库整理
Published: at 05:15 PM本文整理了几个常用的 JavaScript 条码扫描库,包括 quaggaJS 和 ZXing,并对它们的优缺点进行了分析。
使用 Webpack 配置 TypeScript 项目
Published: at 10:44 AM本文记录了使用 Webpack 配置 TypeScript 项目的详细步骤,包括安装依赖、配置 tsconfig.json 和 webpack.config.js 文件,以及处理导入其他资源(如 SVG)的方法,并对一些常见问题进行了解答。
使用 Yarn 更新包
Published: at 11:20 AM学习如何使用 Yarn 更新 Node.js 项目中的包,包括更新到最新版本、交互式更新以及查看包信息等方法。
Babel 和 Webpack 兼容 IE8 的实践
Published: at 04:48 PM使用 Babel 和 Webpack 兼容 IE8 的详细过程,包括配置、踩坑以及解决方案,涵盖了 ES5、ES3 兼容性问题,以及缺少 Promise、Object.assign 等 API 的处理方法。
Webpack 取消对 require 处理的几种方式
Published: at 09:56 AM本文总结了 Webpack 取消对 require 处理的几种方式,包括修改 target 为 node,使用 Externals 排除依赖,以及忽略引入文件的几种方法,并附带了相关资料和参考文章链接。
JavaScript AJAX 实现详解
Published: at 10:58 AM本文详细介绍了 JavaScript 中 AJAX 的实现方法,包括使用 XMLHttpRequest 对象与服务器通信,处理响应数据以及处理错误等。文章还提供了一个简单的 AJAX 实现示例。
JS 数组对象转换为树状数据
Published: at 01:28 PM将 JS 数组对象转换为树状结构数据的两种方法:一种高效的利用 Map 的方法,另一种是低效的递归方法。文章比较两种方法的效率和实现方式,并提供完整的代码示例。
JS 字符串比较
Published: at 01:28 PMJavaScript 字符串比较的规则:从左到右逐个字符比较 ASCII 码值,直到找到不同的字符或比较到字符串末尾。'hello' > 'ts' 返回 false,因为'h'(104) < 't'(116)。文章讲解了 JavaScript 字符串比较的原理及隐式类型转换。
JavaScript 实现简单的发布订阅模式
Published: at 01:28 PM本文介绍了如何使用 JavaScript 实现简单的发布订阅模式,并提供了代码示例和测试用例。
JavaScript 数组拍平方法
Published: at 12:58 PM手写一个 JavaScript 函数,将多维数组拍平为一维数组,例如:[1, [1, 2, 3, [6, 7, 8, [10, 11, 12, 13]]], 4, 5] -> [1, 1, 2, 3, 6, 7, 8, 10, 11, 12, 13, 4, 5]
JavaScript 出现频率最高的单词
Published: at 01:28 PM本文提供一个 JavaScript 函数,用于查找一段文本中出现频率最高的单词,并使用 reduce 方法和正则表达式进行优化。
JavaScript 红黄绿灯交替实现
Published: at 01:28 PM使用 JavaScript 和回调函数实现红黄绿灯交替,并分析代码错误及优化方法。
JS 手写简单的哈希路由
Published: at 10:58 AM本文介绍如何使用 JavaScript 手写一个简单的哈希路由,实现页面路由功能。
使用原生 JavaScript 发送文件的几种方法
Published: at 10:58 AM本文介绍了两种使用原生 JavaScript 发送文件的方法:使用 fetch 和 XMLHttpRequest。无需任何第三方库,直接使用原生 JavaScript 代码发送文件到服务器。
JavaScript 随机排序数组
Published: at 10:46 AM几种 JavaScript 数组随机排序的方法,包括简单方法和 Fisher–Yates 洗牌算法,并分析了其优缺点。文章还探讨了 `sort` 方法的实现原理。
JS 手写简单的数据双向绑定
Published: at 10:58 AM本文介绍了如何使用 JavaScript 手写实现简单的双向数据绑定,通过 Object.defineProperty 方法实现数据变化时更新视图,以及视图变化时更新数据。
摩拜单车:无需二维码解锁体验
Published: at 02:20 AM记录一次无需二维码解锁摩拜单车的使用体验,并推测其技术实现原理可能与蓝牙技术和类似 AirSync 的技术有关。文章描述了无二维码摩拜单车解锁过程,并推测其技术实现原理,涉及蓝牙模块、信号强度、数据传输和解锁信号等方面。
使用 JavaScript 识别浏览器和操作系统类型
Published: at 06:45 PM本文介绍如何使用 JavaScript 的 `navigator.userAgent` 属性来识别用户的浏览器和操作系统类型,并提供相应的代码示例,用于根据操作系统类型提供不同的下载链接。
推荐一个不错的 JavaScript 学习网站
Published: at 03:44 AM我发现了一个不错的 JavaScript 学习网站 Codecademy (https://www.codecademy.com),它提供高质量的教程和练习题,即使遇到难题也可以查看答案。
JS 入门教程
Published: at 02:38 AM这份教程介绍了 JavaScript 入门的学习要点,包括语法(JS、ES6)、模块化(AMD、CMD、UMD)、常用第三方库(jQuery、Lodash、Node.js、Babel、React、Vue)、工具(npm、yarn、Gulp、Webpack)以及更深入的学习内容(闭包、原型、Promise、this 作用域、函数式编程),并列出了必要的准备工作。
无需 WinPE 安装纯净 Windows 10 系统
Published: at 03:55 AM本文介绍如何使用官方镜像和 U 盘,无需 WinPE,安装纯净的 Windows 10 系统,避免第三方工具带来的额外软件和组件阉割问题。详细步骤包括下载官方镜像、格式化 U 盘、制作启动 U 盘以及分区安装等。
前端文档查询:MDN Web 文档 (Mozilla)
Published: at 03:17 AMMDN Web 文档 (Mozilla) 是一个查找前端开发相关资料的优秀资源。该文档提供了丰富的 Web 技术信息,涵盖 HTML、CSS、JavaScript 等方面。
解决 iframe 中的 X-Frame-Options 问题
Published: at 03:17 AM项目中使用 iframe 加载另一个页面时遇到问题,页面无法加载,报错原因是 X-Frame-Options: deny,表示该页面不允许在 frame 中展示。解决方法是联系后端修改 HTTP 头 X-Frame-Options 设置,将其值设置为 'sameorigin' 或 'allow-from <origin>'。
百度与谷歌“谢谢”图片搜索结果对比
Published: at 08:05 PM对比百度和谷歌搜索关键词“谢谢”的图片结果,分析百度图片搜索结果中缺乏相关图片的问题。
地铁上的善意
Published: at 07:13 PM乘坐地铁时,一位乘客帮助我顺利上车,虽然当时未能及时道谢,事后我表达了感谢。这件小事让我感受到了人与人之间的温暖,也提醒自己要注重日常礼貌。
未来的规划
Published: at 04:27 PM即将毕业的作者计划前往北京工作,工资 5000 元,并规划未来的学习方向,包括嵌入式开发、软件开发、IOS 开发、Python、大数据和人工智能等。作者还计划帮助朋友发展字幕软件 Arctime,并创建技术宅社区。
使用 Incron 监控重要文件和文件夹
Published: at 07:31 AM使用 Incron 监控 Dropbox 或谷歌云盘等文件同步工具的文件变动,并自动执行脚本。文章介绍了 Incron 的安装、配置、使用方法以及一些注意事项,并提供了一些实际的例子,例如监控博客文章的更新。
CentOS 7 ImageMagick 安装教程
Published: at 01:44 PM本文介绍如何在 CentOS 7 系统下安装 ImageMagick 图像处理软件,并提供安装命令和测试方法。
CentOS 7 下 FFmpeg 安装教程
Published: at 02:39 AM本文介绍如何在 CentOS 7 系统上安装 FFmpeg,并解决安装过程中可能遇到的依赖问题,例如缺少 `libfribidi.so.0` 组件。
Crontab 或 Incron 执行 Shell 脚本的问题排查
Published: at 10:18 AM本文介绍如何解决 crontab 或 incron 不执行 shell 脚本的问题。涵盖关键步骤:确保脚本路径正确,设置脚本环境变量 PATH,以及添加脚本执行权限。此外,提供脚本调试技巧,例如记录错误信息到日志文件和查找执行文件的真实路径。
Nginx 访问页面身份认证配置
Published: at 01:54 AM如何在 Nginx 中为网站页面添加身份认证,仅允许授权用户访问。
基于 Oneinstack 配置 Nginx 的 Google Fonts 反向代理
Published: at 12:44 AM使用 Oneinstack 安装包配置 Nginx 作为 Google Fonts 的反向代理,解决过程中遇到的问题及解决方案。文章详细介绍了安装步骤、配置修改以及问题排查过程。
使用 Git Webhooks 自动化部署
Published: at 07:43 AM本文介绍如何使用 Git 的 Webhooks 进行自动化部署,解决手动上传和更新文章的繁琐问题。涵盖了 Webhooks 的概念、PHP 脚本的实现、以及 Github、Gitlab 和 Gitee 的配置方法,并提供了常见错误的排查和解决方法。
CentOS 7 Google Drive 数据备份与同步
Published: at 09:00 AM本文介绍如何在 CentOS 7 系统下使用 Google Drive CLI 工具 gdrive 进行数据备份和同步,包括安装、授权、常用命令、自动备份脚本以及高级操作,例如同步文件夹和版本管理。
写给 2035 年自己的信
Published: at 11:48 AM2018 年三月在北京实习的经历与感悟,记录了找房、实习初期遇到的挑战和对未来的期许。包含对未来自己的问候与鼓励,以及对过去经历的反思。
啃萝卜:一款优秀的 Arduino 图形化编程软件
Published: at 04:31 PM啃萝卜 (KRobot) 是一款优秀的 Arduino 图形化编程软件,支持 Windows、OS X、Linux 和浏览器端编程。其 UI 友好,内置示例、串口监视器、开发板和库管理,方便用户学习和使用。本文详细介绍了啃萝卜的功能和使用感受,并分享了使用体验。
智能车库管理系统准备工作
Published: at 12:24 PM使用 NodeMCU 和 Arduino 开发智能车库管理系统,本文介绍了 Arduino 中 pinMode() 和 digitalWrite() 函数的使用,以及项目准备工作。
C 语言去除字符串空格的多种方法
Published: at 06:22 AM记录一次面试中未能解答的 C 语言去除空格问题,并总结了多种实现方法及代码示例,包括去除字符串首尾空格和所有空格的方案。
Centos7 安装 Docker
Published: at 01:54 PM本文记录了在 CentOS 7 系统上安装 Docker 的步骤,包括使用脚本自动安装、启动 Docker CE、创建 docker 用户组以及测试安装是否成功。文章提供了一次性复制粘贴的命令集合,方便快捷地完成安装过程。
基于 NodeMCU 的智能车库管理系统
Published: at 07:21 AM使用 NodeMCU、GPS 模块、激光传感器和 433M 无线模块制作的智能车库管理系统,实现车库门自动开关和车库灯自动控制。系统能够精准确定车辆位置,判断车辆进出,并提供稳定的信号传输。该系统包含车库门自动开启、车库灯自动控制、车辆位置精准确定以及稳定信号传输等功能,通过 GPS 模块、激光传感器和 433M 无线模块实现。
人工智能玩转谷歌浏览器小恐龙游戏
Published: at 05:53 AM本文介绍了一个使用神经网络和遗传算法训练谷歌 Chrome 离线小游戏“小恐龙”的 AI 项目 IAMDinosaur。该项目通过读取屏幕像素信息(距离、长度、速度)作为输入,控制小恐龙跳跃躲避仙人掌。项目地址:https://github.com/ivanseidel/iamdinosaur
Altium Designer 18.0.8 Beta 下载与安装教程
Updated: at 09:12 AMAltium Designer 18.0.8 Beta 版本下载及安装教程,包含软件介绍、安装步骤、中文设置和激活方法。文章指出该 Beta 版本存在 BUG,建议使用 AD17。提供百度网盘下载链接。
Altium Designer 布线技巧
Published: at 01:53 PMAltium Designer 布线技巧笔记,包含自动布线选择、批量修改布线、绘制 45°角走线和切换计量单位等内容。
整理的 AI 开源项目
Published: at 01:53 PM整理了一些有趣的 AI 开源项目,资源链接包括 ProgrammableWeb, meta-guide 和 Freshmeat。
使用 phpMyAdmin 批量修改 MySQL 数据库列数据
Published: at 01:53 PM本文介绍如何使用 phpMyAdmin 批量修改 MySQL 数据库表中某一列的数据。通过简单的 SQL 语句 `UPDATE 表名 SET 列名=值;` 即可快速完成批量修改操作。
CentOS 7 Node.js 和 npm 安装教程
Published: at 05:53 AM本文介绍在 CentOS 7 系统上安装 Node.js 和 npm 的多种方法,包括一键安装命令、加强版一键安装命令以及手工编译安装。此外,还推荐安装 NVM (Node Version Manager) 来方便管理不同版本的 Node.js。
Hexo 添加分类并在菜单中显示
Published: at 11:41 PM这篇教程介绍如何在 Hexo 博客中添加新的分类,并在主题菜单中显示这些分类。教程涵盖了创建分类页面,配置页面属性,以及在主题配置文件中添加菜单链接等步骤。
Hexo 中英文之间自动添加空格
Published: at 05:53 AM在 Hexo 中编写文章时,自动在中英文之间添加空格的方法。介绍了使用 pangu.js 和 hexo-pangu-spacing 插件两种方法。
Hexo Next 主题优化:使用 hexo-all-minifier 插件压缩代码
Published: at 07:41 AM本文介绍如何使用 hexo-all-minifier 插件优化 Hexo Next 主题,解决旧版 uglify 不支持 ES6 导致 JS 压缩失败的问题,并提供详细的插件配置说明。文章涵盖了 hexo-all-minifier 的安装、配置以及各个配置选项的详细解释,帮助用户有效提升 Hexo 博客的性能。
使用 JSBox 制作一个 IP 地址获取脚本
Published: at 01:01 PM本文介绍如何使用 JSBox 创建一个获取 IP 地址的脚本,包含代码示例、运行效果和代码解读,并提供了相关 JSBox 接口文档和开源样例链接。
Linux 下解压.tar.bz2 压缩包
Published: at 12:59 AM本文介绍如何在 Linux 系统下解压.tar.bz2 格式的压缩包,包括安装 bzip2 组件和使用 tar 命令解压的步骤,并附带一些参考链接和解决问题的经验分享。
华为畅玩 4 安卓手机使用感受
Published: at 09:53 PM259 元购入华为畅玩 4 手机使用体验,对比三年 iPhone 6 使用感受,包含 WIFI 连接、应用商店、UI 界面、长时间使用感受等方面,以及对安卓低端机和安卓系统的评价。
VS2013 下 OpenCV 3.0.0 配置教程
Published: at 09:53 PM本文档详细介绍如何在 Visual Studio 2013 环境下配置 OpenCV 3.0.0,包括下载安装、环境变量设置、VC++ 工程配置以及测试方法,并附带代码示例。
CentOS 安装 Aria2 下载工具
Published: at 01:53 PM本文介绍如何在 CentOS 系统上安装和配置 Aria2 下载工具,包括安装步骤、配置文件详解以及启动方式。Aria2 是一个轻量级的多协议命令行下载工具,支持 HTTP/HTTPS、FTP、SFTP、BitTorrent 和 Metalink。
中国移动物联网麒麟版 mini 开关量输入检测
Published: at 01:53 PM使用中国移动物联网麒麟版 mini 开发板进行开关量输入检测,包括红外线避障传感器和人体热释传感器的高电平检测,并使用 STM32 的 GPIO 库函数进行编程。
中国移动物联网麒麟版-mini 远程控制 LED 小灯
Published: at 01:53 PM使用中国移动物联网麒麟版-mini 开发板,通过电脑远程控制 LED 小灯的教程,包含开发板介绍、软件准备、程序编译烧录以及测试步骤。
NodeMCU/ESP8266 驱动 OLED 0.96″ 128×64 I2C SSD1306 显示屏
Published: at 01:53 PM本教程介绍如何使用 NodeMCU/ESP8266 驱动 OLED 0.96″ 128×64 I2C SSD1306 显示屏,包含视频链接和代码下载地址。
NodeMCU 与 iOS Swift App 控制 LED 小灯
Published: at 01:53 PM使用 NodeMCU (ESP8266) 和 iOS Swift App 控制 LED 小灯的教程,包含 NodeMCU 端代码以及通过 iOS App 发送指令控制 LED 开关的方法。
Nginx 反向代理 Google Font、Ajax 和 Gravatar 头像
Published: at 09:53 PM本文介绍了如何使用 Nginx 反向代理 Google Font、Ajax 和 Gravatar 头像,解决国内无法正常访问这些资源导致网站加载速度慢的问题。涵盖了 CentOS 7 下 Nginx 的安装(yum 和一键包方式),以及详细的 Nginx 配置文件,用于反向代理 Google Font、Ajax 和 Gravatar 头像,并包含缓存设置。