//以下两种写法都会加载并打开这个dialog,所以如果都写的话,会加载两遍,其中有href 属性时,会发送两遍http请求
//加载并打开,如果之前已经加载过属性(如href等),会再加载一次(比如发送url请求)
$('#dialogDiv').dialog('open');
//加载dialog,此时初始化时也会请求href的url,并加载数据。
$('#dialogDiv').dialog({
//closed 属性默认为true,加载完毕后会关闭窗口,设置为false则加载完不会关闭
closed : false,
href : '/url',
});
所以,如果在页面中先初始化dialog,并在其中添加了href属性。又调用.dialog('open')打开窗口的话,查看后台log会发现该url路径调用了两次,可能会导致数据覆盖的问题。
解决办法:
1.在需要打开窗口的时候,将dialog的closed
属性设置为false,使其初始化后不会自动关闭窗口,这样窗口就直接是打开状态啦~也不需要再调用open方法。
2.如果一定要先初始化,再按需打开窗口,可以尝试在打开前先将之前的url清空(或者不要在初始化的时候写href属性),打开后再使用reload/load方法动态加载。

当使用easyui的dialog组件时,如果同时使用'dialog('open')'和初始化时的'href'属性,会导致dialog加载两遍,从而发出两个HTTP请求。这可能引起数据覆盖问题。解决方法包括在打开时设置'closed'属性为false,或者在打开前清除href,利用'reload'或'load'方法动态加载内容。

509

被折叠的 条评论
为什么被折叠?



