关于dialog的初始化方式

对话框dialog有如下两种初始化方式:

第一种:在页面加载完成时进行初始化:

HTML代码:

<div id="windowdv">
    <!-- your dialog content html code -->
</div>

JS代码:

$(function(){
    $("#windowdv").dialog({
        //dialog具体参数代码
    });
});
//打开窗口方法
function showWindow(){
    $("#windowdv").dialog("open");
    //打开窗口后执行的代码
}

这个方法的优点:1.窗口div只初始化一次,以后每次打开时不需再初始化;

缺点:1.初始化代码在页面加载完成后执行,这是没必要的,因为用户不一定想立刻看到窗口,应该在点击打开窗口按钮的时候进行初始化;

     2.当页面中窗口比较多,或者窗口中的HTML代码比较复杂时,页面加载完成后,大量的JS操作使得页面卡住不动,用户体验差;

   3.窗口中可能会有一些组件要进行初始化获取数据,如combobox、combotree等等,如果这些初始化代码也放在$(function()){}中,那用户体验更不堪设想;

为了解决以上问题,我想到了以下这种初始化方式:没错,就是点击打开窗口按钮时进行初始化:

HTML代码稍有不同:

<div id="windowdv" style="display:none;">
    <!-- your dialog content html code -->
</div>

display:none是必需的

JS代码:

//打开窗口方法
function showWindow(){
    var $windowdv = $("#windowdv");//缓存jQuery对象
    try{
        $windowdv.dialog("open");
    }catch(ex){
        $windowdv.show().dialog({
            //dialog具体参数代码
            closed : false
        });
        //窗口中组件的初始化代码
    }
}

这样,catch里面的代码只执行一次,就是在第一次点击打开窗口按钮时执行(open方法抛出异常),同时初始化窗口中的组件,以后点击时就直接打开窗口。使用这种按需初始化方式,无论页面中有多少个窗口,也不会影响页面的加载效果,用户体验更好,按需加载始终是最佳选择。

转载于:https://www.cnblogs.com/weeksun23/archive/2012/10/30/2747256.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值