ServiceWorker 缓存与 HTTP 缓存

2022-04-21
阅读 5 分钟
3.2k
虽然 ServiceWorker 和 PWA 正在成为现代 Web 应用程序的标准,但浏览器资源缓存变得比以往任何时候都复杂。 本文涵盖了浏览器缓存的重点内容,具体包括:

如何构建可控,可靠,可扩展的 PWA 应用

2022-04-20
阅读 12 分钟
6.3k
PWA (Progressive Web App)指的是使用指定技术和标准模式来开发的 Web 应用,让 Web 应用具有原生应用的特性和体验。比如我们觉得本地应用使用便捷,响应速度更加快等。

微信小程序路由实战

2021-03-21
阅读 8 分钟
7.8k
欢迎来到我博客阅读:BlueSun - 微信小程序路由实战0. 目录1. 前言2. 智能路由跳转 — Navigator 模块3. 虚拟路由策略 — Router 模块4. 落地中转策略 — LandTransfer 模块4.1. 对于要解决的第一个问题:统一的落地页4.2. 对于第二个要解决的问题:短链参数4.3. LandTransfer 模块设计5. 更好的开发体验5.1. Typescript + ...
封面图

Module Seed: 一套优雅的 Github 工作流

2021-01-28
阅读 5 分钟
4.3k
平时喜欢写一些 NPM 模块,写得多了,整理出一套工作流,解放一些重复的搭建工作。 如果你喜欢,请直接拿去用,也可以参照该项目的一些 Feature ,给你一些提示与帮助。

函数保险丝:避免函数过热调用

2021-01-28
阅读 2 分钟
1.1k
前言在日常开发中,我们会遇到很多这样的场景:在抢购活动中,用户往往会频繁刷新接口,要给接口加上防护,频繁调用停止响应。在弱网环境中,往往会实现失败重试功能,如果失败次数多了,频繁的重试需要制止。在股票市场中,当价格波动的幅度在交易时间中达到某一个限定的熔断点时,对其暂停交易一段时间的机制。.........

微信小程序登录的前端设计与实现

2020-10-19
阅读 15 分钟
19.7k
欢迎来我的博客阅读:「微信小程序登录的前端设计与实现」」一. 前言对于登录/注册的设计如此精雕细琢的目的,当然是想让这个作为应用的基础能力,有足够的健壮性,避免出现全站性的阻塞。同时要充分考虑如何解耦和封装,在开展新的小程序的时候,能更快的去复用能力,避免重复采坑。登录注册这模块,就像个冰山,我们以...

理解 TCP(五):可靠性交付的实现

2017-03-02
阅读 3 分钟
4.7k
TCP 是一种提供可靠性交付的协议。 也就是说,通过 TCP 连接传输的数据,无差错、不丢失、不重复、并且按序到达。 但是在网络中相连两端之间的介质,是复杂的,并不确保数据的可靠性交付,那么 TCP 是怎么样解决问题的? 这就需要了解 TCP 的几种技术:

理解 TCP (六):网络编程接口

2017-03-02
阅读 7 分钟
3.8k
我们已经知道网络中的进程是通过 socket 来通信的,那什么是 socket 呢? socket 起源于 UNIX,而 UNIX/Linux 基本哲学之一就是「一切皆文件」,都可以用「open → write/read → close」模式来操作。 socket 其实就是该模式的一个实现,socket 即是一种特殊的文件,一些 socket 函数就是对其进行的操作。

理解 TCP(二):报文结构

2017-03-02
阅读 3 分钟
10.9k
什么是报文? 例如一个 100kb 的 HTML 文档需要传送到另外一台计算机,并不会整个文档直接传送过去,可能会切割成几个部分,比如四个分别为 25kb 的数据段。 而每个数据段再加上一个 TCP 首部,就组成了 TCP 报文。 一共四个 TCP 报文,发送到另外一个端。 另外一端收到数据包,然后再剔除 TCP 首部,组装起来。 等到四...

理解 TCP(三):连接的建立和释放

