理解 JavaScript 中的继承

继承应该是面向对象编程中讨论最多的话题之一了。绝大多数的面向对象(Object-oriented)语言都有类的概念,并且这些语言也都是通过类来实现继承的。而 JavaScirpt(ECMAScript) 中实际上是没有类这个概念的,即便现在 ES6 中引入了 class 这个关键字,但它其实也仅仅只是一个语法糖而已,与… 【阅读全文】

JavaScript 中的事件委托

JavaScript 中一个重要的方法就是事件委托(又叫事件代理)。事件委托将事件侦听器添加到一个父级元素上,这样就只用添加一次事件侦听器,可以避免向 (父级元素内)很多特定的 DOM 节点添加多个事件侦听器,减少了内存消耗,从而优化程序性能。而这个添加在父元素上的事件侦听器通过事件冒泡的事件流机制以分析查找子元素的匹配项。事… 【阅读全文】

利用 Notifications API 展示桌面消息通知

Notifications API 允许 Web 应用程序在系统级别发送在页面外部显示的通知,这样即使浏览器应用处于空闲或在后台运行,Web 应用程序也可以向用户发送信息,是与用户互动的一种非常强大的方式。并且在操作系统的通知管理器中会一直保存消息,用户可以在消息通知显示后再次查看。操作系统的通知系统当然会因平台和浏览器而异,但… 【阅读全文】

认识 HTTP 中的状态码

在 《认识 HTTP 报文》一中,介绍相应报文首部中都包含了相应的状态码。那么,这个响应状态码究竟是做什么的呢?今天就来介绍一下 HTTP 中的状态码。

状态码的作用或者说是职责就是当客户端向服务器端发送请求时,描述返回请求的结果。通过状态码,用户可以知道服务器是否正常处理了请求。状态码如 200 OK,以 3 位数字和原因短语组成。例如… 【阅读全文】

认识 HTTP 中的多部分对象集合

当我们在写电子邮件的时候,可以在邮件中编写文字和添加多个附件。这是应为电子邮件中采用了 MIME(Mulitpurpose Internet Mail Extensions – 多用途英特网邮件扩展)的机制。允许邮件处理文本、图片和视频等多种类型的数据。在 MIME 扩展中会使用称为多部分对象集合(Mulitpart)的方… 【阅读全文】

认识 HTTP 中的内容协商机制

HTTP 中的内容协商机制(Content Negotitation)是指客户端和服务器端就响应的内容进行交涉,然后服务端提供给客户端最为合适的资源。内容协商会以响应资源的语言、字符集、编码方式等作为判断基准。

仅仅看内容协商机制的定义,可能还不是很清楚它到底是什么。举例来说,浏览器会根据自己默认语言(我的为中文),在访问某… 【阅读全文】

认识 HTTP 报文

HTTP 报文是用于 HTTP 协议交互的信息。请求端(客户端)的 HTTP 报文叫做请求报文,响应端(服务端)的则叫做响应报文。HTTP 报文本身是由多行(用空行:CR + LF 作为换行符)数据构成的字符串文本。

HTTP 报文大致可分为报文首部和报文主体两块,两者之间由空行(CR + LF)分割开。但 HTTP 报文也可以没有主体,只有报文首… 【阅读全文】

认识 HTTP/1.1 协议中使用的方法

在 HTTP/1.1 协议所有可以被使用到的方法中,相信大家最熟悉的就是 GET 和 POST 这两个方法了。其实,除了 GET 和 POST 方法之外,在 HTTP 1.1 协议中还有很多其它的方法,例如:PUT、DELETE、HEAD、OPTIONS 等等。这些不同方法的作用在于,可以指定请求的 URI 资源按期望产生某种行为。本文就来介绍一下 H… 【阅读全文】