• 关于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方法抛出异常),同时初始化窗口中的组件,以后点击时就直接打开窗口。使用这种按需初始化方式,无论页面中有多少个窗口,也不会影响页面的加载效果,用户体验更好,按需加载始终是最佳选择。

  • 相关阅读:
    常用模块(一)
    面向对象进阶:反射以及内置方法
    面向对象三大特性之多态、封装与装饰器
    面向对象的三大特性之继承
    python之面向对象
    python之内置函数
    python之迭代器,生成器以及列表推导式
    比较好用的linux命令
    使用redission实现分布式信号量以及遇到的一些坑
    linux一些命令
  • 原文地址:https://www.cnblogs.com/weeksun23/p/2747256.html
Copyright © 2020-2023  润新知