2017-03-02
阅读 3 分钟
3.2k
更好阅读体验:《理解 TCP 和 UDP》— By Gitbook TCP 的整个交流过程可以总结为:先建立连接,然后传输数据,最后释放链接。 三次握手,建立连接 TCP 连接建立要解决的首要问题就是:要使每一方能够确知对方的存在。 三次握手就像,在一个黑暗的森林,你知道前方十点钟方向好像有人。 你喊了一句:Hello?I'am JerryC,W...

理解 TCP(四):状态流转

2017-03-02
阅读 1 分钟
3.1k
更好阅读体验:《理解 TCP 和 UDP》— By Gitbook 无论客户端还是服务器,在双方 TCP 通讯的过程中,都会有着一个「状态」的概念,状态会随着 TCP 通讯的不同阶段而变化。 TCP 状态流转图 各种状态表示的意思 CLOSED:表示初始状态 LISTEN:表示服务器端的某个 socket 处于监听状态,可以接受连接 SYN_SENT:在服务端监听...

理解 UDP

2017-03-02
阅读 3 分钟
10.3k
TCP 在传送数据之前必须先建立连接,数据传送结束后要释放连接。 TCP 不提供广播或多播服务,由于 TCP 要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销,如确认、流量控制、计时器以及连接管理等。

理解 TCP(一):端口

2017-03-02
阅读 2 分钟
4.3k
我们知道两个进程,在计算机内部进行通信,可以有管道、内存共享、信号量、消息队列等方法。 而两个进程如果需要进行通讯最基本的一个前提是能够唯一的标识一个进程,在本地进程通讯中我们可以使用 「PID(进程标识符)」 来唯一标识一个进程。 但 PID 只在本地唯一,如果把两个进程放到了不同的两台计算机,然后他们要通...

Gulp 基础与原理

2017-02-28
阅读 4 分钟
6.3k
它的核心原理其实很简单,最主要是通过各种 Transform Stream 来实现文件的处理,然后再进行输出。Transform Streams 是 NodeJS Stream 的一种,是可读又可写的,它会对传给它的对象做一些转换的操作。

程序员如何保证「专注」与「效率」

2016-11-27
阅读 5 分钟
8.7k
简而言之,专注就是注意力分散的对立面。记得大学时候教我英语的老教授说过的一句,「知道为什么你们一直都学不好英语么,你们这一代人生活在一个太多诱惑的世界。」

你知道「编译」和「解释」的区别吗?

2016-11-21
阅读 4 分钟
11.6k
最近在看一些编译过程的知识点,看的比较多的是英文文献。在这之间经常遇到的两个单词让我着实迷惑:Compiler, Interpreter中文翻译分别是:编译器,解释器。

JavaScript 开发者所需要知道的 V8(一):V8 In NodeJS

2016-11-15
阅读 4 分钟
8.8k
JavaScript 是一款拥有「自动垃圾回收」功能的编程语言。市面上具有这样功能的语言,一般都是拥有相对应的虚拟机的,像 Java的JVM ,C#的CLR ,PHP的Zend。虚拟机一般实现了代码解析,内存的管理、布局、垃圾回收等功能。不像C/C++这种没有虚拟机的语言,它们需要手动管理内存。C/C++语言编译后的文件,是可以直接运行的。

了解 Nginx 基本概念

2016-10-14
阅读 6 分钟
5.4k
本篇是我学习Nginx的一些笔记,主要内容讲述了一些了解Nginx需要的基本概念。然后探讨一下Nginx的模块化的组织架构,以及各个模块的分类、工作方式、职责和提供的相关指令。主要达到以下目的:

何为技术人的核心竞争力

2016-08-30
阅读 3 分钟
6.5k
在寂静的夜晚上,独自一人在书房中,望着窗外,一片灯火阑珊,一条车水马龙。不禁让我抬头四十五度,望着那轮朦胧泛黄的新月,又开始思考起自己的人生。

打造高效个性Terminal(一)之 iTerm

2016-08-12
阅读 3 分钟
9.9k
作为一个集效率控、颜值控、强迫症患者标签于一身的患者,对待自己工作用到的Terminal,自然是诸多要求。本文首先会讲一下怎么弄一个高颜值、个性化的Terminal,然后再说说怎么利用一些工具来提高Terminal的效率。

打造高效个性Terminal(二)之 zsh

