Node.JS调试

Node.JS 开发过程调试必不可少,一般常用的调试方法有打日志和断点调试。 打日志 Node.JS 中实现了和浏览器 JS 几乎一致的Console,在需要较少的调试信息时,使用Console的一些 API 如log,dir可以方便的在终端中输出有效的信息,是一种简洁实用的方法,但是对于需要较多调试信息,例如复杂对象预览时……

阅读全文

关于JS模块系统,Webpack做了什么

在实际 JS 开发工作中,我们通常会以模块化的方式进行开发,所以我们用到了babel-loader, ts-loader, 以及webpack,在代码中,经常会用到ES,CommonJS,AMD等多种模块系统混用,所以有必要知晓打包器为我们做了什么让最终代码能够在浏览器等不支持原有模块系统的环境下正常工作。……

阅读全文

浏览器解析渲染以及页面优化

浏览器对页面的加载、解析以及渲染是一个非常复杂的话题,这里我只对这个过程做一个非常概括的总览,以初步了解这些过程,对于前端编程如何优化页面给予一些原理性的支撑。 为什么要了解这些过程 了解浏览器的资源加载,可以使我们在引入外部样式、脚本资源时进行更合理的时机选择 了解浏览器文档解析,可……

阅读全文

[前端回顾] 详解Cookie

什么是 Cookies 全称 HTTP Cookie,又称 Web cookie 或 Browser cookie,是由服务器发送至用户浏览器客户端并存储的一些信息片段数据。它通常用于解决在无状态 HTTP 协议下的状态保持问题。Web 发展至今,Cookie 仍然发挥着重要作用,尚未被完全替代。 Cookie 构成 Cookie 包含了Name,Value,Domain,Path……

阅读全文

利用CSS3 font-feature-settings特性减除字体动画震颤

在做GithubProfile项目的时候,使用了数字动画展示的效果,如My GithubProfile页面中的 commits,stars 以及 followers 数字。实际使用中,由于数字字体不等宽,造成在数字增长动画时很明显的震颤,体验非常不好。 这里我最终使用了 CSS 的font-feature-settings的属性来解决了这……

阅读全文

编写自定义TSLint Rules

在使用 TypeScript 编写前端代码时,使用 TSLint 规范化代码是一个不错的选择。在必要的时候,除了常见的一些规则,还可以自己根据团队需要编写自定义的代码检查规则,这里以实例讲解如何编写一个 TSLint Rule 并应用。 基本要求 TSLint Rule 的代码文件名、内容等都有一些特殊的格式要求,如下: Rule 名称命名必须是短横线式(kebab-c……

阅读全文

React Native 布局

开始学习 React Native,首先必须了解其布局的特性,因为其与传统的 Web 开发中的布局有着不小的差异。 尺寸 React Native#Dimensions RN 提供的 Dimensions API 可以让我们在应用程序内获得屏幕和窗体的宽高尺寸。 1 2 3 4 5 6 7 8 9 10 11 12 13 var { height, width } = Dimensions.get('window'); var { height: height2, width: width2 } = Dimensions.get('screen'); return ( <View style={styles.container}> <Text style={styles.welcome}>Welcome to React Native!</Text> <Text style={styles.instructions}> {`The window width is ${width}, height is ${height}`} </Text> <Text style={styles.instructions}> {`The screen width is ${width2}, height is ${height2}`}……

阅读全文

多入口前台项目开发编译发布集成方案

一个大型的前台项目,例如内部 ERP 项目,其内部的各个业务直接虽然在逻辑上是强相关联的,但在系统开发中,其耦合度实际上并不足以需要做成单一入口,将其做成一个子业务一个入口的模式,有如下几个优点: 业务模块化开发,可以一个或若干个开发人员负责特定的业务模块,各业务模块虽在一个工程,但在开发……

阅读全文

NodeJS通过dubbo默认协议通信

这几天研究 dubbo RPC 与 NodeJS 之间的通讯,并写了一个 NodeJS 作为消费者与 dubbo Java 端生产者通讯的库dubbo-node,其中 zookeeper 作为服务协同工具和注册中心。 Dubbo Dubbo 是阿里巴巴开源的一个分布式 RPC 框架,是用 Java 语言实现的,支持多种数据协议,详细见官网dubbo.io。 Dubbo-node 这个NPM package主要提供两个功能: Node 端……

阅读全文

[前端回顾] - CSS盒模型

当浏览器渲染 HTML 文档时,它将每一个元素依据 CSS 盒模型呈现为一个方形的盒子,每个盒子由 4 个区域组成,分别是content, padding, border以及margin。 content区,包含了真实的元素内容,如文本、图像等等。 padding和margin则分别为内外边距区,border为边界,夹在p……

阅读全文