智能手表■从脚本到主流,JavaScript的扶正之路( 二 )


JavaScript的真正限制是沙盒 , 严格控制的环境 , 可将代码固定在适当的位置 。 沙箱将JavaScript与桌面世界隔离开来 。 例如 , JavaScript代码无法直接访问文件系统 , 显示器或任何硬件 。 更严重的是 , 它切断了JavaScript与Web服务器上所有内容的联系 , 例如存储用户列表和产品目录的数据库以及运行业务逻辑的服务器端代码 。 JavaScript被迫独自战斗的一线 , 但是也是整日忙忙碌碌而无所事事 , 只能旋转Web页面上的按钮 。
第三章 反叛:Ajax和XMLHttpRequest然而幸运的是微软并没有对JavaScript产生多大的敌意 , 也在IE中保留了它 。 并打算以\"拥抱 , 扩展和扑灭\"的理念消耗竞争对手 。
当时Microsoft的一个团队正在研究一种使Outlook的Web前端响应速度更快的方法 。 他们正在构建一个名为Outlook Web Access的产品 , 看起来像这样:
微软团队的目标是相对适度的 。 他们想开发一个在浏览器中运行的高效电子邮件阅读器 。 最重要的是 , 他们不想每隔几秒钟刷新一次整个页面 。 取而代之的是 , 他们采用的是一种允许网页在后台静默检查新邮件的技术 。 这个目标现在看来似乎并没有啥大不了 , 但请记住那个年代Gmail还没有出现呢 , 谷歌也才刚刚出现 , 没有啥名气 。
微软团队使用一种被称为XMLHttpRequest的ActiveX组件创建了一些管道 。XMLHttpRequest的基本思想很简单:它为JavaScript代码提供了一种进行Web请求的方法 。 就像浏览器可以联系网络服务器并发出请求(例如 , \"嘿 , 请给我一个页面!\")一样 , JavaScript代码也可以使用XMLHttpRequest对象发出自己的请求(例如 , \"嘿 , 请再给我发送一些邮件\") 。
突然之间 , 潘多拉魔盒被打开了 , Web页面开始可以调用Web服务器的所有资源:
需要数据库中的一些数据吗?调用服务器并查询 。
服务器需要执行计算 , 安全测试 , 超级机密验证检查吗?也请调用服务器 。 、最重要的是 , 在后台进行调用时 , 页面显示不会受到影响 。
但是XMLHttpRequest也有很多问题 。 首先 , 它的名称很奇怪 , 大小写不一致 , 导致区分大小写的语言(例如JavaScript)很头痛 。
其次 , 就像它名字表明的一样请求发送和接收使用XML消息 。 现实情况是 , 消息几乎可以是任何东西 , 普通文本 , HTML块或序列化为JSON的JavaScript对象 。 但是最大的问题当属的XMLHttpRequest的的支持技术 。 它是用ActiveX构建的 , 这样它只支持在Windows计算机上运行 , 只能在Internet Explorer中运行 。
这些怪癖都没有阻止它 。 在短短的几年内 , 其他浏览器都提供了自己的XMLHttpRequest实现-代码中的相同对象 , 但没有ActiveX麻烦 。
尽管微软创建了XMLHttpRequest , 但是并没有在自己的Web开发得到充分利用它 。 甚至在 , 他们后续的公共Web的电子邮件系统Hotmail中也没有使用 。
相反 , 是谷歌首先利用XMLHttpRequest技术开发出了让世界震惊的Web产品 。 谷歌首先在2004年使用开发了公共Web邮箱Gmail;
接着 , 次年又开发出了Google Maps 。
这两个伟大的产品开始让XMLHttpRequest和Ajax技术大放异彩而流行于世 。
第五章 扶正:通往现代的道路XMLHttpRequest是改变JavaScript进程的关键要素 。 但是 , 此后还有很多拐点 。
多年以来 , JavaScript语言一直处于冻结状态 。 市场领先的IE浏览器要伴随着操作系统升级而升级 , 版本迭代非常缓慢 。 开发人员被迫要编写大量的脚本检查不同IE浏览器版本来进行适配 。
在2006年 , 开发人员通过使用jQuery框架 , 获得了形式上的统一解决方案 。 尽管jQuery在今天已经过时了 , 但是10年前 , 如果把真正的时间用在构建功能而非解决浏览器兼容性的问题上时 , 这是必不可少的工具 。