隐藏 iframe 技术——Ajax 时代一个重要的环节

本文内容

虽然现在的 Ajax 框架很多,直接用就好了,但还是有必要了解一下它内部的实现机制。

  • 促使 Ajax 产生的 Web 技术演化
  • 隐藏帧技术
  • 隐藏 iframe 技术

 

促使 Ajax 产生的 Web 技术演化

  • 超文本和 URI
  • HTML
  • JavaScript
  • frame
  • 隐藏帧技术(frameset)
  • DHTML 和 DOM
  • 隐藏 iframe 技术
  • XMLHttp 和 XMLHttpRequest

超文本和 URI,通俗一点就是文本和链接,只是为了创建一个彼此关联的信息网,毕竟,当初它的产生只是了科技人员之间交流最新的科研成果。因此,第一版的 HTML 完全不能构建交互性很强的 Web 应用程序。

那么,接下来我们要做什么?显然,要增强 HTML 信息的格式化和显示能力。于是有了 JavaScript。开发人员第一次能够干预页面与用户之间的交互。在静态页面时代,没必要这样做,也做不了啊。没有 JavaScript,一切都要靠服务器端,即便是一些再简单不过的工作,比如验证用户输入。

接下来——帧(frame)。帧的理念是使一个页面能够分成几个独立的文档。而 HTML 最初版本是将每个文档都看作是独立的,直到 HTML 4.0 版,帧还没有被正式引入。试想,如果你在一个页面里嵌入一个 frame,而这个 frame 指向另一个页面,那么,当用户操作 frame 里边的页面给服务器,并获得服务器的响应后,将会发的内容嵌入到之前的页面。这就是一个异步啊——这还仅仅是个开始而已,离 Ajax 还远。

但有 frame 貌似还不够,要是能将 frame 组织起来就更好了。因此,隐藏帧技术是客户端/服务器端通信的一种有效工具。隐藏帧技术配置一个帧集(frameset)。隐藏帧技术是 Web 应用系统第一个异步请求/响应模型。然而这只是第一个 Ajax 通信模型,另一个技术的发展已经不远了。

直到1996年前后,Web 的主流还是静态页面。尽管 JavaScript 和隐藏帧技术能够使用户交互更具活力,但除了重新加载页面外,我们还没有改变页面内容显示的方法——DHTML 和 DOM。DHTML 使得开发人员能通过 JavaScript 修改已经载入页面的任何部分。将 DHTML 和隐藏帧技术结合起来,意味着可以随时根据服务器的信息来更新页面的任何部分,这才是Web开发一次真正的范型转变。与 DHTML 只追求修改页面的某个部分不同,DOM 的目标更加宏伟:为整个页面提供一个标准结构,对该结构的操作将使得修改 DHTML 风格的页面成为可能——这是向 Ajax 发展的下一个重要步骤。

隐藏帧技术实现了异步请求/响应,但它存在不足:必须提前计划,为可预见的隐藏帧设置帧集。1997年,