//以下两种写法都会加载并打开这个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方法动态加载。