在ExtJS里面,如果频繁的打开一个弹窗,弹窗里面是动态创建的控件,控件赋予了id,
{
id: "editQueryOid",
labelWidth: 60,
width: 180,
labelAlign: "right",
labelSeparator: "",
fieldLabel: "oid",
margin: "5, 0, 0, 0",
xtype: "textfield"
}
那么很可能导致多次打开弹窗时控件重复的问题,
而且,如果是点击按钮,调用ajax请求,还可能会多请求1次、2次不等。
猜测原因是由于弹窗虽然关闭了,但那些控件并没有真正地清除,
当第二次打开弹窗时,创建了id重复的一批控件,就出问题了。
解决办法是:如非万不得已,控件不用id。
如果需要把属性绑定在控件上,不一定用id的,取个别的名字例如xid、tid什么的也是可以取到值的。
控件赋予id主要用于Ext.getCmp(id)。

在ExtJS中,频繁打开带有动态创建且有ID的控件的弹窗可能导致控件重复及多余AJAX请求。解决方案为避免使用ID,采用其他标识符并正确清理控件。
1183

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



