Javascript 最初是作为一种向网页添加客户端表单验证和少量动态用户交互的方式。然而,现代 Javascript 是一种非常强大的语言(也有很多烦恼),它可以在浏览器或服务器上运行(使用类似Node.js的东西)。现代浏览器提供了许多仅适用于 Javascript 的 API(除非并且直到其他语言如 Dart 得到普遍支持),例如 Web Workers、Canvas、Web GL、Web Audio API、XMLHTTPRequest(即 AJAX)、计时器、事件等。
浏览器的旧概念是能够下载和呈现静态 HTML 标记文档的程序。现在将浏览器视为主要用于执行 Web 应用程序的操作系统 + 库 + API 更为有用。换句话说,现代网络浏览器的主要目的是执行 Javascript 并为 Javascript 提供 API。HTML 的主要目的是指定要加载的初始 Javascript 文件以启动 Web 应用程序。HTML 和 CSS 也可用于定义 DOM 树的初始状态(Javascript API 的可见部分)。但是,您可以使用 HTML 和 CSS 静态指定的所有内容,也可以使用 Javascript 动态生成。
在这种情况下,WebSockets 是浏览器中的一种 API,它使 Web 应用程序(即在浏览器中运行的 Javascript 程序)能够与 WebSocket 服务器建立低延迟的双向通信通道。
更新:
他们为什么不直接说“WebSockets 在 Javascript 版本 xxx 中可用”?
- Javascript 不仅适用于 Web(例如 Node.js),而且这些 API 也不仅仅适用于 Javascript。例如,如果你有一个启用了 Dart 的 Chrome 版本,那么这些相同的 API 可以从 Dart 中获得。script 标签允许使用其他语言,因此未来的浏览器可能会运行可以访问这些 API 的其他语言。
- Javascript 是由ECMA定义的语言,WebSockets、Web Workers 等是由W3C定义为 HTML5 的一部分的浏览器 API。浏览器版本决定了哪些 Web API 可用以及 Javascript 的版本。您的浏览器可能使用支持新 API 的旧版 Javascript,反之亦然。