extjs question

来源:互联网 发布:唐能通选股软件 编辑:程序博客网 时间:2024/06/06 09:54


A.1. ext到底是收费还是免费

 

老多同志对这个问题感兴趣了,实际上答案很简单,jack都写到http://www.extjs.com/license里了,对各种情况都做了讲解。不过有些同志对英文头疼,所以在下把ext的授权形式简单讲解一下。

ext授权大体分三种形式:

  1. 第一种是企业授权。

    jack说,如果你不愿意受到免费协议的限制,如果你们内部协议要求必须用企业授权,如果你愿意在经济上支持ext开发团队的持续发展。就可以掏钱了。

  2. 第二种是免费授权。

    同志们别高兴,看你们乐的,免费协议是有限制的,不可能让你随便用。想用免费协议,必须满足以下的条件之一:

    条件一。如果你在做一个开源项目,而这个项目里没有非开源软件。那么你可以免费用ext。

    条件二。如果你是自己玩玩,如果你是用在教学方面,或者是你没有用在盈利项目上。那么你可以免费用ext。

    条件三。如果你死也不愿意赞助ext开发团队,而且还非要把ext用在你的商业项目中,那么好,你可以用。但是不能用ext做软件开发库,不能用ext做开发工具。

    是不是复杂的呀?简单来说,就是如果你不赚钱,就可以免费用。如果你非要赚钱不可,也可以用,但是不能跟ext抢生意,不能再把ext封装起来当工具库卖。

    我们还要谈谈何谓LGPL,具体内容在这里,当然也是英文的http://www.gnu.org/licenses/lgpl-3.0.txt。我就简单说一下LGPL的含义,因为内容实在太多了。LGPL被认为能够较好保护开发者的利益的一个开源协议。简单来说,LGPL的软件,你可以用,但不能改,如果非要改也行,请把你改了的部分公开出来,否则告你哟。

  3. 第三种不太明白,名字是OEM / Reseller License

    你要是想把ext作为开发库(software development library)或者工具包(toolkit)来卖,就需要跟ext开发团队搞一个专门的协作授权了,因为免费授权是不允许做开发库和工具包的。

    然后他说了搞合作的好处,比如可以不用受到LGPL的限制,你的产品就成了市场上惟一一个基于ext开发团队官方支持的产品了,你也获得了更多的合作机会,也获得了ext团队直接授权的技术支持。

    感觉,说的太玄了,要是你想做一套ide,还是去跟jack好好谈谈吧。

大体说了一下,大家应该有认识了。ext提供多种授权,选择一种最适合自己的就好了。

A.2. 怎么查看ext2里的api文档

 

因为ext2里读取api文档的时候要使用ajax,而在本地文件系统ajax返回的状态码一直是失败,所以无法正常显示页面,解决方法有两个:

  1. 一般的方法是,将整个ext2包复制到iis或者tomcat这类服务器上,然后通过服务器访问api文档,这样ajax就可以返回正常结果。

  2. 实际上extjs.com官网上有人发布过localXHR.js,只要导入这个js就可以在本地文件系统使用ajax。找到这个 localXHR.js(在lingo-sample/1.1.1/下可以找到),复制到docs目录下,然后在index.html中加入< script src="localXHR.js"></script>,注意,这一行要加在ext-all.js的后面,然后直接打开 index.html就可以查看文档了。

A.3. 如何在页面中引用ext

 

ext只是单纯的js,引用方式和平常你使用外部js文件的方式一样。

<script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../../ext-all.js"></script>

放入工程中ext需要包括以下几部分,ext-all.js,adapter目录,resources目录。

  1. ext-all.js是对所有源文件压缩合并后的结果,包含了所有ext的控件

    开发时可以考虑使用ext-all-debug.js,这个是未经压缩的版本,通过firebug可以找到具体哪行出现问题,如果使用ie,也可以用其中附加的Ext.log进行调试,但功能没有firebug强劲。

  2. adapter目录下是各种适配器,用的时候选择一种适配器即可。

    目前提供的有ext-base.js,prototype,yui和jquery。ext在这些核心库的基础上构筑起强大的功能,开发者根据自己的实际需要选择对应的适配器,便可以在之前的经验基础上进行ext的开发。

  3. resources目录是css和图片资源,不一定和js脚本放在一起,保持css和image的对应位置就可以。

    使用ext的样式和图片,只需要在页面中引入ext-all.css。

    <link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" />
  4. 如果需要国际化支持,还需要从build目录下复制locale目录,导入到项目中,下面另行介绍。

A.4. 想把弹出对话框单独拿出来用的看这里

 

别用ext了,建议去看看lightbox,看是不是你要的效果,http://www.huddletogether.com/projects/lightbox/

A.5. 想把日期选择框单独拿出来用的看这里

 

别用ext了,js的日期选择控件数不胜数,这里推荐一个,http://www.dynarch.com/projects/calendar/

A.6. 听说有人现在还不会汉化ext

 

ext提供了国际化的脚本,这些东东都在build/locale/目录下,你只需要把对应语言的脚本加入页面就可以了,比如我们要chinese。

<script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../../ext-all.js"></script>
<script type="text/javascript" src="../../build/locale/ext-lang-zh_CN.js"></script>

注意,把翻译的脚本放在ext-all.js之后,翻译脚本是utf-8编码,如果你需要gb2312或者其他编码格式,请自行转换编码。

嗯,那个问我为啥zh_CN是中文的人,请把这个背下来,下次就不会有这个疑问了。

A.7. 碰到使用ajax获得数据,或者提交数据出现乱码

 

英文情况下不会出现乱码,用了中文才可能乱掉,这是因为咱们的win操作系统,保存文件的默认编码是gb2312,而ajax传输数据的默认编码是utf-8,推荐大家将数据格式统一为utf-8,不但可以解决眼前的乱码问题,对以后扩展为多语言也有好处。

A.8. TabPanel使用autoLoad加载的页面中的js脚本没有执行

 

使用scripts:true属性,可以执行TabPanel加载页面中的js脚本,如下所示:

var tabItem = tabPanel.add({
id:title,
title:title,
closable:true,
autoScroll:true,
autoLoad:{url:url,scripts:true}
});
tabPanel.activate(tabItem);



看陆川杨幂新片《琴棋书画》,品网易3D国韵网游《天下贰》
原创粉丝点击