
前端
文章平均质量分 82
Never Yu
好好写代码、高级而又优雅 —— 开发准则/理念/思考
展开
-
hexo generate 生成出来页面空白的,里面的文件大小都是 0
最近想更新一下我之前使用 Hexo搭建的博客站点,发现一个神秘的问题:我在本地运行项目时好好的,部署线上以后发现页面打开是一片空白什么都没有。经过我排查,运行hexo的构建命令后,能正常生成静态文件、目录、以及目录里面的文件都有,但是:所有的文件大小都是0,文件里面没有内容,这就很奇怪了,怪不得部署上去以后打开网站是一片空白~原创 2025-04-22 16:52:55 · 301 阅读 · 0 评论 -
史上最详细的在three.js导出gltf,glb,obj,stl格式的模型文件
关于实现这个功能,Three 中提供了导出器。但是这两个类的使用方法,跟你的Three版本有很大的关系。不同的版本,实现方式是不一样的,代码上会有区别。所以,继续往下看时,请务必先确认你当前的Three版本。【更新】2025-03-18:请把你的three.js版本打在评论里。1、关于下载glb文件时,type 用还是表示通用的二进制流数据,适用于所有未知或未注册的二进制文件。适用场景:无特定格式要求时使用,浏览器不会尝试解析文件内容,直接触发下载。。原创 2025-03-18 23:11:12 · 825 阅读 · 0 评论 -
基于threejs开发三维地质建模软件
三维地质建模具有显著的优点,是实现深部矿产勘查突破的重要途径,但由于矿产勘查相关规范都没有要求提交三维地质建模成果,一般地勘单位利用三维地质建模开展成矿预测仍处于空白或起步试验阶段,然而其作为未来矿产勘查与开发的发展方向之一,地勘单位应加大三维地质建模在成矿预测、矿床储量评价等方面的研究力度。三维地质建模在矿床空间表达、成矿条件综合分析、定量预测、指导勘查找矿等方面具有明显优势,可建立起矿藏的三维空间形态,提高地质解释的精准度,辅助矿产资源勘探。传统的二维地质信息已经难以满足现代地质工作和工程设计的需要。原创 2025-03-11 15:18:36 · 1036 阅读 · 0 评论 -
2025年了,别再用安装包的方式来安装node了
node是前端开发中必备的工具。如果你是使用node安装包的方式来安装node,随着时间的推移,面临的一个最直接的问题就是:node版本过高或者过低的问题。在开发新项目或者使用新技术的时候,有的会要求甚至要求你使用最新的Node.js。比如👇👇:在一些老的项目上呢,又会嫌弃你的Node.js版本过高,比如:,就是你的node版本过高的问题。这个时候你可以使用在安装命令后添加选项来尝试解决问题。这种方法虽然可以临时解决问题,但并不能真正解决依赖冲突。在之后安装其他包时,可能仍然需要添加这个选项。原创 2025-01-03 15:11:39 · 1000 阅读 · 0 评论 -
教你如何在 Electron 或者 exe 程序中集成 Python 环境
在 Electron 应用中集成 Python 环境,可以直接运行.py文件,调用 python 功能,可以实现更加灵活的应用逻辑和扩展性。要在 Electron 中引入 Python 环境,首先需要在项目中安装 Python 解释器。Linux/Mac 系统用户可以通过系统的包管理器(如 apt、yum 等)来安装 Python;Windows 系统用户可以通过 Python 的安装程序来安装 Python。原创 2024-09-12 18:57:26 · 2772 阅读 · 0 评论 -
【看完就透】前端缓存、HTTP缓存超详细讲解
在任何一个前端项目中,访问服务器获取数都是很常见的事情,但是如果相同的数据被重复请求了不止一次,那么多余的请求次数必然会浪费网络带宽,以及延迟浏览器渲染所要处理的内容,从而影响用户的使用体验。如果用户使用的是按量计费的方式访问网络,那么多余的请求还会隐形的增加用户的网络流量资费。因此考虑使用缓存技术对已获取的资源进行重用,是一种提升网站性能与用户体验的有效策略。原创 2024-08-26 09:08:29 · 956 阅读 · 0 评论 -
在three.js中,如何动态的更新 Line2
在 three.js 中,你想创建一个线模型,如果你使用 Line 以及对应材质 LineBasicMaterial 的线宽属性 lineWidth,是无效的,无法得到一个有宽度的线条。在 three.js 中要实现一个有宽度的线条,推荐使用 Line2。// 设置分辨率// 颜色// 线宽度})这种方式可以对原来创建的 line2 进行任意的形状和点位的修改并更新。line2.geometry.dispose() // 销毁原来的集合体-10,10,0,-10,0,0,0,10,0,原创 2023-12-06 23:54:47 · 1507 阅读 · 0 评论 -
【前端必学】RxJS,一个“神秘”的前端技术
RxJS 是一个 JavaScript 库,它使用可观察对象来编写异步和基于事件的程序。它可以帮助开发人员更轻松地管理复杂的异步代码,并提供了许多操作符来处理可观察对象。RxJS 可以用于多种应用程序,包括 Web 应用程序、移动应用程序和桌面应用程序。但是,由于它有一些复杂的概念和操作符,因此有时也被认为是一种“神秘”的技术。原创 2023-08-08 22:53:05 · 1560 阅读 · 0 评论 -
uni-app开发小程序使用uni.chooseMedia选择图片,安卓手机无法选择图片
于是我又找到了。我是想做选择图片的,但是呢,我看这个是用来设置视频最长拍摄时间的,默认是10秒,也不是必填项,我想着我不需要视频吧,搞个 1s 吧。没想到就这样了…┭┮﹏┭┮真是无语啊~~~~——————————【正文完】——————————前端学习交流群,想进来面基的,可以加群:832485817685486827;原创 2023-05-25 16:10:06 · 7253 阅读 · 3 评论 -
我们对 2023 年核心页面指标的建议
虽然 HTTP Archive 数据最终不能将动画与布局转换联系起来,但数据确实表明,将任何可能影响布局的 CSS 属性制成动画的页面,其 "良好 "的 CLS 的可能性比整体页面低15%。虽然这些建议中的每一条,单独地,可能会改善许多网站的性能,但全套的建议是公认的压倒性的,而且,现实中,任何一个人或网站都不可能遵循所有的建议。确保可以从 HTML 源中发现 LCP 资源可以带来可衡量的改进,并且还可以解锁额外的机会来确定资源的优先级,这是我们的下一个建议。有些属性比其他属性的 CLS 更差。原创 2023-01-30 17:28:04 · 720 阅读 · 0 评论 -
详解 Vue3 中如何使用 Proxy 来实现响应式的技术~
Vue3 中的响应式原理以及实现机制,相较于 Vue2 中,有了很大的升级和性能提升。而且优化了很多问题,值得学习和研究!学习和理解 Vue3 中的响应式原理和实现,对再项目实战中的使用,有很大的帮助;遇到问题时,能发现问题的关键所在。原创 2022-12-26 16:59:59 · 3991 阅读 · 0 评论 -
在 Vite项目中,使用插件 @rollup/plugin-inject 注入全局 jQuery
在一次项目脚手架升级的过程中,将之前基于webpack搭建的项目移植到Vite构建。一些组件库是依赖jQueryBootstrap;引入这些组件的时候,需要项目中已经存在jQuery环境。例如:当我们在main.js中使用如下方式引入Bootstrap我们必须保证拥有全局的jQuery环境。否则,在Bootstrap中会报缺少jQuery的错误。在原项目中,在中,有一段关于jQuery使用插件全局注入jQuery,这样在项目构建启动运行后,项目中就有了全局的jQuery环境。原创 2022-11-30 22:03:02 · 8025 阅读 · 2 评论 -
详细了解RSA
首先看这个加密算法的命名。很有意思,它其实是三个人的名字。早在1977年由麻省理工学院的三位数学家Rivest、Shamir和Adleman一起提出了这个加密算法,并且用他们三个人姓氏开头字母命名。,其玩法打破了以往所有加密算法的规则。在 RSA 出现之前,所有的加密方法都是同一种模式:加密解密的规则使用同一种方式。这种长达几个世纪的加密方案有一个致命的缺陷。在传递加密信息时,必须让对方拿到解密的规则才能正常解密。由于加密解密的规则一致,所以保存和传递,就成了最头疼的问题。原创 2022-10-08 11:23:53 · 540 阅读 · 0 评论 -
在 vue-cli 构建的项目中配置使用资源CDN,加速我们的项目
出于对网站性能的要求,有时候我们不希望一些比较大的第三方库直接打包到最后的bundle中,而会选择在打包的时候忽略他们,并直接使用CDN上面的资源。生产环境中将项目依赖的一些第三方包替换成通过cdn方式外部加载,而不是打包到vender,对于提升应用的加载、响应速度很有意义。在vue-cli3及以后的项目中,相关配置都需要在这个文件中进行,如果你没有这个文件请自己新建一个(与同级)。原创 2022-09-19 16:22:49 · 1852 阅读 · 0 评论 -
【前端】关于Hash,MD5的学习
Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。(来源百度百科解释)原创 2022-09-02 15:18:04 · 1438 阅读 · 0 评论 -
[前端必学]精准控制webpack处理文件名hash的问题
1、webpack就内置了hash计算方法,对生成的文件可以在输出的文件中添加hash字段。2、webpack内置的hashhash每次构建会生成一个hash。和整个项目有关,只要项目有文件更改,就会改变hash。和单个文件的内容有关。指定文件的内容发生改变,就会改变hash。chunkhash和webpack打包生成的chunk相关。每一个entry,都会有不用的hash。.........原创 2022-08-01 14:08:35 · 4010 阅读 · 0 评论 -
前端基于 scp2 的自动化部署方案
前端自动化部署的核心思路是:基于 方式的自动化部署是简单的,只需要在项目中创建一个配置文件,写好相关的配置和执行顺序即可,之后每次需要部署的时候,只需要执行部署命令。一个基于 ssh 的纯 JavaScript 安全复制程序。优点: 可以在每个操作系统上执行,unix、Linux、windows等。需要注意的是:在 windows 上执行需要依托 Node 环境,最低版本为 v0.8.7。【1】、在项目根目录下创建 文件夹, 在 文件夹下创建 文件用来保存服务器的配置信息。(示例如下:)【1-1】原创 2022-07-11 15:44:21 · 1995 阅读 · 1 评论 -
网站全灰,仅需一行css代码
网站全灰,仅需一行css代码原创 2022-06-24 16:57:41 · 421 阅读 · 0 评论 -
前端读取文件夹中文件的方式以及使用技巧
前端读取文件夹中文件的方式以及使用技巧写在前面写在前面场景:在 vuex 的使用场景中按业务或者模块组件来创建多个对应的 module.js 文件,如何快速在 vuex 的入口中来注册它们呢 ?// https://webpack.js.org/guides/dependency-management/#requirecontextconst modulesFiles = require.context('./modules', true, /\.js$/)// you do not need原创 2022-05-31 17:32:42 · 4298 阅读 · 0 评论 -
轻松实现在web页面中直接播放rtsp视频流
帮你轻松实现在页面中直接播放rtsp视频流使用准备ffmpeg运行rtsp2web前端代码课外知识写在前面我之前研究在 web 中直接播放 rtsp 视频流时,写过一篇文章:【前端】rtsp 与 rtmp 视频流的播放方法。阅读这篇文章对你的学习有很大帮助。在文章中我有过详细的分析和解读,给出了结论:要想在 web 中实时播放 rtsp 视频流:借助后端转码推流将是必要的操作。实现我用 node.js 实现了转码推流的功能,并将其打包成 rtsp2web 发布到了 npm 上。......原创 2022-04-12 15:05:32 · 49881 阅读 · 133 评论 -
前端必学 - 大文件上传如何实现
前端必学 - 大文件上传如何实现写在前面问题分析开始操作文件如何切片写在前面1、正常的向后端发送请求,常见的 get、post 大家都很熟悉,是没有任何问题的;我们也可以用 post 或者表单请求发送 file文件 到后端。 但是大文件的上传是一个特殊的情况: 大文件上传最主要的问题就在于:在同一个请求中,要上传大量的数据,导致整个过程会比较漫长,且失败后需要重头开始上传。首先是上传过程时间比较久,(要传输更多的报文,丢包重传的概率也更大),在这个过程中不能做其他操作,用户不能刷新页面,只能耐心等待原创 2022-03-29 17:03:52 · 16750 阅读 · 12 评论 -
【新】Vue2/3 自定义指令的实现
Vue自定义指令的实现【写在前面】【Vue2】【Vue3】钩子函数【写在前面】【Vue2】https://zhuanlan.zhihu.com/p/81246032【Vue3】 huangyi gongzhonghao【Vue3源码深入】https://github.com/ustbhuangyi/vue3-lazy/blob/master/src/core/imageManager.ts都可以直接在全局用注册指令或者插件的方式来实现;也可以在某个页面/组件中注册局部指令。官方的Vue自定义指原创 2022-03-07 16:29:34 · 563 阅读 · 0 评论 -
Vue2/3中事件总线 - EventBus 区别以及详细使用方法
文章目录Vue 事件总线事件总线Vue2 中事件总线Vue3 中事件总线扩展阅读关于provide和inject的响应式的问题Vue 事件总线事件总线本质上还是解决各个组件之间的通信问题。项目中有多层组件传参可以使用 $attrs,可以使代码更加美观,更加简洁,维护代码的时候更方便;如果使用普通的父子组件传参 prop 、$emit、$on 会很繁琐,特别是在兄弟组件和祖先-子孙后代组件这种情形下。如果使用 vuex 会大材小用,只是在这几个组件中使用,没必要使用 vuex;而且 vuex原创 2022-02-28 08:17:25 · 2748 阅读 · 0 评论 -
使用 GitHub Actions 来构建应用程序
使用 GitHub Actions 构建应用程序写在前面开始Action环境变量/加密密码默认环境变量自定义环境变量使用环境变量其他类型变量加密密码创建加密密码使用加密密码学完开搞参考文档写在前面自动化部署 gh-pages,之前一直使用的是免费的 travis-ci.org,简单好用;后来发现它关闭停止服务了,推荐迁移到 travis-ci.com 。travis-ci.com 提供 10000 个免费的 credit。这些 credit 不会自动增加,每次构建最少花费 10 个 credit,用一原创 2022-01-31 22:58:39 · 1347 阅读 · 0 评论 -
前端开发利器 http-server
文章目录安装/更新参数说明常用操作在开发过程中,很多情形下,都需要把项目放在 server 环境下运行。有时候我们打开一个文档使用 file 协议打开的时候,不能发送 ajax 请求,只能使用http 协议才能请求资源,所以此时我们需要在本地建立一个 http 服务,通过IP加端口号,来访问资源。http-server 是一个超轻量级的基于 nodejs 的 http web 服务器,http-server 可以将任何一个文件夹当作服务器的目录供自己使用,完全抛开后台的沉重工程,直接运行你的代码。当原创 2021-12-29 22:16:08 · 2028 阅读 · 0 评论 -
微信小程序 scroll-view 实现自动滑动到底部
<scroll-view class="scroll-wrapper" scroll-into-view="{{scrollTo}}" scroll-y="true" bindscroll="messageListScrolling"> <block wx:for="{{messageList}}" wx:key="id"> <view>你的scroll-view中的内容</view> </block> <原创 2021-11-18 20:20:21 · 8333 阅读 · 2 评论 -
【转】彻底搞懂JS前端5大模块化规范及其区别
一文彻底搞懂JS前端5大模块化规范及其区别两年请,我曾经也对这个问题很好奇,做过一个研究,写了一个总结:xxxx,有兴趣的可以看看。时过今日,再次对这个问题充满了好奇,又有了新的发现https://www.cnblogs.com/echoyya/p/14577243.html#umd%EF%BC%88universal-module-definition%EF%BC%89...翻译 2021-10-18 20:02:41 · 596 阅读 · 0 评论 -
微信小程序 — 长列表组件 recycle-view 详细教学
微信小程序 — 长列表组件 recycle-view 踩坑问题全解写在前面引入长列表组件 recycle-view长列表组件 recycle-view 使用细节问题一、如何增加下拉刷新功能?问题二、长列表中如何更新以及重置数据?写在前面列表太长了,原生的 scroll-view 就遭不住了;当一个页面展示很多信息的时候,会造成小程序页面的卡顿以及白屏。原因有如下几点:列表数据很大,首次 setData 的时候耗时高渲染出来的列表 DOM 结构多,每次 setData 都需要创建新的虚拟树、和旧树原创 2021-09-22 21:38:56 · 11337 阅读 · 3 评论 -
纯前端生成验证码
纯前端生成验证码生成验证码的方法:function code_draw() { var canvas_width = $('#canvas').width(); var canvas_height = $('#canvas').height(); var canvas = document.getElementById("canvas"); //获取到canvas的对象,演员 var context = canvas.getContext("2d"); //获取到canvas画图的环境,演员表演原创 2021-08-06 11:15:44 · 1185 阅读 · 0 评论 -
【前端】websocket 讲解与项目中的使用(附源码)
websocket 实战(附源码)写在前面创建连接监听事件心跳写在前面本文不会去分析 websocket 与 http 接口的区别,也不会写太多基础知识的介绍。只介绍 websocket 在前端开发中的实际应用(附源码)websocket 作为全双工通信工具,在 web 开发中,用于前后端之间的消息推送、实时通信;这一点是 http 接口无法代替的(比轮询优雅,比轮询的性能好)其实 websocket 是简单的。但是,很多人在第一次使用它的时候,还是有很多疑问和无法下手的问题。所以,就有了这篇原创 2021-07-05 18:51:19 · 6625 阅读 · 0 评论 -
在vue项目中,onclick事件如何调用vue的函数
在vue项目中,onclick事件调用vue的函数写在前面写在前面在 Vue 的项目中,通过拼接 html,插入到页面中的内容。html 中的 onclick 方法,如何触发 Vue 中的方法呢?示例如下:let info = []info.push(`<span class='top-total'>${nearPersonArr.length}人</span><div class='list-wrapper'>`)nearPersonArr.forEach(原创 2021-06-07 19:32:30 · 7180 阅读 · 2 评论 -
Http-proxy-middleware 报错:proxy is not a function
Http-proxy-middleware 报错:proxy is not a function问题重现解决办法参考文档问题重现在使用 http-proxy-middleware 做接口代理的时候,//引入跨域中间件let proxy = require('http-proxy-middleware'); //这里要注意"^/" 是匹配的路由,它会将匹配的路由进行转发,没匹配到的就不会转发。app.use('/api', proxy({ //目标后端服务地址 target: 'htt原创 2021-05-10 09:35:08 · 1912 阅读 · 0 评论 -
Vue父组件mounted执行完后再执行子组件mounted
Vue父组件mounted执行完后后再执行子组件mounted需求背景深入分析父子组件生命周期执行顺序解决办法需求背景我们在父组件中 mounted 生命周期钩子函数中执行百度地图的初始化创建;在子组件的 mounted 中,执行一些接口调用后,将数据点添加到地图上。<!-- parent-component.vue --><template> <div class="map" id="map"></div> <child-compon原创 2021-04-13 19:45:54 · 12629 阅读 · 1 评论 -
关于前端框架的思考
关于前端框架的思考导读重点导读一、百花齐放的前端框架以前,最火的前端框架是 jQuery,后来又出现了 Dojo、Ember、Backbone、RequireJS、Angular、Vue、React… 一大堆框架。目前,大家能在市面上看到的前端框架依然还有很多。在这个发展过程中,框架的规模和体积也在不断的增大,最老的 prototype.js 和 mootools,都只有几千行 JS 代码,压缩之后的体积也只有 10k 左右。但到现在,动辄几百k,而且还要配置其他工具/全家桶一起使用。起码得有个原创 2021-03-02 09:01:20 · 381 阅读 · 0 评论 -
【前端】rtsp 与 rtmp 视频流的播放方法
【前端】rtsp 与 rtmp 视频流的播放方法导读写在前面前端如何在网页上播放 rtsp 视频流导读RTSP(Real Time Streaming Protocal),RFC2326,实时流传输协议,是 TCP/IP 协议体系中的一个应用层协议。…额,算了,不写这些了;想了解科普知识的,自己去网上查;而且这也不是我写博文的风格,咋们直接上干货!写在前面如何生成一个 rtsp 的视频流?如何播放 rtsp 视频流?你可以在网上搜一下 rtsp 测试视频流,看有没有现成的 rtsp 视频流连接可原创 2021-02-20 13:38:14 · 38662 阅读 · 12 评论 -
【前端】JavaScript 中强大的可选链
JavaScript 中强大的可选连写在前面可选链可选链 de 三种形式写在前面当你在获取一个对象的属性的时候,你可能需要检测这个属性是否存在,否则会报错;比如:var objconsole.log(obj.name)会报错:TypeError: Cannot read property 'name' of undefined;特别是后端接口返回的数据,前端数据一般是你自己定义的,有就是有,没有就是没有;后端有时候说好的有,结果没有…/(ㄒoㄒ)/~~所以在使用接口返回的数据的时候,要做属性原创 2021-01-19 09:44:17 · 2216 阅读 · 2 评论 -
vuex中import router中的常量结果是undefined ?
Vue store中import router中的常量是undefined ? 问题描述如何解决问题分析参考文档问题描述Vue 项目结合 element UI 搭建后台管理系统,在 vuex 的 store/index.js 文件中引入 router/index.js 中定义的常量 constantRouterMap,结果后台打印引入结果为 undefined。详细见图:如何解决在 main.js 中 先引入 store 再引入 router。import store from './store原创 2021-01-03 18:42:48 · 1711 阅读 · 0 评论 -
Vue中全局引入stylus文件不生效的问题
Vue中使用stylus全局引入不生效的问题参考什么意思?比如说,我们在 App.vue 里面:<style lang="stylus">@import "./style/min.styl"</style>min.styl 里面定义了两个变量,我们想象的是,在所有的 .vue 文件中都可以使用 min.styl 中的变量。但现实的情况是:并没有生效。难受啊≧ ﹏ ≦参考https://github.com/vuejs/vue-cli/issues/441htt原创 2020-12-18 19:44:59 · 1773 阅读 · 0 评论 -
详解、带你搞懂:前端缓存
详解:前端缓存缓存分类分类一分类二Cache-Control 的取值:缓存分类分类一HTTP缓存浏览器缓存其中 HTTP 缓存是在 HTTP 请求传输时用到的缓存,主要在服务器代码上设置;而浏览器缓存则主要由前端开发在前端 js 上进行设置。浏览器与服务器通信的方式为应答模式,即是:浏览器发起 HTTP 请求 – 服务器响应该请求。那么浏览器第一次向服务器发起该请求后拿到请求结果,会根据响应报文中 HTTP 头的缓存标识,决定是否缓存结果,是则将请求结果和缓存标识存入浏览器缓存中。分类二原创 2020-12-02 20:30:47 · 710 阅读 · 0 评论 -
Updating Homebrew... 无法更新 Homebrew
Homebrew 无法更新的问题原创 2020-07-29 15:52:10 · 588 阅读 · 0 评论