zoukankan      html  css  js  c++  java
  • [Web] 被遗忘的知识点 iFrames(HTML)过时了没有?

    前言


    关于iFrame是否过时的争论从未停息,我曾狂恋过她、也曾憎恶过她,但是最近项目中关于她的一番折腾,那我开始心平气和地去看待她,她不好也不坏就在那里,用与不用全在于你。
    这篇文章我不想发表什么观点,只是想汇总展示一下别人对她的一些观点,希望对大家有所启发。

    问题提出:


    听说iFrame已经过时了,真希望这不是真的,难以想象不再使用她的后果如何。我想提出下面两个问题,希望大家能探讨一下:
    1、为什么iFrame标签会过时?
    2、如果iFrame标签过时了,使用什么方法去替代她?

    问题回答:


    A:我认为W3C在DOCTYPE为Strict HTML和XHTML文档里面实际已经将iframe排除在外。理论上来说,你可以使用<object>元素来添加一些外来的对象到你的文档里面,但是跨浏览器开发的限制使得对许多开发人员来说,这种开发变得不可取。但是一个好消息是在HTML 5中,iFrame又回来了,并且多了两个新的属性 seamless 和 sandbox。
    B:HTML 5里面依旧支持iframe,所以我认为在可以预见的未来,iFrame不会过时。回答一下你的其它两个问题:
      1、iframe大部分时候并不是友好的:很难通过URL获取iframe的内容、大多数"技术恐惧"的用户讨厌frames、相对而言浏览器渲染iframe效率更低
      2、至于替代,你不但可以使用动态页面(SSI, PHP, Rails等)生成,或者可以使用JavaScript、AJAX去改变内容。
      声明一点:我们这儿讨论的iFrame是一个接口元素(interface element),并不是一个隐藏元素(hidden element)用于加载其它东西。
    C: iFrame对于页面的布局来说是过时的了。永远不要用iFrame进行布局,你可以使用很好的CSS布局,甚至table-based布局也比iFrame布局好。至于何时使用iFrame,我总结了两点如下:
      1、ads:通常加载一些页面广告就是使用这种技术的,iFrame可以封装好广告页面,使广告页面的CSS不会影响你的整体页面
      2、hidden iframe:使用其可用来做很多有用的事情,比如追踪(Tracking)、替代AJAX等。
    D:我之前的公司,我们提供一个主机应用程序(HOST Application),客户然后将我们的主机应用程序整合到她们自己的网站。通常,他们都会使用一个iFrame来做这件事情,将我们的主机应用程序页面调整后集成到他们的页面中。有时这样做起来甚至可以达到无缝集成的效果,我认为有时iFrame标签很有用的。

    小结:


    前段时间项目中iFrame的使用很频繁,由于在网页中效果还算不错,就没有多加思考,但随着项目的进展,发现iFrame在Mobile客户端的webview里面效果很差,甚至不起作用,不得以我们开始大动干戈地将iFrame一个一个的替换掉。至此我想iFrame是好是坏,我们大可不必过多去想,我们要做的是了解清楚它的方方面面,有选择有针对的去使用她。

  • 相关阅读:
    Open source cryptocurrency exchange
    Salted Password Hashing
    95. Unique Binary Search Trees II
    714. Best Time to Buy and Sell Stock with Transaction Fee
    680. Valid Palindrome II
    Java compiler level does not match the version of the installed Java project facet.
    eclipse自动编译
    Exception in thread "main" java.lang.StackOverflowError(栈溢出)
    博客背景美化——动态雪花飘落
    java九九乘法表
  • 原文地址:https://www.cnblogs.com/youngC/p/2942548.html
Copyright © 2011-2022 走看看