iframe需要时间来加载

时间:2013-08-20 08:01:30

标签: php jquery iframe

我想在iframe中显示SmartPHP日历,但是加载/显示需要一些时间。在开始时显示完全白/平淡的页面

这是我的代码

<table id="table_1" class="form_table" align="center" cellpadding="0" cellspacing="0">
<tbody>
  <tr><td width="1250" height="950">
<iframe id="myIframe" src="" width="100%" height="950" frameBorder="0"  /></iframe> 
 </td></tr></tbody></table>

这里是jquery

$(document).ready(function(){ 
$('#myIframe').attr('src','http://mysite.com/smartphpcalendar/index.php');

});

我有两个问题

1 - 我如何减少加载时间?

2-如何向用户显示加载消息/加载器图像,不要让人失望和等待。

2 个答案:

答案 0 :(得分:0)

为什么你实际上要等到加载整个网站才会触发加载iframes内容?你实际上以这种方式强迫延迟。

而不是从$(document).ready...函数触发加载,只需将竞争网址放入iframe src标记:

<iframe id="myIframe" 
        src="http://mysite.com/smartphpcalendar/index.php" 
        width="100%" height="950" frameBorder="0">
</iframe>

这样浏览器就可以在整个页面设置之前开始加载内容。

答案 1 :(得分:0)

正如arkascha所说,你应该将src属性直接应用于html元素,以加快加载速度。至于显示加载屏幕,这可以通过在iframe加载时删除iframe顶部的div重叠来实现

HTML

<table id="table_1" class="form_table" align="center" cellpadding="0" cellspacing="0">
<tbody>
  <tr><td width="1250" height="950">
 <div id="load_div">LOADING PLEASE WAIT</div>
<iframe id="myIframe" src="" width="100%" height="950" frameBorder="0"  /></iframe> 
 </td></tr></tbody></table>

JS

$('#myIframe').load(function(){ 
    $('#load_div').hide();
});

CSS

#loading_div{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height: 950px;
}