|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
HTML5草案的前身名为WebApplications1.0,于2004年被WHATWG提出,于2007年被W3C接纳,并成立了新的HTML工作团队。破洛洛文章简介:因为iframe利用上的这个特性,在一些网页中失掉了大批使用,也招致了一些不合适的滥用。破洛洛将剖析一下iframe这个网页元平素见的几种利用体例。
iframe标签在网页中能够创立一个内嵌框架,经由过程指定src属性来挪用另外一个网页文档的内容。和frameset一样,用它来对网页布局举行拆分以使网页的某些部分坚持公用,但绝对frameset对全部网页举行框架布局的拆分来讲,iframe加倍天真,能够内嵌到网页的恣意中央。因为iframe利用上的这个特性,在一些网页中失掉了大批使用,也招致了一些不合适的滥用。破洛洛将剖析一下iframe这个网页元平素见的几种利用体例。
- 制造“无革新”呼应页面组件,作为异步互换数据的一种办理计划。这是初期不利用Ajax来异步发送哀求的一种替换办法,经由过程在页面上设置不成见的iframe元素,并将其src属性指向必要发送哀求的页面地点来发送哀求,同域下能够再对前往的页面举行DOM剖析来猎取数据。别的一个优点在于绕开了Ajax的沙箱平安模子,能够顺遂发送跨域哀求取得数据,只是这类情形下取不到iframe的document工具。由于它的这个特性,在某些必要跨域哀求数据的网页中仍然有使用。这类无革新是指在数据互换过程当中父页面不革新而持续对用户操纵坚持呼应,实践举行数据互换而被锁定的是父页面上内嵌的iframe页面。这个内嵌iframe页面依据必要设置为可见或不成见都能够,其实不会影响父页面中的其他元素对用户的呼应。这类效果相似Ajax的无革新,但能够看出其机制是完整分歧的。即便Gmail作为Ajax使用的典型,也分离了良多iframe来完成其优胜的功能与用户体验。
- 优化页面的一种体例。利用iframe能够并行加载剧本,办理加载迟缓的第三方内容如图标和告白等的加载成绩。Google的告白平台AdSense即经由过程iframe在用户的站点上投放告白分享收益,检察剖析国际流派首页上的告白代码也能看到这类手艺。也可用埋没的iframe在收集压力较小的时分来预加载对照年夜的文件到缓存,以便其他页面利用。预加载的观点能够用firebug剖析google首页,在body标签里能够看到:
onload=”document.f.q.focus();if(document.images)newImage().src=’/images/nav_logo4.png’” 如许一句代码,加载的图片nav_logo4.png在首页并没有效到,但搜刮了局列表等其他页面利用此图片的时分只必要从缓存读取,不必要从头下载了。
- 作为针对IE6扫瞄器中浮动层遮不住select控件和Flash元素的一种修改(hack)体例。Web2.0时期lightbox(又或thickbox)手艺以它优秀的体验与清爽的视觉感觉成为一种盛行效果。这类手艺实践上是用一个相对定位的浮动层掩盖到原有页面上,用以出现文本信息、图片、表单或其他恣意页面元素,替换了初期web开辟中常利用弹出扫瞄器窗口大概扫瞄器本身的动静、输出控件来与用户举行交互的体例。旧无方式中,弹出新窗口的剧本常常会被扫瞄器的告白拦阻体系拦阻,而扫瞄器本身的动静控件由于会打断扫瞄器历程,招致扫瞄器中本页面和其他经由过程多标签举行扫瞄的网页全体被锁逝世而遭到用户体验研讨者的诟病。作为对本人有严厉请求的一线web前端开辟职员,在下手完成lightbox效果的过程当中必定会碰到这个成绩,相对定位的层在IE6中粉饰不了网页上的select控件和flash,即便款式设置较高的z-index值也杯水车薪。这是由于select元素在IE6中是一个窗体级其余元素,它的优先级年夜年夜高于其他一切的html标签,只要一样窗体级其余iframe才干遮住它。因而开辟者们研讨出,把浮动层放到iframe中,大概在浮动层中安排一个iframe就能够办理此成绩了。所幸此成绩在IE6今后的IE晋级版本中失掉了修改,但关于还具有50%+市场占据率的IE6来讲(统计停止发文工夫),这个办理计划仍然有实际意义。
除以上三种使用,关于iframe元素也罕见一些不得当的使用。比方在页面中嵌进过量的iframe框架,经由过程指定框架外链接标签的target属性在点击时来更新iframe,这类用法和frameset相似,到达共用导航的目标。初志是好,但个中的弊端也无庸置疑。如许会招致一个页面哀求过量,上文所说起的雅虎团队《BestPracticesforSpeedingUpYourWebSite》一文中就明白优化页面必要“使iframe的数目最小”,归结了其三种弊端:
- 即便内容为空也会形成资本消耗(包含客户端、服务器端);
- 停滞页面onload事务触发(“Blockspageonload”,又有译作“会制止页面加载”,此处存疑)
- 没有语义(SEO是网站营销的主要构成部分)
在XHTML1.0的下一个版本HTML5中,因为frameset标签对网页可用性方面发生的负面影响,没有对它供应撑持,这也从正面申明一些成绩。
别的,因为内嵌的iframe不克不及主动顺应其外部内容巨细,为了坚持页面显现的完全性,还必要编写一段JavaScript剧本来依据iframe内容的变更立即调剂其巨细。分离的多个哀求再加上必要JavaScript剧本来修改更增添了多iframe页面体系运转的风险。那末,有无甚么好的办法能坚持部分页面内容公用呢?服务器端早就给我们供应懂得决计划,ASP中的include,PHP中的require办法,都是用来包括一段已有的代码到程序中,如许一样能完成页面的某个部分(如导航菜单、页脚)公用,可是运转以后作为一个完全的页面输入,无效地削减了客户端哀求,同时也不存在iframe的高度自顺应的成绩。
</p>
使得W3C与非正式的WHATWG(网络超文本应用程序技术工作小组)关系开始紧张起来。这些年来,一直是WHATWG肩负起HTML的重责大任。 |
|