2016-08-12
阅读 4 分钟
12.3k
目前常用的 Linux 系统和 OS X 系统的默认 Shell 都是 bash,但是真正强大的 Shell 是深藏不露的 zsh, 这货绝对是马车中的跑车,跑车中的飞行车,史「终极 Shell」,但是由于配置过于复杂,所以初期无人问津,很多人跑过来看看 zsh 的配置指南,什么都不说转身就走了。直到有一天,国外有个穷极无聊的程序员开发出了一...

JavaScript 原型中的哲学思想

2016-06-28
阅读 4 分钟
12.2k
记得当年初试前端的时候,学习JavaScript过程中,原型问题一直让我疑惑许久,那时候捧着那本著名的红皮书,看到有关原型的讲解时,总是心存疑虑。

「理解HTTP」之常见的状态码

2016-05-24
阅读 3 分钟
16.6k
RFC2616记录的HTTP状态码有37种,再加上「WebDAV」(RFC4918、5842)和「Additional HTTP Status Codes」(RFC6585),数量就达到60多种。然并卵,这么多种HTTP状态码,其实常用的大概只有14种,本文就讲讲这14种状态码。

理解 CORS (Cross-Origin Resource Sharing)

2016-05-15
阅读 9 分钟
13.2k
跨站HTTP(Cross-Site HTTP Reuqest)请求,是指发起请求的资源所在域不同于该请求所指向资源所在域的HTTP请求。比如说,域名A(http://domaina.example)的某 Web 应用程序中通过<img>标签引入了域名B(http://domainb.foo)站点的某图片资源(http://domainb.foo/image.jpg),域名A的那 Web 应用就会导致浏览器发起一个...

NodeJS中被忽略的内存

2016-04-14
阅读 4 分钟
26.6k
原文链接:BlueSun | NodeJS中被忽略的内存如朴灵说过,Node对内存泄露十分敏感,一旦线上应用有成千上万的流量,那怕是一个字节的内存泄漏也会造成堆积,垃圾回收过程中将会耗费更多时间进行对象扫描,应用响应缓慢,直到进程内存溢出,应用奔溃。

My Toolkit of Node.js

2016-03-17
阅读 4 分钟
3.7k
Fast, flexible, and lean implementation of core jQuery designed specifically for the server.

基于RESTful API 怎么设计用户权限控制?

2016-03-17
阅读 3 分钟
9.7k
有人说,每个人都是平等的;也有人说,人生来就是不平等的;在人类社会中,并没有绝对的公平,一件事,并不是所有人都能去做;一样物,并不是所有人都能够拥有。每个人都有自己的角色,每种角色都有对某种资源的一定权利,或许是拥有,或许只能是远观而不可亵玩。把这种人类社会中如此抽象的事实,提取出来,然后写成程...

为什么使用Sails?

2016-03-17
阅读 5 分钟
4.8k
入手Node.js半年,从用Express开发自己的博客到用Sails开发公司项目,深深被Sails震撼了。Sails是Balderdash团队的产品,快速的项目构建、优秀的框架结构还有众多的扩展,让我有种相见恨晚的感觉。在Koa流行之前,个人认为Sails的用户量还是挺可观的。今天,我想写一写Sails那些让我感动的地方,顺便理顺一下Sails的架构。

如果你用GitHub,可以这样提高效率

2016-03-16
阅读 3 分钟
14.9k
但今时不同往日,现在我们有前端、后端、测试、运维、设计、产品、交互,成功集齐了七个兵种,可以召唤神龙,赐我们一个敏捷的开发团队。作为一个敏捷性的开发团队,我们要保持快速的迭代速度的同时保证高质量的代码,这是一个艰巨的过程。

何为语法树

2016-03-15
阅读 3 分钟
6.4k
假如现在你面前有一个物体,它是一个不规则的圆体,整个身体通红,头部还有一根细长稍微弯曲偏右呈棕色的圆柱体。 在中文我们称之为「苹果」, 在英文我们称之为「Apple」, 在日文中我们称之为「アップル」, 在法语中我们称之为「pomme」, 在德语中我们称之为「Apfel」, 无论用不同的语言,针对这个物体在文字上、发...