JavaScript 是一种编程语言,主要用于网络浏览器创建动态和交互式用户体验。目前,互联网上许多不可或缺的功能和应用程序都是用某种形式的 JavaScript 编写的。
JavaScript 最早的版本是在 1990 年代末期为 Netscape Navigator 浏览器开发的。当时,网页大多是静态的,除了点击链接加载新页面外,几乎没有用户交互。JavaScript 首次实现了页面上的动画、适应性内容和表单验证等功能。
多年来,JavaScript 只能在少数几个浏览器上运行。直到较晚的时候,微软的 Internet Explorer 才开始支持 JavaScript。在此之前,微软创建了自己的专有客户端脚本 JScript。在早期的 Web 开发中,希望创建动态网站的程序员经常被迫在不同的浏览器家族之间做出选择,这使得互联网的普遍可用性受到了影响。
直到 1999 年,JavaScript 才成为标准化语言并被广泛采用。即便如此,浏览器兼容性问题在接下来的十年里仍然是一个问题。
JavaScript 是一种所谓的客户端脚本语言。大多数 Web 应用程序,例如搜索引擎,之所以能够运行是因为用户设备(如计算机、手机或平板电脑)与远程服务器之间的交互。远程服务器上的软件向客户端(即用户的机器)发送信息,客户端上的软件读取这些信息并在屏幕上渲染网页。
客户端脚本是一种完全在客户端机器上执行任务的编程语言,不需要与服务器交互即可运行。例如,如果你在电脑上加载了一个网页,而你的互联网服务中断了,你仍然可以与已经加载到浏览器中的网页进行交互。但是,你将无法导航到新的网页或访问任何远程数据。
JavaScript 可以执行的一些动态网站增强功能包括:
- 自动完成功能
- 在不重新加载页面的情况下加载新内容或数据
- 滚动效果和下拉菜单
- 页面元素的动画,如渐隐、缩放或重定位
- 播放音频和视频
- 验证来自 Web 表单的输入
- 修复浏览器兼容性问题
虽然 JavaScript 是一种客户端语言,但它的许多强大特性涉及与远程服务器的异步交互。异步意味着 JavaScript 能够在后台与服务器通信,而不会中断前台的用户交互。
以搜索引擎为例。今天,几乎所有的搜索引擎都有自动完成功能。用户开始在搜索框中键入单词,下面会出现一个可能的搜索词或短语列表。这个体验是无缝的,建议的搜索词在不重新加载页面的情况下出现。
在后台,JavaScript 读取用户键入的字母,将这些字母发送到远程服务器,然后服务器返回建议。
服务器端的软件分析单词并运行算法来预测用户的搜索词。这些程序非常庞大且复杂。客户端机器上的 JavaScript 尽可能简单和小,以避免减慢用户的交互速度。JavaScript 与服务器端程序之间的通信受到用户带宽的限制。这就是为什么开发者在 JavaScript 功能中优先考虑效率,并尽量减少程序间的数据通信量。
只有当用户选择了搜索词之后,整个页面才会重新加载并生成搜索结果。像 Google 这样的引擎甚至减少了这一步骤的重新加载需求,它们只是使用相同的异步过程生成结果。
虽然 JavaScript 不是互联网上唯一的客户端脚本语言,但它是最早出现的语言之一,并且至今仍是使用最广泛的。许多开发者认为 JavaScript 效率低下且难以捉摸,因此多年来对其进行了许多改进。创新的程序员创建了 JavaScript 库,这是一种由 JavaScript 构建块构建的更简洁的语言,它们更简单且可以针对特定的应用进行定制。
例如,jQuery 是一个简化和扩展了许多 JavaScript 动画和交互功能的 JavaScript 库,而 Backbone.js 则使响应式设计更加容易。
随着开发者在应用程序中构建更多的交互性和复杂性,JavaScript 已经成为互联网体验不可或缺的一部分。搜索引擎、电子商务、内容管理系统、响应式设计、社交媒体和手机应用程序如果没有 JavaScript 将无法实现。