`

Extjs 问题总结

阅读更多

    1.Extjs win.show()的执行顺序

       最近写ExtJS遇到了一个问题

Ext.onReady(function() {
   Ext.getBody().mask("数据重新加载中,请稍等"); 
   var x; 
   for(var i=0;i<10000000;i++){
       for(var j=0;j<100;j++){
	   x=j%5;	
	   x++;
	}	
	
    }	
   alert(x);
});

    竟然发现mask总是在for循环结束之后才执行。

    后来网上查询了一下发现原来原来mask是异步的,还没有mask返回就已经一直在做For循环。那么什么时候才会执行mask呢? 

 

    答案稍后回复,先下班。

    来揭露下答案吧,

    其实mask还没有完成正常渲染,已经开始执行下面的代码,问了下牛人说是等后面执行部分cpu空闲或者切换的时候,会进行正常的渲染成功。但是我自己尝试的操作中,我发现总是执行到最后才弹出mask框。

    小伙伴们,谁能举个例子说明下mask后面的内容没有完全执行完,mask就已经进行了正确的渲染了呢?

   

     目前想保证mask的优先执行顺序,搞了个setTimeout(function(){} ,100) 毫秒的功能。

     具体详情参照http://stackoverflow.com/questions/16775743/sencha-touch-mask-ondisclosure/16776443#16776443

   

     2.displayFiled的scroll每次滚动至最后

        这个问题也挺蛋疼,网上搜了很多只有关于textarea,后来直接搜索了下extjs scroll bottom。

      

 function getInfoTabPanel(){
	return Ext.create('Ext.form.FormPanel', {
		id:'panelID',
		title:'消息'	,
		layout:'fit',
		autoScroll:true,
	    items: [{
	    	id:'displayResultMSG',
	        xtype: 'displayfield',
	        fieldLabel: '',
	        value:result
	    }]
	});
}

 Ext.getCmp('panelID').body.scroll("b", 9999, true);

 

      

 

 

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics