首页 新闻 会员 周边 捐助

jquery.artDialog.js 的$.dialog.open() 方法,弹框打开iframe页面不能立即显示,需要iframe页面完成才加载

0
悬赏园豆:20 [已解决问题] 解决于 2015-06-18 16:43

在iframe中打开页面,页面中有长时间未能加载的元素,导致整个页面都处于空白,直到元素加载成功或失败。

如在iframe中加载包含下面这个图片的页面就会长时间处于空白

<img src='http://img04.tbsandbox.com/bao/uploaded/i4/TB1_uWLXXXXXXaPXXXXXXXXXXXX_!!0-item_pic.jpg' width='400' height='400' />

(淘宝沙箱的一张图片,沙箱不稳定长时间处理不了)

如何让页面先显示,不要长时间空白呢,图片再慢慢加载呢?

问题补充:

我错了  我写了了个简单例子发现不是这样,iframe中页面直接就显示出来,只是图片出不来。

我遇到完整问题是:

使用jquery.artDialog.js 的$.dialog.open() 方法

弹框加载的iframe中出现了这个问题。整个弹框在iframe中图片加载失败或成功后才显示内容,之前一直是在loading,弹框空白。

我以为是iframe的问题,现在看来是$.dialog.open()的实现机制导致的或是其他问题了,看来要修改$.dialog.open()的方法才能解决了。

有谁遇见过这个问题吗?

 

我仔细看了$.dialog.open() 方法,确实是在页面创建了一个table元素

在其中放置了iframe,所以问题就出在$.dialog.open() 方法使用table布局的。

我试了脚本加载img放到 $(function () {})中依旧不行,table还是在图片加载失败后才显示的。

table有点无解啊

黑白*郎君的主页 黑白*郎君 | 初学一级 | 园豆:121
提问于:2015-06-18 15:15
< >
分享
最佳答案
0

第一,页面中有某些部分没显示就造成全部页面空白,这是你网页设计的问题。应该使用Div等分块,流式布局让页面能够一边解析一遍加载,而不是等某些部分下载完了才一起显示,比如使用Table就有这个问题。

第二,图片出不来应该考虑CDN等对静态文件加速,这个不是编码能解决的。

收获园豆:10
傲慢与偏剑 | 菜鸟二级 |园豆:381 | 2015-06-18 15:59

我仔细看了$.dialog.open() 方法,确实是在页面创建了一个table元素

在其中放置了iframe,所以问题就出在$.dialog.open() 方法使用table布局的

黑白*郎君 | 园豆:121 (初学一级) | 2015-06-18 16:26

@月藏锋: 给分

傲慢与偏剑 | 园豆:381 (菜鸟二级) | 2015-06-18 16:35

@傲慢与偏剑: 问题是这个,但并不是我自己页面的问题,而是artDialog使用了table布局引起的。

黑白*郎君 | 园豆:121 (初学一级) | 2015-06-18 16:42
其他回答(3)
0

用js在页面加载完成后再手动添加这个元素吧

收获园豆:5
司幸 | 园豆:319 (菜鸟二级) | 2015-06-18 15:19
0

可以考虑图片的延迟加载,这样的jquery插件很多的。

收获园豆:5
webaspx | 园豆:1973 (小虾三级) | 2015-06-18 15:25

确实可以,页面瞬间打开了。

支持(0) 反对(0) 黑白*郎君 | 园豆:121 (初学一级) | 2015-06-18 18:23
0

赞同一楼的方式,用脚本的方式来加载img。因为你的图片卡住了,art会认为还在加载中,当然现实loading了。

幻天芒 | 园豆:37207 (高人七级) | 2015-06-18 16:10

我仔细看了$.dialog.open() 方法,确实是在页面创建了一个table元素

在其中放置了iframe,所以问题就出在$.dialog.open() 方法使用table布局的。

我试了脚本加载img放到 $(function () {})中依旧不行,table还是在图片加载失败后才显示的。

table有点误解啊

支持(0) 反对(0) 黑白*郎君 | 园豆:121 (初学一级) | 2015-06-18 16:32

这样看貌似无解了,除非修改$.dialog.open() 方法了

再不然在父页面用脚本加载img,可总觉得不伦不类

支持(0) 反对(0) 黑白*郎君 | 园豆:121 (初学一级) | 2015-06-18 16:46

@月藏锋: 延迟加载图片也是可行的哇。

支持(0) 反对(0) 幻天芒 | 园豆:37207 (高人七级) | 2015-06-18 17:31

@幻天芒: 我简单试了下 延迟0.5秒执行脚本加载图片,确实可以,页面瞬间打开了。

支持(0) 反对(0) 黑白*郎君 | 园豆:121 (初学一级) | 2015-06-18 18:23

@月藏锋: art的效果就是这样。先loading,然后直接出来。img下载来,刚好阻塞了这个loading。

支持(0) 反对(0) 幻天芒 | 园豆:37207 (高人七级) | 2015-06-19 08:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册