Youga's Blog

Thinking will not overcome fear but action will.

微信官方文档学习

微信官方文档学习

微信官方文档 内容主要包括微信公众号开发过程的简述,还有对相应的流程设计的思考。 申请账号 申请公众号,从公众号平台官网获取 appId、appSecret 等信息,同时可以配置 ip 白名单和 服务器配置项等信息 微信服务器向个人服务器推送信息 公众号用户的行为信息可以通过微信服务器推送到个人服务器,例如在公众号发送的 im 消息,支付等。微信服务器会产生相应的信息推送到个人服务...

对微信 Web 流程的思考

对微信 Web 流程的思考

微信官方文档学习 在学习微信开放平台官方文档的过程中,直观的感受就是这套流程是足够安全的。 微信授权流程是安全的 微信授权流程的重心在微信服务器和个人服务器之间的通信。两者通过微信开放平台的配置解决了信任链的问题,只要彼此的配置是正确的则请求是可信的。相比于 https 的认证流程,需要繁杂的过程去解决信任问题,信任链的终点是设备出厂时候配置的用于验证证书的 ca,需要首先通过非对称加...

glut,运行在chrome的小程序框架

Glut 字面意思是供大于求的,反过来则是需要的都可以被满足,期望做一个价值取决于想象的项目。

介绍 Glut 是一款Chrome 插件, 字面意思是供大于求的,反过来则是满足被需要的。 这里 Glut 相当于一个小程序容器, 而前端开发者可以通过 Glut 开发、调试并发布或者更新自己的小程序,并同步给团队的其它成员。而不需要单独开发一个 chrome 拓展,等待漫长的审核。 Glut 小程序和页面脚本关系: 可以通过 glut 小程序实现的功能: 技术细节 如果...

Typescript进阶技巧

生命诚可贵,快用typescript!

差不多想戒javascript了。哎,生命诚可贵,快用 typescript! tips: 第三方包如果存在声明描述错误的情况,可以另写声明覆盖。消灭小红点! 例如 Taro getStorage Promise 值类型错误,可以重写声明覆盖: namespace Taro { namespace getStorage { export type Promised = { ...

一种通过CSS选择器盗取用户密码的攻击方式

web安全,不一样的css

最近有关于 css 安全问题的讨论比较火热。 话题的开始是由两个有趣的开源项目,CSS-Keylogging 和 CrookedStyleSheets。 首先是CSS-Keylogging 从名字可以看出,项目提出通过 css 记录用户的输入并上传到服务器。实现方式也比较简单,通过枚举输入值的选择器,选择器一旦匹配就将携带的信息上传到服务端。服务器保存请求序列,按时间排序分析就可以得到用...

js实现任意组件拖拽

js组件

实习的时候,需要实现备忘事项插件窗口拖动,使用js封装了对任意组件的拖拉效果。代码可能生涩,但是乱七八糟的再写一遍也要debug挺久。故记录已备不时之需。😌 // node 为被拖拽对象,dragBar为可拖拽区域, exclude 为排除拖拉效果的组件 export default (node, dragBar = null, exclude = []) => { let fl...

protobuf、fast-json or JSON?

js几种序列化/反序列化方法比较

公司项目是electron应用,运行期间同时存在node进程和页面渲染进程, 数据从服务进程接收,处理到传递给页面进程,期间需要多次序列化和反序列化。由于IM系统对每个消息进行已读订阅回调。这使得项目在运行期间占用的cpu和内存较高,特别是进程间的数据通信方式,需要优化。 多次讨论,同事分享了fast-json的文章,我自己写了简单的测试代码对几种序列化下比较。 方法包括:fast-j...

从牛课网爬题(数据解析成dom树)

使用js爬取多个页面数据,解析到dom便于查找

使用 js写的简单爬虫,爬取牛客网前端题目。 在牛客网页面,打开控制台拷贝代码运行即可。解析到dom树方便进行精确搜索,避免写过长的正则表达式进行全文匹配(可能存在漏处理的情况)。 关键代码: const parser=new DOMParser() const html = parser.parseFromString(result, "text/html") let ul = html...

ubuntu查杀进程脚本

小水管和blog的构建脚本

小水管和blog的构建脚本。我发誓以后再也不学bash脚本了。语法符号太过生涩💩💩,早前专门学了一遍,此刻已经忘光。用 python 亦或 nodejs脚本替代吧。😠 小水管自动构建 killApp.sh 通过名字或者占用的端口号查杀进程。 killAppByName(){ if [ -z $# ];then echo '请指定任务.';return;...

Callback or Promise?

异步处理该如何选择?

前端开发中有一些 Api 需要通过回调处理一些异步操作,但是我们更愿意使用 Promise的调用方式。那么什么时候我们使用回调函数什么时候使用Promise呢? 将callback函数转换为Promise 假设我需要计算文件sha256值,由于读取文件是异步操作,我需要在onloadend的回调结果中处理reader.result uploadFile(file){ ...