随笔分类 - JavaScript
摘要:背景 由于工程体系的历史原因,很多工程服务并未注册至开放网关而是私自开放接口,每个服务都维护一个client身份表,同一个client在不同开放服务间同步身份数据困难。 在使用过程中,调用方申请client流程割裂、服务认证功能后置导致每个服务提供方认证逻辑同质化、无开放接口权限管控等功能影响服务的
阅读全文
摘要:啥是AK AK(Access Key)是一种身份证明,它解决了“资源的使用者是谁”这个问题,比如在生活中,身份证可以证明你是你,而在云计算或程序中,AK能证明你是这个应用的拥有者。 AK和密码的有啥区别呢,密码面对的主体是人,人可以使用密码登录系统证明身份;AK的主体是程序或服务,程序或服务可以使用
阅读全文
摘要:问题一 页面异步请求莫名被canceled 原因 浏览器发出请求后,进行了页面级别的跳转(location.href=xxx)或者reload,导致发出的请求被canceled。 问题二 Chrome 的network窗口中接口请求成功但无法查看返回值 原因 尽管Chrome的network选中了p
阅读全文
摘要:从sleep的实现说起 在nodejs中,如果要实现sleep的功能主要是通过“setTimeout + promise”实现,也可以通过“循环空转”来解决。前者是利用定时器实现任务的延迟执行,并通过promise链管理任务间的时序与依赖,本质上nodejs的执行线程并没有真正的sleep,事件循环
阅读全文
摘要:远程调试 所谓远程调试,是指在本地IDE或命令行即时调试服务端代码,这在预发环境的测试阶段可以使用。远程调试避免了服务端环境的模拟,可快速定位bug。 node应用调试 本文的教程主要针对采用 VS Code IDE的群体。目前并未搭建一个系统专门支持node应用远程调试,因此需要开发人员手动去对应
阅读全文
摘要:本文是根据2019.4.13日参加 “Node-Party”论坛使用的PPT,加上笔者新的思考与沉淀而来。在此再次感谢贝贝网前端部门和芋头君以及相关与会人员的支持! —— 微店杨力(曾用名 欲休) Node EE的前世今生 什么是 Node EE Node EE的诞生 Node EE范畴 总结 Ro
阅读全文
摘要:Rockerjs Core "项目地址" "项目主页" 基于 TypeScript 和注解的轻量级IoC容器,提供了依赖注入、面向切面编程及异常处理等功能。Rockerjs Core可在任意工程中引入,是一个框架无关的IoC容器。 @rockerjs/core 模块不依赖于任何框架,并与现有框架、库
阅读全文
摘要:整个九月份由于业务繁重以及玩心颇重,一直没有机会来写一篇博文。而且笔者于十月一日将会举办人生大事 婚礼,现在家里筹办过程中只能抽出零碎的时间来写这篇文章。 关于服务端截图,这种使用场景非常少见,大多服务器不同于PC机器并不提供相关图形界面以及图形库,所以对不同的系统的不同版本的服务器需要安装不
阅读全文
摘要:deno node.js之父Ryan Dahl在一个月前发起了名为deno的项目,项目的初衷是打造一个基于v8引擎的安全的TypeScript运行时,同时实现HTML5的基础API。所谓的安全运行时,是将TS代码运行在一个沙盒里,访问受限的文件系统、网络功能,这比较类似于web里的iframe
阅读全文
摘要:TypeScript是什么 TypeScript是JavaScript的一个超集 TypeScript需要编译为JavaScript才能运行(语法糖) TypeScript提供了类型系统,规范类似Java TypeScript提供了ES6的支持,也可以支持部分ES7草案的特性,不用担心TypeScr
阅读全文
摘要:关于首屏 首屏时间是指从转向该页面到屏幕中该页面所有内容都可见时的时间。已经有太多的关于首屏时间的计算,在本文中并不重复阐述这些已经被提出或者实现的方案,而旨在探索与讨论更多的首屏自动化采集方案,扩大思考范围,你我思想之间互相碰撞往往可以激起更多的稀奇古怪的解决方案,这也正是我写这篇文章的目的。
阅读全文
摘要:背景 terminal(命令行)作为本地IDE普遍拥有的功能,对项目的git操作以及文件操作有着非常强大的支持。对于WebIDE,在没有web伪终端的情况下,仅仅提供封装的命令行接口是完全不能满足开发者使用,因此为了更好的用户体验,web伪终端的开发也就提上日程。 关于终端(tty)与伪终端
阅读全文
摘要:服务端推 服务端推,指的是由服务器主动的向客户端发送消息(响应)。在应用层的HTTP协议实现中,“请求 响应”是一个round trip,它的起点来自客户端,因此在应用层之上无法实现简易的服务端推功能。当前解决服务端推送的方案有这几个: 1. 客户端长轮询 2. websocket双向连接 3. i
阅读全文
摘要:目标 当前页面需要与当前浏览器已打开的的某个tab页通信,完成某些交互。其中,与当前页面待通信的tab页可以是与当前页面同域(相同的协议、域名和端口),也可以是跨域的。 要实现这个特殊的功能,单单使用HTML5的相关特性是无法完成的,需要有更加巧妙的设计。 畅想 现在我们发现下思维,假设多种场景
阅读全文
摘要:socket.io与cluster 在线上系统中,需要使用node的多进程模型,我们可以自己实现简易的基于cluster模式的socket分发模型,也可以使用比较稳定的pm2这样进程管理工具。在常规的http服务中,这套模式一切正常,可是一旦server中集成了socket.io服务就会导致ws通道
阅读全文
摘要:Transform流特性 在开发中直接接触Transform流的情况不是很多,往往是使用相对成熟的模块或者封装的API来完成流的处理,最为特殊的莫过于through2模块和gulp流操作。那么,Transform流到底有什么特点呢? 从名称上说,Transform意为 处理 ,类似于生产流水线上的每
阅读全文
摘要:移动端开发在某些场景中有着特殊需求,如为了提高用户体验和加快响应速度,常常在部分工程采用SPA架构。传统的单页应用基于url的hash值进行路由,这种实现不存在兼容性问题,但是缺点也有 针对不支持onhashchange属性的IE6 7需要设置定时器不断检查hash值改变,性能上并不是很友好。 而如
阅读全文
摘要:前端开发过程中会接触各种各样的编码,比较常见的主要是UTF-8和HTML实体编码,但是web前端的世界却不止这两种编码,而且编码的选择也会造成一定的问题,如前后端开发过程中不同编码的兼容、多字节编码可能会造成的XSS漏洞等。因此,本文旨在更好的全面了解涉及前端开发领域的字符编码,避免可能出现的交互和
阅读全文
摘要:XSS(Cross Site Scripting),又称跨站脚本,XSS的重点不在于跨站点,而是在于脚本的执行。在WEB前端应用日益发展的今天,XSS漏洞尤其容易被开发人员忽视,最终可能造成对个人信息的泄漏。如今,仍然没有统一的方式来检测XSS漏洞,但是对于前端开发人员而言,仍是可以在某些细微处避免
阅读全文
摘要:@(js) reduce函数 ,是ECMAScript5规范中出现的数组方法。在平时的工作中,相信大家使用的场景并不多,一般而言,可以通过reduce方法实现的逻辑都可以通过forEach方法来变相的实现,虽然不清楚浏览器的js引擎是如何在C++层面实现这两个方法,但是可以肯定的是reduce方法肯
阅读全文