自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 Sentry介绍与使用 - Issues模块

大家好,现在由我来讲解 Sentry 的 Issues (问题)模块。我会分为三个部分来讲,首先我会介绍 Sentry 一些重要的概念,然后讲一下 Issues 的基本使用方式,最后是 Issues 的基本实践。

2023-11-26 17:36:12 484

原创 如何自己开发一个前端监控SDK

最近在负责团队前端监控系统搭建的任务。因为我们公司有统一的日志存储平台、日志清洗平台和基于 Grafana 搭建的可视化看板,就剩日志的采集和上报需要自己实现了,所以决定封装一个前端监控 SDK 来完成日志的采集和上报。

2023-09-10 22:55:49 671

原创 非暴力沟通--日常沟通的技巧与实践

分享这个主题的原因是我最近看了一本书,叫做《非暴力沟通》,这本书是美国一个叫做马歇尔·卢森堡的学者写的,这本书讲解了一种神奇而平和的非暴力沟通方式,帮助读者更好地和他人沟通相处,从而收获爱和和谐。大家知道,人是一种群体性动物,不管是在职场还是在日常生活中,我们都需要和他人沟通相处,那么我们的沟通方式可能就会影响到我们和他人的相处质量。所以这次的分享会我希望和大家一起分享我在《非暴力沟通》这本书里学到了什么。

2023-05-24 20:37:23 834

原创 用原生JS实现虚拟列表

最近在开发需求的时候,有用到 Antd 的虚拟列表组件 rc-virtual-list ,粗略地看了一下源码,于是萌生了自己写一个虚拟列表的想法。

2022-07-07 20:54:39 2989

原创 webpack4升级到webpack5经验总结

最近接手了公司内部webpack相关的依赖包,于是打算优化一波。考虑到webpack5已经正式发布近两年,跟webpack相关的依赖包应该适配的差不多了,于是打算先把webpack4升级到webpack5,然后基于webpack5再进行优化。升级前用的是 "webpack": "^4.42.1" ,升级后用的是 "webpack": "^5.72.1" 。笔者采用的升级webpack的方法是先一键升级所有的依赖包,然后一个一个地去解决运行过程中的报错。首先,全局安装npm-check-updates:

2022-05-26 16:14:29 10455

原创 微信扫码登录的一种开发思路

微信扫码授权登录流程:用户在显示二维码的页面用手机扫码授权页面跳转到指定地址,URL上带有参数code前端通过code向服务端请求用于权限认证的token前端后续请求在请求头带上token作为身份标识需要解决的问题按照上述的流程,前端最简单的做法就是扫完码重新跳转回系统后,从URL获取code进行后续的操作。然而因为公司的实际情况,整个扫码登录的流程并没有这么简单。扫码后只能跳转到固定域名首先,微信扫码后跳转的域名是固定的,但是一般公司的项目在不同的开发(或生产)环境的域名是不一样的,

2022-01-14 11:43:58 1518

原创 记一次前端项目构建发布优化--GitLab CICD篇

