起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1770|回复: 2

[结贴] 如何让windowContainer延迟加载

[复制链接]

24

主题

90

帖子

294

积分

中级会员

Rank: 3Rank: 3

积分
294
QQ
发表于 2016-10-12 11:34:10 | 显示全部楼层 |阅读模式
在官网上找到如下:
延迟加载非首屏内容

对于非首屏的内容,可以延迟加载,从而减少前后端的运算,提升运行性能。例如非首屏的windowContainer组件,可以设置autoLoad属性为false,在切换到windowContainer区域时,调用windowContainer组件的load方法加载。

按照说明设置了autoload = false, 但是好像没有生效,请问有没有相关的案例参考?

我的代码:
//动态增加Content
                        var newContent = self.comp('contents').add({xid : "newContent"+param.row.val('id')});
                        var windowCon1 = new WindowContainer({
                                parentNode : newContent.domNode,
                                src : require.toUrl(url),
                                autoLoad: false,
                                onLoadError: function(err){
                                        alert("加载出错")
                                        err.cancel = false;
                                }
                        });
                        if(newContent.getIndex()!=0)
                                windowCon1.autoLoad = false;
发表于 2016-10-12 12:01:08 | 显示全部楼层
可以看下组件源码的buildTemplate 方法, 根本没有autoLoad 属性的设置!你可以先new 出WindowContainer 后,再使用js动态修改autoLoad 的值!

windowCon1.autoLoad = true;
或者windowCon1.set('autoLoad',true)
试试是否起作用!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

24

主题

90

帖子

294

积分

中级会员

Rank: 3Rank: 3

积分
294
QQ
 楼主| 发表于 2016-10-12 19:55:30 | 显示全部楼层
采用下面的写法就可以延迟加载了:
var windowCon1 = new WindowContainer({
                                parentNode : newContent.domNode,
                                // src : require.toUrl(url), // 地址一定要在后面代码给出,如果这个给了就是自动加载
                                //autoLoad: false,  //这个地方设置无效,而且此属性好像没有起到应有的控制作用
                                onLoadError: function(err){
                                        alert("加载出错")
                                        err.cancel = false;
                                }
                        });
windowCon1.setSrc(require.toUrl(url));
windowCon1.refresh() ;// 或者调用 windowCon1.load(); 页面就可以加载了


Tips:可以根据 windowCon1._isFirst 来判断是否加载过了,避免重复调用 windowCon1.refresh()


问题已经解决,可以结贴!

QQ: 18239256
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-7 06:55 , Processed in 0.062908 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表