DongYuanxin's Blog

NodeJS实现简易区块链

之前由于课程要求,基于 Nodejs 做了一个实现简易区块链。要求非常简单,结构体记录区块结构,顺便能向链中插入新的区块即可。 但是如果要支持多用户使用,就需要考虑“可信度”的问题。那么按照区块链要求,链上的数据不能被篡改,除非算力超过除了攻击者本身之外其余所以机器的算力。 想了想,就动手做试试。 技术调研 在 google 上搜了搜,发现有个项目不错: https://github...

压力测试框架VemoJS源码拆解

主要分析下 src 文件夹下的代码。从简单到难吧: utils.js 按照命名,肯定是封装一些常用的方法。这里只提供了一个 cpuNum 的 getter 接口。 这个是计算当前计算机的 cpu 核心数目,用于决定开启多大的集群进程。为了保证效率,最小的返回值是 4。 error.js 主要从 Error  对象上继承并且创建了新对象: VemoError 。对象构造函数上, 设计...

微信网页登录逻辑与实现

现在的网站开发,都绕不开微信登录(毕竟微信已经成为国民工具)。虽然文档已经写得很详细,但是对于没有经验的开发者还是容易踩坑。 所以,专门记录一下微信网页认证的交互逻辑,也方便自己日后回查: 加载微信网页 sdk 绘制登陆二维码:新 tab 页面绘制 / 本页面 iframe 绘制 用户扫码登陆,前端跳入回调网址 回调网址进一步做逻辑处理,如果是页内 iframe 绘制二...

HTML5原生拖放事件的学习与实践

前言 之前学习了 HTML5 的拖放事件,开发中也用到了拖拽组件。为了厘清整体的逻辑,专门做了一个小例子。 具体实现的效果也很简单:元素可以在容器中任意拖动,元素被移入容器的时候,还会有相关样式的改变已达到更好的展示效果。 例子基本运用了拖放事件的全部事件,并且尽量简洁的展示了出来。特此记录。 拖放事件介绍 由名字可以看出来,拖放事件由 2 部分组成:拖动和释放。 而拖动又由 2...

React 组件通信方案

最近在做 react 开发的时候,需要在多级组件之间进行有效通信。这里所说的多级组件,可能是父子组件、兄弟组件,还可能是两个完全不相关的组件。 那么问题是:有没有一种方法可以统一实现组件之间的通信?不借助 redux 等第三方库,降低依赖性,保证代码简洁,还要保证通用性。 场景介绍 最近在做 react 开发的时候,需要在多级组件之间进行有效通信。这里所说的多级组件,可能是父子组件、兄...

Service Worker离线缓存实战

背景介绍 最近实战了 Service Worker(以下简称“sw”)来进行网站缓存,以实现离线状态下,网站仍然可以正常使用。 尤其对于个人博客这种以内容为主体的静态网站,离线访问和缓存优化尤其重要;并且 Ajax 交互较少,离线访问和缓存优化的实现壁垒因此较低。 环境准备 虽然 sw 要求必须在 https 环境下才可以使用,但是为了方便开发者,通过localhost或者127.0...