1. extjs界面加载慢
相对来说,加载是稍微有点迟钝,注意以下几点就可以避免
慢是因为要加载js包,所以导致慢!
第一、尽量加载需要的包,避免加载不需要的包
第二、如果是对外发布的话,请压缩一下js和css
第三、对每个页面进行优化,比如控件等
第四、适当缓存
2. extjs 缓存 页面
在不修改应用架构的情况下, 用oscache 把页面缓存。
extjs介绍:
自动生成行号,支持checkbox全选,动态选择显示哪些列,支持本地以及远程分页,可以对单元格按照自己的想法进行渲染,这些也算可以想到的功能。
1、ExtJS可以用来开发RIA也即富客户端的AJAX应用,是一个用javascript写的,主要用于创建前端用户界面,是一个与后台技术无关的前端ajax框架。因此,可以把ExtJS用在.Net、Java、Php等各种开发语言开发的应用中。ExtJs最开始基于YUI技术,由开发人员JackSlocum开发,通过参考JavaSwing等机制来组织可视化组件,无论从UI界面上CSS样式的应用,到数据解析上的异常处理,都可算是一款不可多得的JavaScript客户端技术的精品。
2、Ext的UI组件模型和开发理念脱胎、成型于Yahoo组件库YUI和Java平台上Swing两者,并为开发者屏蔽了大量跨浏览器方面的处理。相对来说,EXT要比开发者直接针对DOM、W3C对象模型开发UI组件轻松。
3. extjs tbar怎么样在页面两行显示啊。。。一行太多了
写两个合并就可以。
vartoolbarTop=Ext.create('Ext.toolbar.Toolbar',{
dock:'top',
items:[{xtype:'textfield'},{xtype:'button',text:'查询'}]
});
vartoolbarBottom=Ext.create('Ext.toolbar.Toolbar',{
style:{
borderTopWidth:'0px!important',
borderBottomWidth:'1px!important'
},
items:[{xtype:'textfield'}]
});
vargrid=Ext.create('Ext.grid.Panel',{
dockedItems:[toolbarTop,toolbarBottom],
.....
}
4. extjs怎么在加载数据时,在主界面显示'正在加载'注意啊不是弹出层显示,加载完毕显示数据
在主界面显示'正在加载'------------->你是说需要一个自己定义的遮罩层么?
不要extjs那个自带的遮罩层么?
5. 请教EXTJS高手,如何用EXTJS写出这种漂亮的界面
写出漂亮的界面就两种方式,一种最根本,写schema,这个需要安装sencha cmd,比较繁琐,但优点是代码少。比如extjs提供的几种schema都是这样写出来的。
还有一种是在显示组件上加cls,然后在css中自己实现.
什么样的界面都可以实现,前提是需要了解extjs的css实现方式。
这是css的例子
/*按下按钮时颜色*/
.mocoolka .mk-button.mk-option.x-btn-focus {
background-color: #ddd !important;
border: 0px solid transparent;
}
/*移动到按钮上时的颜色*/
.mocoolka .mk-button.x-btn-over {
background-color: #53CD78 !important;
border: 1px solid transparent;
}
/*按下按钮时颜色*/
.mocoolka .mk-button.x-btn-focus {
background-color: #43C86F !important;
border: 1px solid transparent;
}
/*大按钮的字体*/
.mocoolka .mk-button.mk-big-button .x-btn-inner-default-small {
font-size: 18px;
padding: 5px 5px;
}
这是实现后的界面
6. Extjs如何动态加载Extjs脚本
1、首先,需要先创建一个基本可用的 ExtJS 模板, 这个很简单, 如下所示:
<!DOCTYPE html>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="http://localhost/ext-4/resources/css/ext-all.css" />
<script type="text/javascript" src="http://localhost/ext-4/ext-debug.js"></script>
</head>
<body>
</body>
</html>
2、需要引用的脚本是 ExtJS 根目录下的 ext-debug.js , 不是 ext-all-debug.js, 这个文件非常小, 只有几百K , 当让这个只是最基本的 ExtJS 组件, 不包括任何的界面功能。
3、配置 Ext.Loader 启用动态加载;
4、ExtJS 中的动态加载是由 Ext.Loader 来完成的, 默认不启用动态加载, 所以接下来需要做的事配置 Ext.Loader 启用动态加载, 在上面模板的 body 标签内添加如下代码:
<script type="text/javascript">
Ext.onReady(function() {
Ext.Loader.setConfig({
enabled : true,
disableCaching: false,
paths : {
Ext : '/ext-4/src'
}
});
});
</script>
注意:上面的代码启用了动态加载, 禁用了浏览器缓存, 以及指定了 ExtJS 的所部署的路径。
7. 如何在extjs中打开一个新的界面,原先的界面还存在。
添加单击事件就可以了
listeners : {
'click' : tree_itemclick
}
-------------------------------------
function tree_itemclick (node, event) {
var tabId = "tab-" + node.id;
var tabTitle = node.text;
var tabLink = node.attributes.url;
//alert(tabLink);
currentPage = tabId;
var centerPanel = Ext.getCmp("mainpanel");
var tab = centerPanel.getComponent(tabId);
var subMainId = "tab-" + node.id + "-main";
if (!node.isLeaf()){
// 为叶子节点时,点击进入链接
event.stopEvent();
return;
}
if (!tab) { //判断MainTabPanel中是否存在这个页面,如果不存在将创建一个
tab = centerPanel
.add(new Ext.Panel(
{
id : tabId,
title : tabTitle,
autoScroll : true,
iconCls : "tabIconCss",
layout : "fit", //填充布局,它不会让load进来的东西改变大小
border : false,
closable : true,
//closeAction : 'hide',
items : [ {
showMask : true,
maskMsg : '正在加载数据,请稍等...',
scripts : true,
html : "<iframe scrolling='auto' frameborder='0' width='100%' height='100%' src='"
+ tabLink + "'> </iframe>"
} ]
}));
}else {
centerpanel.setActiveTab(tab);
}
centerPanel.setActiveTab(tab); //将焦点指向我点击节点打开的页面
};