june01 png的故事:隔行扫描算法
In Web开发 on 2017年06月21日 by view: 3,923
0

前言

前文已经讲解过如何解析一张png图片,然而对于扫描算法里只是说明了逐行扫描的方式。其实png还支持一种隔行扫描技术,即Adam7隔行扫描算法。

优劣

使用隔行扫描有什么好处呢?如果大家有去仔细观察的话,会发现网络上有一些png图在加载时可以做到先显示出比较模糊的图片,然后逐渐越来越清晰,最后显示出完整的图片,类似如下效果:

Adam7效果

这就是隔行扫描能带来的效果。隔行扫描一共会进行1到7次扫描,每一次都是跳着部分像素点进行扫描的,先扫描到像素点可以先渲染,每多一次扫描,图片就会更清晰,到最后一次扫描时就会扫描完所有像素点,进而渲染出完整的图片。

当然,也因为要进行跳像素扫描,整张图片会存储更多额外数据而导致图片大小会稍微变大,具体增加了什么额外数据下文会进行讲解。

TAT.joeyguo 腾讯Web前端大会< TFC2017 />热力来袭
In Web开发 on 2017年05月17日 by view: 5,696
0

< TFC2017 /> 大会官网:https://TFC.tencent.com

腾讯Web前端大会 < TFC2017 /> 将在深圳热力开启。本次大会将邀请全国各地开发者,共同探讨Web前端最新技术、海量用户服务优化和运营心得,以及未来行业发展风向。

本次大会将是腾讯规模最大的Web前端盛会。主办方腾讯, 中国顶级互联网公司之一,创造了许多亿万海量用户级的优秀Web应用,积累了深厚的Web前端开发经验 。

大会讲师将会广邀国内外的前端知名大牛,他们有著名流行框架的作者、知名前端书籍的作者、Web工程化方面的权威等。其中还有部分讲师是从腾讯上千名前端工程师中精挑细选的优秀高级工程师,将为你带来最具实践价值、最接地气的前端开发经验分享,内容不仅涵盖Web新技术、Node.js、框架、工程化、 图形处理等前端前沿内容 ,还包含极致的性能优化、海量用户运营等具有腾讯前端特色的宝贵经验。

无论您是资深的前端大咖,还是初出茅庐的前端菜鸟,相信都可以通过本次大会获得非常有价值的帮助。

哈希函数介绍 | 哈希算法
In Web开发 on 2017年05月15日 by view: 7,144
1

哈希函数介绍

什么是哈希

在记录的关键字与记录的存储地址之间建立的一种对应关系叫哈希函数。
哈希函数就是一种映射,是从关键字到存储地址的映射。
通常,包含哈希函数的算法的算法复杂度都假设为O(1),这就是为什么在哈希表中搜索数据的时间复杂度会被认为是”平均为O(1)的复杂度”.

基本概念

在讲解具体内容前,首先我们要清楚以下几个概念:
1. 冲突(碰撞)
对于不同的关键字ki、kj,若ki != kj,但H(ki) = H(kj)的现象叫冲突(collision) ,即不同的输入却有相同的输出。我们应该尽量避免冲突,因为冲突不仅会使我们在查找的时候效率变慢,还甚至会被攻击者利用从而大量消耗系统资源。
至于冲突的解决方案有很多种,具体可以参考这篇哈希表针对冲突的两种方式优缺点是什么?

哈希函数的应用

哈希算法广泛应用于很多场景,例如安全加密和数据结构中哈希表的查找,布隆过滤器和负载均衡(一致性哈希)等等。
下面介绍几个常用的哈希算法。

TAT.rocket Styled Components:让样式也成为组件
In Web开发 on 2017年05月15日 by view: 9,831
2

前言

为了应对越来越复杂的web应用,组件化应运而生,React、Vue等组件化框架使我们的程序更简单更加可维护。在一个组件内会将结构、样式和逻辑写在一起,虽然这违背了关注点分离的原则,但是这有利于组件间的隔离。为了顺应组件化的潮流,人们开始考虑使用JS上编写CSS,styled components就是其中一种解决方案。styled components是一个React第三方库,作用是可以将样式写成组件的形式,实现在JS上编写CSS。

如何在低版本node运行高版本node子进程
In Web开发 on 2017年05月15日 by view: 1,880
1

