使用 iframe 获取网页片段的一个好处

作者:realazy 来源:realazy 时间:2008-12-01 12:37:00 

异步操作数据的方式有两种常见的方式:XMLHttpRequestiframe. 孰优孰劣在此我们不争论,只是想举一个例子说明在获取网片片段上,使用 iframe 有一个比 XMLHttpRequest 更易企及的好处。

Ajax 常见的一种使用方法是加载网页片段填充某个区域。假设我们要在网页 foo.com/index 上请求 foo.com/partial。我们假设 partial 就是 HTML,不涉及 JSON 或 XML 格式。在这种情况下:

  1. 使用 XMLHttpRequest 直接访问 partial,获取 responseText 后赋予 index 页面上某个元素的 innerHTML 即可完成。partial 必须是一个纯粹的 HTML 片段(基于以上假设)。

  2. 在页面上创建一个隐藏的 iframe, 使用 iframe 的 src 请求 partial, partial 可以作为一个完整的页面,里面包含 JavaScript,由 partial 里的 JS 完成替换 index 上页面片段替换。

第二种看起来更繁琐,但能给我们更多控制权。例如,假如用户直接访问 foo.com/partial(这种情况很容易发生,假设您是 unobtrusive 的拥护者,机会更大,例如需要点击网页上的链接更新某部分内容时,用户使用新窗口打开了改链接), 你希望她看到的是什么内容呢?

在第一种情况中,用户看到的是代码片段,绝大部分下没有任何样式,也没有任何额外提示,导致用户体验的下降。因为只是一个 HTML 片段,你什么事都干不了。

但在第二种情况下,用户看到内容可能也只是 HTML 片段,但这却是一个完整的页面,一个可以执行 JS 的完整页面。我们只需检查这个页面的 parent 对象有没有我们预设的值,就可以判断它是不是在 iframe 之内了,然后我们可以让它跳转到正常的页面。

Demo: http://realazy.org/lab/xhrvsiframe/

标签:iframe,XMLHttpRequest,框架,ajax
0
投稿

猜你喜欢

  • 网马解密大讲堂——网马解密初级篇

    2009-09-16 14:45:00
  • asp实现将人民币数字改为大写

    2008-05-21 14:08:00
  • 科讯CMS编辑器会自动更改代码

    2008-12-12 13:00:00
  • 并行查询让SQL Server加速运行

    2009-03-16 16:31:00
  • 解决ASP执行DB查询中的特殊字符问题

    2008-09-02 12:16:00
  • "模板化"——限制还是激发

    2009-03-26 11:36:00
  • 如何在服务器端调用winzip命令行对文件压缩和解压

    2008-01-26 20:44:00
  • ASP图片分页代码 (通用)

    2009-06-22 12:57:00
  • JavaScript 各种动画渐变效果

    2008-09-02 10:38:00
  • block 和 inline 答案揭晓~ 另付一则,关于 word-break

    2009-12-08 13:06:00
  • 隐藏修改文件时间和文件属性的ASP脚本

    2011-03-17 11:15:00
  • Dojo Style Javascript 编程规范

    2007-10-25 17:24:00
  • 前端优化,让你的网页显示的更快更流畅

    2009-06-08 13:09:00
  • 完全卸载MYSQL

    2011-02-23 12:11:00
  • 对设计文档的一点小看法

    2010-03-15 12:30:00
  • css清除浮动的方法总结与选择

    2008-06-06 12:58:00
  • ORACLE实例的后台进程

    2009-09-30 10:28:00
  • 像表格一样用DIV+CSS给网页布局

    2008-10-18 15:45:00
  • 布局篇(1)—If you love css …

    2008-04-16 14:14:00
  • HTML邮件的又一点思考

    2009-05-06 13:33:00
  • asp之家 网络编程 m.aspxhome.com