guchengf.me

Cheng Gu · guchengf.me

我的个人网站,写杂记、书影音和一些开发笔记

126
篇收录文章
访问博客
https://guchengf.me/
guchengf.me 首页截图正在生成网站截图

最新文章126

Unicode 200B (zero width space) 在 Web 环境的问题

最近处理一些用户录入数据时,发现有一些明明是纯数字的数据,却通过不了类型校验(无法解析成 Int/BigInt)类型,由于一直都是通过日志查看错误,觉得很疑惑,后来找到原始数据,发现因为这个『字符串』带了一个 zero width space,导致程序异常。 zero width…

The long way to Angular and TypeScript | Part.2

引言 在一年多之前,我写了一篇文章《The way to Angular 2 | Part.1》介绍 Angular,最初打算持续完成一个系列,然后在我写完文章之后,Angular 和 TypeScript 都发生了相当大的变化,整个系列也搁浅了。 如今,我打算换一个角度,继续这…

在 neovim 退出时,重设终端(iTerm2)光标

问题 出于个人习惯,我在终端模拟器(iTerm2 等)中,都是将光标(cursor)设置为 vertical bar,而在 neovim 中则是将 normal 模式的光标设置为 block。 这样一来,当我从 neovim 的正常模式退出时,导致终端的光标样式也变成了 bloc…

迁移评论系统到 hashover

鉴于 disqus 在国内访问越来越慢,资源和数据请求量越来越大,严重拖慢了页面加载,而且博客也只需要一个简单的评论对话系统,所以开始考虑进行评论系统的迁移。 替代方案 – hashover hashover 满足了我对评论系统的期望,简单,数据本地化,可以轻松迁移。 hasho…

当我试图 extends 一个被 connect 装饰过的 React Component 时

问题 起因是这样的,一开始在项目中写了一个原始的 Popup 组件(通过 react-redux 的 connect 方法接入 redux),后来有了一个更高级的需求,我就想要直接 extends 这个原始的 Popup 组件,然后覆写一些方法。 然后遇到了一个问题,继承之后的子…

从零开始的 Web 前端性能优化 – 规则

build delightful, modern, responsive web experiences. — Google Web Fundamentals 引言 前端的性能指标在通常情况下是一个很难量化的指标,面向的用户群体和环境复杂,在现有条件下,网页的绝对性能仍然取决于用…

Grafana 二次开发指南(前端)

前端项目 启动流程 页面载入之后,引入的脚本是 boot.js,由 es2015 的 shim,systemjs,systemjs 的配置文件和 boot.js 组成。 执行 boot。设定 cache 时间,import app/app.js,执行 init 函数。 init …

【译】通过 Webpack 实现 AngularJS 的延迟加载

原文链接:http://michalzalecki.com/lazy-load-angularjs-with-webpack/ 随着你的单页应用扩大,其下载时间也越来越长。这对提高用户体验不会有好处(提示:但用户体验正是我们开发单页应用的原因)。更多的代码意味着更大的文件,直到代…

The way to Angular 2 | Part.1

Angular 2 已经进入 beta 通道有一段时间了,也有不少人开始在各种情景中使用 Angular 2。我自己也在过去两个月里进行了一些基于 Angular 2 的项目尝试。 The way from Angular 1.x to 2 这应该是大多数人很关心的一个问题,从 …

React Native 的包系统

介绍 在 React-Native 中,实现了一个类似于 webpack 的包系统,命令行工具提供了一个 bundle 的功能,用来打包整个项目的文件。 Bundle 熟悉 webpack 的人应该知道,webpack 最终会将所有引入的文件(JS、CSS、模板等)全部打包到一个…

阻止在页面元素内滚动时触发页面滚动

一般来说,当我们在页面内部一个可滚动元素上使用滚动时,如果滚动距离超过它的顶部或者底部,就会触发页面滚动,但是在一些情况下,我们不希望引起页面滚动,因为这会影响用户操作。 下面是一种阻止页面滚动的方法。 var scroll = document.getElementsByCla…

在 VMware 的客户机内使用鼠标的前进 / 后退等功能键

在 VMware 的客户机内使用鼠标的前进 / 后退等功能键 在 VMware 的虚拟磁盘文件夹内,找到 .vmx 配置文件,在其中加入下面这句配置: mouse.vusb.enable = "TRUE" 就可以在客户机内正常使用鼠标的前进、后退等功能键了。

中国地区常用浏览器 UA

360 极速浏览器 "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36 QIHU 360EE"猎豹安全浏览器"…

在 Chrome Extension 中使用 Google Closure

要在 Chrome Extension 中使用 Closure library, 需要将 Closure library 按照需求打包。 假设扩展的开发目录如下: -root |-css |-js |-closure-library |-menifest.json |-.. 首先…

Typecho 转 Jekyll markdown 工具

最近想把博客转到 jekyll ,原本的程序是 typecho 的,手动迁移有些麻烦(虽然 typecho 0.9 已经是默认 markdown 写作的了)。 于是想要找一个转换程序,在 github 上搜了一圈,只有一个 typecho 转 hexo 的,虽然都是 markdo…

Google Closure – goog.require()

在使用 Google Closure Library 时,要注意一点。 goog.require() 所请求的内容,不能被同一个 script 标签内的 js 代码所使用,例如下面这种做法就是错误的。 <script src="closure-library/closure/go…

输入关键词搜索博客名称、作者或域名。

Esc 关闭回车查看全部结果

删除确认

即将删除“”。此操作不可恢复。

请输入 以确认: