zoukankan      html  css  js  c++  java
  • easyui-dialog打开多次数据串台问题

    问题:

      公司项目最近在用easyui写后台管理系统,发现dialog使用后总会报出莫名奇妙的问题

      1.打开多次后数据显示上一次的,表单提交错误或者获取数据错误

      2.来回跳转后,会有打开其它dialog的可能,神奇的串台现象

     

    排查:

      既然打开dialog为上一次的,那么表明【浏览器加载了多个同id对象,导致浏览器解析加载错误】

      那么,只要保证浏览器存在唯一的对象就能解决这个问题

     

    解决方案:

      1.新建一个变量,保存dialog对象,无论那个使用都操作该变量

        结果:经实验,只要调用$('#id').dialog({...}); 就会构造一个新的dialog对象,开启关闭都要用,多次调用还是会产生多个对象

           网上说该方案可行,我试了试,没啥效果,得大家试了,试好了,麻烦给我留言

      2.打开dialog后,添加关闭事件,执行destroy方法,保证每次打开都是新的

        结果:如果dialog绑定了页面的div,那么打开一次后,再也打不开了,猜想可能是连着这个div的dom对象一次玉石俱焚了。。。。惨!

        可行的解决方案

          js追加dom元素,保证每次打开都追加一个dom对象让他去毁,以下是代码

          应该也可以不声明,直接写,在里边添加关闭销毁事件

    //注意:我用的时候是先声明了该变量,指定固定属性
    var
    dataFile_Dg = $('<div></div>').dialog({ title: '文本文件上报监控详情', 1000, height: 600, closed: true, cache: false, modal: true, onClose: function () { $(this).dialog('destroy',true); } });
    //在使用该变量的时候,要把固定属性重写一遍,否则打开一次小一次,最后就留个按钮了,请慎重!!!
    //详情页 function forwardToDataFileMonitor(bankId) { // alert("详情"); dataFile_Dg.dialog({ title: '文本文件上报监控详情', 1000, height: 600, closed: true, cache: false, modal: true, href: 'report/static/html/dataFileMonitor/dataFileMonitor.html', queryParams:{ Authorization: localStorage.token, bankId: bankId, reportDate: $('#reportDate').datebox('getValue') }, }); dataFile_Dg.dialog('open'); }

     补充建议:对话框加id

    $('<div></div>').dialog({
            id: 'uniqId',  //插入该id,作为方法内变量,访问加该id即可
            title: '文本文件上报监控详情',
             1000,
            height: 600,
            closed: true,
            cache: false,
            modal: true,
            href: 'report/static/html/dataFileMonitor/dataFileMonitor.html',
            queryParams:{
                Authorization: localStorage.token,
                bankId: bankId,
                reportDate: $('#reportDate').datebox('getValue')
            },
        });
        $("#uniqId").dialog('open');    
  • 相关阅读:
    java 多线程面试题
    finally语句块一定会被执行吗
    redis 数据结构
    哪些可以作为GC ROOT
    mybatis 源码分析--日志分析
    mybatis selectKey
    spring cache 和redis
    kafka是如何保证消息不被重复消费的
    kafka面试题及答案
    浅谈:2019 前端面试题
  • 原文地址:https://www.cnblogs.com/hackxiyu/p/8006477.html
Copyright © 2011-2022 走看看