如何在低版本node运行高版本node子进程

  • 如何在低版本node运行高版本node子进程
    • 前言:四个创建子进程的函数
    • exec / execFile

    • spawn

    • fork
    • 总结

    • 如何在node低版本运行高版本node子进程

    • nvm介绍

    • nvm好处
    • nvm具体原理
      • download资源管理
      • shell切换环境变量(3个)
    • 结合nvm切换构建子进程环境变量
      • 注入环境变量
    • 子进程函数选择
    • node -c运行生成代码

    • 进程和信号量

    • 用于优雅的检测fis grunt退出错误

最近在使用 Node 的子进程模块实现一些功能,对相关知识进行了一个系统的学习总结,这篇文章将会简要介绍我总结的 Node 中和进程有关的内容。包括:四个创建子进程的函数、如何在node低版本运行高版本node子进程、进程以及信号量检测。有不当之处欢迎提出,一起交流。

TAT.vorshen webgl性能优化初尝
In Web开发 on 2017年05月13日 by view: 3,350
2

上次文章介绍了如何用webgl快速创建一个自己的小世界,在我们入门webgl之后,并且可以用原生webgl写demo越来越复杂之后,大家可能会纠结一点:就是我使用webgl的姿势对不对。因为webgl可以操控shader加上超底层API,带来了一个现象就是同样一个东西,可以有多种的实现方式,而此时我们该如何选择呢?这篇文章将稍微深入一点webgl,给大家介绍一点webgl的优化知识。

讲webgl优化之前我们先简单回忆一下canvas2D的优化,常用的display list、动态区域重绘等等。用canvas2D多的同学应该对以上的优化或多或少都有了解,但是你对webgl的优化了解么,如果不了解的话往下看就对了~这里会先从底层图像是如何渲染到屏幕上开始,逐步开始我们的webgl优化。

原文地址

在上篇《脚本错误量极致优化-监控上报与Script error》 中,主要提到了js脚本错误上报的方式,并讲解了如何使用 crossorigin 来解决 Script error 报错信息的方案,于是我们就可以查看到脚本报错信息了。而此时可能会遇到另一个问题:”JS 代码压缩后,定位具体出错代码困难!“。本篇《脚本错误量极致优化-让脚本错误一目了然》 将结合示例,通过多种解决方案逐一分析,让脚本错误 一目了然。

TAT.Johnny HTTP/2 Server Push 详解(下)
In Web开发 on 2017年04月20日 by view: 1,464
0

==============接上篇 HTTP/2 Server Push 详解(上)=================

译者注:上文介绍了 HTTP/2 Server Push 的基本概念和用法,下面继续深入实际使用的性能和考量。

如何分辨 Server Push 是否生效

目前,我们已经通过 Link 首部来告诉服务器推送一些资源。剩下的问题是,我们怎么知道是否生效了呢?

这还要看不同浏览器的情况。最新版本Chrome将在开发者工具的网络发起栏中展示推送的资源。

Chrome显示服务器推送的资源(大图

TAT.Johnny HTTP/2 Server Push 详解(上)
In Web开发 on 2017年04月18日 by view: 2,788
0

原文:https://www.smashingmagazine.com/2017/04/guide-http2-server-push/

作者:

译者按:网络优化一直是译者长期研究的方向,HTTP/2 的理论学习也已做了不少,随着这项标准的推进,越来越多特性被大家开始使用。作为 HTTP/2 最激动人心的特性,Server Push 在性能提升的效果被寄予了很高期望,却因其对传统 B/S 架构的开发模式影响较大未能广泛实践。如何更好地使用这项能力,让我们跟着作者深入探索~

========================译文分割线===========================

在过去的一年时间,HTTP/2 的出现为关注性能的开发者带来了显著的变化。HTTP/2 已经不再是我们期待中的特性,而是伴着 Server Push(服务端推送)能力已然到来。

除了解决常见的 HTTP/1 性能问题(比如,首部阻塞和未压缩的报头),HTTP/2 还提供了 Server Push 能力!服务端推送允许我们向用户发送一些还没有被访问的资源。这是一种获得 HTTP/1 优化实践(例如内联)所带来性能提升的优雅方式,同时也避免了原先实践的一些缺点。

本文中,你将了解什么是 Server Push,它的工作原理与解决了哪些问题。同时你也将学习如何使用它,判断它是否正常运作,以及它对性能的影响。让我们开始吧!

原文链接

—— 以webpack文档部署为例子

Overview

Some friends and I have been running webpack-china for a few months.
After a few months effort, most doc translation job have also been done. We keep tracking the master and you will see Chinese version does not lag behind too much.

pretty much the same and http2 is also applied

(pretty much the same and http2 is also applied)