Skip to content

Instantly share code, notes, and snippets.

View yangfch3's full-sized avatar
🎯
Focusing

Fucheng Yang yangfch3

🎯
Focusing
  • NetEase
  • Internet
View GitHub Profile
@yangfch3
yangfch3 / ajax.js
Last active March 23, 2020 07:06
ajax 请求封装
var Ajax = (function() {
var methodsList = ['get', 'post', 'head', 'options', 'put', 'connect', 'trace', 'delete'];
/**
* Ajax
* @param {String} url
* @param {Function} callback
* @param {Object/String} data
* @param {Object} options
*
@yangfch3
yangfch3 / pull-my-github-star-list.js
Last active March 6, 2020 15:07
拉取你的 github star 列表
const fs = require('fs'),
child_exe = require('child_process');
let page = 1,
perPage = 20;
function autoCrawl() {
child_exe.exec(`curl https://api.github.com/users/yangfch3/starred?page=${page} --silent`, function (err, stdout, stderr) {
let data = stdout,
dataArr = JSON.parse(data),
@yangfch3
yangfch3 / async-await.js
Last active January 17, 2020 07:04
JavaScript 异步编程分享使用代码
/**
* 依次读取文件 A、B、C
*/
/**
* 4. async-await
*/
const fs = require('fs'),
promisedReadFile = util.promisify(fs.readFile); // util.promisify: Node v8.x.x 新增 API
@yangfch3
yangfch3 / SceneManager.ts
Last active December 30, 2019 14:08
[白鹭场景管理] 快捷有序地进行白鹭场景的管理 #白鹭 #游戏开发
///<reference path="./utils/array.ts" />
/**
* 控制场景的切换
* 与 Main 协同工作
*/
class SceneManager {
private static instance: SceneManager = null
static getInstance() {
@yangfch3
yangfch3 / SoundManager.ts
Last active November 8, 2018 13:32
[白鹭声音管理器] 白鹭音频接口的封装 #白鹭 #游戏开发
class SoundManager {
private static instance: SoundManager
private static IS_MUTE_SYMBOL = 'isMute'
private static BGM_VOLUME = 'bgmVolume'
private static EFFECT_VOLUME = 'effectVolume'
static getInstance() {
if (!SoundManager.instance) {
new SoundManager()
@yangfch3
yangfch3 / Layer.ts
Created November 8, 2018 13:30
[白鹭 Layer 管理组件] 用于方便地对进行 Layer 的管理 #白鹭 #游戏开发
class Layer extends egret.Sprite {
private mountTo: egret.DisplayObjectContainer
constructor(mountTo: LayersDisplayObjectContainer) {
super()
// Layer 挂载到的 UI
this.mountTo = mountTo
}
}
@yangfch3
yangfch3 / memoize.js
Last active November 2, 2018 04:19
[简易缓存机] 对一些方法/函数传参-返回值进行缓存 #设计模式 #utils
// 对一个对象的方法做缓存
function Memoize(func, obj) {
obj = obj || window
func = obj[func]
let cache = {}
return function () {
let key = Array.prototype.join.call(arguments, '_')
if (!(key in cache)) {
// console.log('缓存未命中')
cache[key] = func.apply(obj, arguments)
@yangfch3
yangfch3 / HTML-tags.md
Created March 14, 2016 05:48 — forked from yisibl/HTML-tags.md
常用的 HTML 头部标签

常用的 HTML 头部标签

详细介绍参见原文:yisibl/blog#1

<!DOCTYPE html> <!-- 使用 HTML5 doctype,不区分大小写 -->
<html lang="zh-cmn-Hans"> <!-- 更加标准的 lang 属性写法 http://zhi.hu/XyIa -->
<head>
    <meta charset='utf-8'> <!-- 声明文档使用的字符编码 -->
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <!-- 优先使用 IE 最新版本和 Chrome -->
@yangfch3
yangfch3 / what-forces-layout.md
Last active September 13, 2018 01:18 — forked from paulirish/what-forces-layout.md
[会导致 layout/reflow 的条目] #tiny_handbook

What forces layout / reflow

All of the below properties or methods, when requested/called in JavaScript, will trigger the browser to synchronously calculate the style and layout*. This is also called reflow or layout thrashing, and is common performance bottleneck.

Element

Box metrics
  • elem.offsetLeft, elem.offsetTop, elem.offsetWidth, elem.offsetHeight, elem.offsetParent
  • elem.clientLeft, elem.clientTop, elem.clientWidth, elem.clientHeight
  • elem.getClientRects(), elem.getBoundingClientRect()
@yangfch3
yangfch3 / core.js
Last active September 13, 2018 01:17 — forked from Saul-Mirone/mini-express.js
[Express 风格框架简易实现] #原理或简易实现
const http = require('http')
const url = require('url')
const path = require('path')
const fs = require('fs')
const mime = {
"html": "text/html",
"css": "text/css",
"js": "text/javascript",
"json": "application/json",
"gif": "image/gif",