Koa 源码解析
Talk is cheap, show me the code
搭建基本服务
例子:
|
|
Talk is cheap, show me the code
例子:
|
|
Talk is cheap, show me the code
Koa 就是一种简单好用的 Web 框架。
Koa is a new web framework designed by the team behind Express, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs.
推荐一个node工具,font-spider(字蛛是一个中文字体压缩器), 压缩想用的字体。
先看结果,用到的特殊字体impact.ttf有Original size: 138.488 KB,压缩完只有10.644 KB
|
|
2017年1月9日,我们赢来了微信小程序,而在今年,小程序已经在完全融入到我们的生活中,可以说无处不在,赢来了一场真正的大爆发。微信之父张小龙在形容小程序时,是这样说的
小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装卸载。
而网友们在形容小程序的时候,是这么说的
App就像原配,一年用不了几次;
服务号就像小三,每个月固定用几次;
小程序就像炮友,用完即走;
那么在你点击启动一个小程序的时候,这个“炮友”是如何做到无需安装卸载,触手可及,用完即走的呢,这其中又发生了哪些不可告人的事情呢。
小程序开发过程中,会遇到在App启动onLaunch的时候,发起登录请求获取微信用户信息,并注册到我妈自己的服务器上以便使用,然而,这个过程中,
app on launch -> request -> success -> page onload
是无法判断success和page onload哪个先来的,会导致页面初始化数据失败的情况。
https://developers.weixin.qq.com/miniprogram/dev/api/share.html
在 Page 中定义 onShareAppMessage 函数,设置该页面的转发信息。
项目中有个倒计时的需求,找到了github上的一个star最多的jQuery的库,如下:
https://github.com/hilios/jQuery.countdown.git
使用的时候,如下:
<!--html-->
<div class="countdown" id="countdown">
<p class="title"><span>剩余挑战时间</span></p>
<p class="time"></p>
</div>
<!--js-->
$('#countdown .time').countdown('2018/04/01', function(e) {
$(this).html(e.strftime('%d天%H小时%M分%S秒'));
})
下来之后有什么问题呢,就是zepto和jQuery的转化问题了。
"use strict";
if (typeof define === "function" && define.amd) {
define([ "jquery" ], factory);
} else {
factory(jQuery);
}
在定义部分之间改为传入Zepto是不好使的,会发现页面中并没有出现倒计时。
"use strict";
if (typeof define === "function" && define.amd) {
define([ "zepto" ], factory);
} else {
factory(Zepto);
}
经过排查,是事件委托惹的锅,那Zepto和jQuery的事件委托有什么不同呢。
浏览器主动去执行域名解析功能。
当浏览网页时,浏览器会对网页中的域名进行解析缓存,这样当单击当前网页中的连接时就无需进行DNS解析,减少用户等待时间,提高用户体验。
图片、CSS、JS或html上的link等URL。
前端优化
- 减少DNS请求次数
- 进行DNS预读取
-webkit-font-smoothing在window系统下没有起作用,但是在IOS设备上起作用-webkit-font-smoothing:antialiased是最佳的,灰度平滑。
不久前做东西,遇到这样一个简单的需求,就是选择框选择“城市->地区”,
当时的策略是封装了一个简单的组件,每次调用import一下。
fi
后来想看看Vue的插件是怎么实现的,就想到这种需求其实可以尝试做成一个公用插件。