最近接了给前端项目构建发布做优化的任务,本次优化分为两个部分,一个部分是Gitlab CI/CD 的发布流程优化,另外一个部分是Webpack的打包优化。这篇文章先来讲讲Gitlab CI/CD方面的优化。首先,我们先来过一遍Gitlab 执行CI/CD 的流程,以及Gitlab CI/CD一些重要的知识点。什么是Gitlab CI/CDCICD 是持续集成(Continuous Integration)、持续交付(Continuous Delivery)与持续部署(Continuous Deploy

2021-12-16 11:30:23 3031

原创 前端大数的运算及相关知识总结

背景前段时间我在公司的项目中负责的是权限管理这一块的需求。需求的大概内容就是系统的管理员可以在用户管理界面对用户和用户扮演的角色进行增删改查的操作,然后当用户进入主应用时,前端会请求到一个表示用户权限的数组usr_permission,前端通过usr_permission来判断用户是否拥有某项权限。这个usr_permission是一个长度为16的大数字符串数组,如下所示:const usr_permission = [ "17310727576501632001", "108191964889

2021-01-03 19:12:57 1042 1

原创 利用Git进行多人协作开发(入门篇)

本篇文章中,不仅讲解一些git的常用语句,更重要的是讲解一下多人协作开发的流程,以及怎么利用Git去实现多人协作开发。首先,在本地下载好Git以后,我们需要设置提交代码用的用户名和邮箱git config --global user.name "xxx"git config --global user.email "xxx"如果用了 --global 选项,那么以后你所有的项目都会使用这...

2019-07-09 21:57:40 1071

原创 Node.js实现一个HTTP服务器

项目地址http server题目设计一个模拟HTTP服务端程序自己设计一个WEB的程序,监听80端口。支持多客户端连接,能满足客户的HTTP请求(浏览器访问),包括以下功能:1.基本功能:get、post(带数据请求)、head请求2.模拟登陆访问,页面redirector功能(设计登陆页面login.html、主页index.html,如果直接访问index.html则跳转到登陆页...

2019-05-12 21:16:17 424

原创 用一张图总结web缓存策略

1 浏览器缓存浏览器缓存机制有四个方面,它们按照获取资源时请求的优先级依次排列如下:1.Memory Cache2.Service Worker Cache3.HTTP Cache4.Push Cache1.1 Memory CacheMemoryCache,是指存在内存中的缓存。从优先级上来说,它是浏览器最先尝试去命中的一种缓存。从效率上来说,它是响应速度最快的一种缓存。不过当...

2019-02-11 20:18:30 262

原创 vue+django+mysql实现移动端二手交易应用

这是一个用vue+django+mysql实现的移动端二手商品信息发布平台。效果展示相关仓库onehome:项目前端部分onehomeServer:项目后端部分onehomeDoc:项目的一些文档已完成功能 登录 注册 首页展示 发布商品信息(支持多图片上传) 收藏/取消收藏 私聊 搜索 消息提醒 上传图像 ...

2019-02-04 21:46:21 2073 20

原创 利用spy-debugger进行移动端真机调试

平常我们在进行移动端开发的时候都是用PC端的手机模拟器进行调试。但是,PC端调试和最终在移动端呈现的效果仍然存在差距,那么这时我们就可以使用spy-debugger来进行真机调试。在电脑上打开git bash,全局安装spy-debuggernpm install –g spy-debugger在电脑的git bash里执行spy-debugger initCA 生成证书。证书会生...

2019-02-04 11:05:18 659 1

原创 vue+django实现一对一聊天功能

vue+django实现一对一聊天和消息推送的功能。主要是通过websocket,由于Django不支持websocket,所以我使用了django-channels。考虑到存储量的问题,我并没有把聊天信息存入数据库,服务端的作用相当于一个中转站。我只讲述实现功能的结构性代码,具体的实现还请大家看源代码。前端聊天界面前端消息提醒界面后端代码效果展示实现过程后端首先,...

2019-02-02 23:04:08 2911 5

原创 用element的upload组件实现多图片上传和压缩

前端我用element-ui的Upload组件作为基础,vuex做状态管理。后端用的是Django和django-rest-framework。七牛云作为图床。项目地址:多图片上传组件效果展示项目执行流程首先,让我们来分析一下实现多图片上传的流程:前端向后端请求用来上传图片至服务器的token后端为每张要上传的图片生成一个图片名,并用这个图片名生成token后端将图片名...

2019-01-25 00:32:09 2092

原创 Python实现多线程计算π

结果项目地址多线程计算π

2018-12-19 10:23:02 1875

原创 Python实现生产者消费者模型

题目项目地址生产者-消费者模型进阶思路将生产者、消费者和消息队列设为三条进程执行,之间通过socket通信消息队列拥有4条工作线程的线程池,另外再开两条线程与消费者和生产者进行通信生产者生产出数据后将数据发送给消息队列,消息队列将数据放进数据队列后,向生产者发送操作成功的响应当生产者将全部数据发给消息队列后,生产者和消息队列的通信中断消费者向消息队列发送请求,...

2018-12-19 10:17:56 390

原创 canvas模拟实现磁盘调度算法

canvas-democanvas模拟实现磁盘调度算法 Canvas simulation implements disk scheduling algorithm项目地址:canvas-demodemo界面实现过程1.定义磁盘磁道总个数和需要生成的磁道序列个数:const track = 150;const trackNumber = 40;2.定义磁道序列数组let ...

2018-12-19 10:06:41 431

原创 JS之事件捕获和事件冒泡

DOM事件流(event flow )存在三个阶段:事件捕获阶段、处于目标阶段、事件冒泡阶段。**事件捕获(event capturing):**当鼠标点击或者触发dom事件时(被触发dom事件的这个元素被叫作事件源),浏览器会从根节点 =>事件源(由外到内)进行事件传播。**事件冒泡(dubbed bubbling):**事件源 =>根节点(由内到外)进行事件传播。...

2018-09-24 18:15:18 12557

原创 DRF中APIView和viewsets的区别

DRF指代django rest framework APIView是您在定义REST视图时通常会覆盖的最基本的类。您通常会定义诸如get,put,delete等方法。使用API​​View定义您的视图,然后将其添加到您的网址中,如下所示:#in views.pyclass MyAPIView(APIView): ... #here you put your logi...

2018-09-09 17:21:46 1637

原创 js之闭包

变量的作用域在JavaScript中,函数内部可以读取全局变量。var n=999;function f1(){ alert(n);}f1(); // 999但是,函数外部无法读取函数内部的局部变量。function f1(){ var n=999;}alert(n); // error这就是Javascript语言特有的”链式作用域”结构(ch...

2018-09-09 17:08:37 111

原创 小程序实现三级选择器组件

原文链接:小程序实现三级选择器组件效果实现过程<view class="section"> <view class="section__title">{{title}}</view> <picker bindchange="bindPickerChange" value="{{multiIndex}}&

2018-08-13 00:30:19 1864 2

原创 hexo博客主题--conscious

hexo-theme-conscious一个hexo博客主题,在hexo-theme-cafe的基础上修改而成效果demo使用安装git clone https://github.com/michwh/hexo-theme-conscious.git themes/conscious或者直接下载最新源码文件,重命名为conscious放到博客th...

2018-08-13 00:25:48 268

原创 利用Termux在手机上写node.js

Termux是一款开源且不需要root,运行在Android终端上极其强大的linux模拟器,支持apt管理软件包,完美支持python,ruby,go,nodejs。键盘的选择如果使用软键盘的话可以下载Hacker’s Keyboard来解决一般的输入法没有Ctrl、Alt、Tab、Esc这些常用控制键的问题。另外,Hacker’s Keyboard只有在手机横屏的时候才会显示所有的...

2018-06-08 10:22:18 8237 2

原创 web版微信协议分析

执行流程1.打开页面后,向服务器发送一个get请求,服务器会返回一个uuid2.凭借这个uuid就可以获得用于登录的二维码3.在获取到二维码和用户扫描二维码并确认登录之间,客户端会每隔一段时间向服务器发送一个get请求来查看这个二维码是否被扫描。如果二维码被扫描,返回window.code=201;,否则返回window.code=408;。如果这个二维码长时间没有被扫描,那么这个...

2018-05-21 20:01:45 3669

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除