这篇文章与是否放弃老版本 IE 支持毫无关系,你们(或你个人)必须要根据网站或应用程序的具体细节来做出决定。
在本节中,我们将对 JavaScript 特性,相关 API 及其功能进行讨论。 他们都有什么共同点? 它们都不能用于老版本 IE,因为它们都需要使用各种插件或者通过各种其他框架和库(如果可以做到的话)才能达到想要的效果。但在当前的环境(IE11 + Edge)中,它们有本机内置的浏览器的支持,所以可以直接使用。
Base64 是一种非常有用的web工具。许多人可能已经在使用,将字体或图像嵌入 CSS。 另一个常见的用法是,用其处理那些通常会干扰传输协议的各种资源。HTTP 基本认证提供了一个很好的例子,其用户名和密钥对使用 Base64 打包,然后发送到服务器。在本机支持编码/解码操作意味着它们会更有效率。 以下是一些资源,您可以从这些资料开始了解:
在数据库管理系统中,二进制大对象(Binary Large Object)或者 BLOB 是按照单个实体存储的原始数据进行集合。它可以是以 Base64 格式存储的音频剪辑或图像,也可以是单纯的一系列图像。在多数情况下,Blob 字段用于存储下使用正常的表结构数据或者或模式表数据,例如 JSON 对象。有些人可能只记得 BlobBuilderBlob,而不是接口的原型。既然这种方法既然已被弃用,那么,我比较推荐通过新的接口完成对 Blob 的所有操作。
另外,因为这个集合与文件非常相似,所以 Blob 对象的本地接口已被用作 File() 接口的父类。因此,它有一个很好的功能名字是“Blob URL”,其允许开发人员为 blob 对象创建 URL,这个 URL 可以在任何地方使用。考虑到这一点,非常庆幸原生支持现在能覆盖所有的主流浏览器。
BLOBs on MDN(MDN 上的 BLOB)
BLOB URLs on MDN(MDN 上的 BLOB URL)
An Introduction To JavaScript Blobs and File Interface(JavaScript Blobs 和 File接口概述)
通常情况下,为了避免大量的安全隐患,两个不同浏览器上下文中的脚本是不能互通的。有时候,这样的通信并不是因为想要,而是需要。这就是信道产生消息(Channel Messaging) API 的原因。这个接口允许两个脚本通过一个双向通道进行通信。这就像是使用同一个信道使用对讲机的双方。很优雅,不是吗?
An Introduction to HTML5 Web Messaging on Dev.Opera(在 Dev.Opera 上的 HTML5 Web 消息)
MessageChannel on MDN(MDN 上的 MessageChannel)
const 和 let 是 ES6 定义数据的两个新方法。与 var 用于定义全局和函数范围内的变量不同,这两个新的数据定义是块级的。换句话说, const 和 let 定义的变量的作用域是在定义它们的两个大括号之间。
使用 let 定义变量与以前的定义方式没多大区别(除了作用域不同)。常量(const 定义的)是只读的,引用着一个确定的值,不能被重新赋值,不能被重新定义,它的名字也不能被同一个作用域内的其它变量或函数使用。唯一的例外是,引用一个拥有自身属性的对象。这些属性不受保护,可以改变,就跟普通的变量一样。
如果想在代码中正确使用常量和块级变量,应该看看这些:
Constants on MDN(MDN 的常量)
Let on MDN(了解 MDN)
Preparing for ECMAScript 6: let and const on SitePoint(准备 ECMAScript 6:SitePoint 上的 let 和 const)
ES6 let VS const variables by Wes Bos(ES6 通过 Wes Bos 实现 VS const 变量)
多数前端开发者都会同意 Web 控制台是手边最常用的工具之一,如果脚本没有按预期运行,通常会使用它。然而 IE 的性质决定了将这一特性整合在代码中是个漫长的过程,只有从 10 这个版本开始才对它提供完整的支持。如果你想了解相关的知识,或者想找到一些使用控制台的新方法,看看这个:
Console on MDN(MDN 上的控制台)
跨域资源共享 (CORS) 是一个 HTML5 的 API,它允许访问来自当前所有域名之外的资源。它引入了一组 HTTP 头,允许浏览器和服务器通过一个特定的许可请求远程资源。下面的资源对于学习如何正确使用这个功能是个很好的起点:
DOM Access Control Using Cross-Origin Resource Sharing on Dev.Opera(使用 Dev.Opera 跨源资源共享的 DOM 访问控制)
HTTP access control(CORS) on MDN(MDN 上的 HTTP 访问控制(CORS))
An In-depth Look at CORS on SitePoint(深入了解 SitePoint 上的 CORS)
如今,安全和隐私是两个最热的特性,对于任何应用来说都是如此。这意味着好(而且快)的加密技术很受欢迎。目前所有主流浏览器都一致支持 Web 加密 API,除了 IE11(它实现了旧一些的规范)和 Safari(需要 crypto.webkitSubtle)。幸好某些特定的功能(比如产生随机数的功能)有更好的实现。因此,和以往任何时候相比,都更容易通过原生支持实现加密元素。下面是一些不错的参考:
Crypto object on MDN(MDN 上的加密对象)
getRandomValues on MDN(MDN 上的 getRandomValues)
Web Cryptography API shim for legacy browsers on GitHub(用于 GitHub 上的旧版浏览器的 Web Cryptography API shim)
如今,无处不在的互联网为你的网站带来世界各地的访问者。人们总是相信自己熟悉的东西,因此比较好的做法是把信息都按他们的语言和习惯的格式来提供。这就是国际化(Internationalization,或叫 i18n)和本地化(Localization,或叫L10n)存在的意义。你是否觉得难以区分?让我们引用Aurelio de Rosa 文章,如何在 JavaScript 中实现国际化(i18n),中的一段话:
国际化 (也叫 i18n) 是对产品或服务进行创造或转换的一个过程,这个过程使用产品或服务易于适应特定地域的语言和文化。本地化(也叫 L10n)这个过程是将国际化的软件适配到特定的区域或语言。换句话说,国际化是让你的软件能支持多种文化(货币格式、日期格式等),而本地化是实现其中一种或多种文化的过程。
浏览器的支持略好于年初的时候,Safari 9月发布的 v10 开始加入支持。有兴趣吗?这里有一些资源:
Internationalization API on MDN(MDN 上的国际化 API)
JavaScript Internationalization API – a simple introduction(JavaScript 国际化 API - 简单的介绍)
How to Implement Internationalization (i18n) in JavaScript(如何在 JavaScript 中实现国际化(i18n)
响应式网页设计是高性能网站设计的当前标准,其中促成这个最核心的特性是支持多媒体查询。matchmedia 把媒体查询从 CSS 带入到 JavaScript 中,为开发人员针对不同类型的设备做内容方面优化提供了诸多便利性。一个很好的例子是在手机和平板电脑上来回切换横屏和竖屏模式。虽然有一个 API 可以检测设备方向,但仅部分浏览器的支持,而只有 Microsoft Edge 提供了完全支持。 以下是一些资源,可以帮你从这个主题开始:
Testing Media Queries on MDN(在 MDN 上测试多媒体查询)
Window.matchMedia on MDN(MDN 上的 Window.matchMedia)
How to use Media Queries in JavaScript on SitePoint(如何在 SitePoint 上基于 JavaScript 使用多媒体查询)
媒体源扩展(MSE)增加了对视频和音频元素额外的扩展功能,且不需要插件。这为你提供了诸如自适应媒体流,实时媒体流,拼接视频,和视频编辑等功能。2013 年 9 月,YouTube 就在他们的 HTML5 播放器上使用了 MSE。 在浏览器的支持上也是很好的,仅仅只有 iOS Safari 和 Opera Mini 错过了这个功能。在 Windows 8+ 上,IE11 已经能完全支持这个功能。不幸地是,IE11/Win7 用户不能从这项技术上受益。你是否准备好开始在这些 API 上工作,如果是的话,下面这些资源将会很有用:
MediaSource API on MDN(在 MDN 上的 MediaSource API)
Media Source Extensions on MSDN(在 MSDN 上的媒体源扩展)
HTML5 Media Source Extensions: Bringing Production Video To The Web on Smashing Magazine(HTML5 媒体源扩展: Smashing 杂志 —— 在 Web 上产生视频)
2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务