性能提高

1、单击button关闭弹出窗口layout:window

默认/通常:  在Bean中关闭,csc

@Action(id="btnClose",events="onclick")
public void btnClose(){
     Browser.execClientScript("window.parent","winJ.hide()");
}

优化:在faces里通过JS关闭,c

<w:button label="关闭"  immediate="true" οnclick="parent.winJ.hide();return false;" />


2、判断 单击tree节点 的级别

默认/通常:bean,

          if( ((module) tree.getEventNode().getUserData()).getModuleName()=="root" ){//根节点
		。。。	
		}
	  else if( (((module) tree.getEventNode().getUserData()).getUrl()==null) ||
					(((module) tree.getEventNode().getUserData()).getUrl()=="") ||
					(((module) tree.getEventNode().getUserData()).getUrl().length()==0)){ //一级节点
		。。。		
		}
	  else {                                                                //二级节点
		。。。	
               }

优化:放到faces里

<script>
Ext.onReady(function (){
treeJS.on('click', function (node) {
//alert(node.leaf);//这是你要的值
//alert(node.id);//这是你要的值
//alert(node.text);//这是你要的值
 if(node==treeJS.getRootNode()){
 	alert('root');
 }
 else if(node.parentNode==treeJS.getRootNode()){
 	alert('1');
 }
else {alert('2');}
return true; });
});
</script>

3、页面初始化时,组件赋值or操作

	@BeforeRender
	public void beforeRender(boolean isPostback){
System.out.println("---------000------");
     	if(!isPostback){
 System.out.println("---------111------");		
		}
	}
加上if判断后,只要页面不全部刷新,则“111”只执行一次

而“000”则只要发送数据到服务器,都会执行,包括:弹出窗口、查询。。。

 

4、getSelectedValues()获取表格选中行的ID,造成表格的“二次取数”

默认/通常:在bean中使用grid1.getSelectedValues()获取表格选中行的ID,但会造成表格向db的“二次取数”----因为在bean中取到的是grid的行号,需要与db对比,才能得到选中行实际的ID

frame.load("approvalManPerModWin.mw?tid="+((approval) (grid1.getSelectedValues()[0])).getApprovalID()  );

优化:

a、用JS将选中行的ID存到隐藏域中

<w:button label="查看" image="../../resources/mkgl.png" οnclick="return checkGetSin();"/>
<w:button id="btnCheck" jsvar="btnCheck" style="display:none"/>
。。。   。。。   。。。

  
  
   
   <w:textField id="gridSlt" hidden="true" jsvar="gridSlt"/>
。。。   。。。   。。。
function checkGetSin(){
        	var sr = g1.getSelectionModel().getSelections();
        	if( sr.length!=1 ){
        		Ext.Msg.alert('错误','每次只能选择一行!');
        		return false;
        	}
        	gridSlt.setValue((sr[0]).get('ID'));
        	//gridSlt.value = (sr[0]).get('ID');
        	btnDis.fireEvent('click');
        	return true;
  
  

  
   
	@Action(id="btnDis",event="onclick")
	public void btnDis(){
		 centerTab.addTab("查看申请", "petitionManDisWin.mw?tid="+gridSlt_value);
         }

但如果隐藏域不在form中,总是取不到值

b、用JS将选中行的ID直接放到ajax:submitAction中,作为参数直接提交

<ajax:submitAction id="bsnDis" jsvar="bsnDis"/>
。。。   。。。   。。。
	bsnDis.addParam('tid',(sr[0]).get('ID'));
        	bsnDis.submit();//alert('');
 
	@Action
	public void bsnDis(){
		HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest(); 
                centerTab.addTab("查看申请", "petitionManDisWin.mw?tid="+request.getParameter("tid"));	
                }

 

5、关于gird弹出窗口进行修改或显示

个人感觉,使用tab比window弹出窗口的速度和显示要快一些,

默认/通常:tab的弹出在bean中完成,cscs,会增加流量

centerTab.addTab("查看申请", "petitionManDisWin.mw?tid="+((academic) (grid1.getSelectedValues()[0])).getID());

优化:

function checkGetSin(){
			centerTab.add({
   				id: 't123',
   				title: 'qwe',
   				html: '<iframe src="petitionManDisWin.mw?tid='+(sr[0]).get('ID')+'" scrolling="auto" frameborder="0" style="width:100%;height:100%;"></iframe>',
   				style: 'width:100%;height:100%;'}).show();
}

参考:http://www.operamasks.org/forum/viewthread.php?tid=4957&highlight=tabLayout,“//如果已经存在,则刷新之”中总是刷新第一次的弹出地址

 

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值