- 浏览: 37791 次
- 性别:
- 来自: 北京
最新评论
-
leaow567:
写的很详细,前一阵子没装成功,看看
Storm分布式流计算平台的部署安装 -
clskkk2222:
...
[ExtJS3.2源码每天一小时]ExtJS中创建回调createCallBack与createDelegate的异同(之十) -
clskkk2222:
博主辛苦 感谢分享
[ExtJS3.2源码每天一小时](5)ext-base.js中each与iterate方法(之五) -
clskkk2222:
博主辛苦,写的很到位,受教了
[ExtJS3.2源码每天一小时](1)ext-base.js做了什么(之一) -
guofengcn:
多谢了!继续…加油…支持!
[ExtJS3.2源码每天一小时]ExtJS中的一组工具函数(十四)
文章列表
目前大数据时代已经来临,面临大数据分布式、实时处理的多种技术平台,我们该如何选择?经过调研及逐步甄选,Storm和S4是相对比较突出的两个分布式流计算平台,Storm是由twitter开源,S4是雅虎开源,相对于S4,Storm的成熟度高稳定性好。包括阿里巴巴等大型公司的数据平台也在使用Storm。
搜罗了网上很多Storm的安装教程,大多数网友也是转载,没有一篇教程能够指导完整的安装。下面,我将以Red hat 5.4为例,讲述我的整个安装过程。
一、安装前的准备
以下安装包经过亲测,不能保证其他版本之间是否互相兼容:
(1)从http://www.py ...
//类似于orcale的nvl功能,判断是否是空值,如果不是,返回该值,如果是返回的是defaultValue,allowBlank指的是是否允许空串
value : function(v, defaultValue, allowBlank){
return Ext.isEmpty(v, allowBlank) ? defaultValue : v;
}
//类似于orcale的nvl功能,只不过这个不是判空,而是判断是否是数字,如果是,返回该数字,如果不是返回的是defaultValue
num : function(v, defaultValu ...
在使用ExtJS时,我们往往需要在使用之前加入这么一句:
Ext.BLANK_IMAGE_URL = "....."其中省略部分为s.gif在extjs包中的路径。
那么ExtJS为什么要设置这样一个变量呢?如果我们不这样做会带来什么后果?
首先说后果:
如果没有以上那句代码,Ext会按照默认的地址:http://www.extjs.com/s.gif去下载这张图片,由于网络不通或者速度较慢等原因,可能导致这张图片加载不成功,造成页面上很多小白条。
设置这个变量的原因:
原来ExtJS中在创建组件的时候,组件中需要替换图标的地方,初始化时都是拿这个s.gif替代的, ...
ExtJS对Array类型的扩展主要包括两个方法:indexOf、remove
//o-在数组中要查找的对象 from-查找的起始索引
indexOf : function(o, from){
//获得数组的长度
var len = this.length;
//如果from为空,那么从0开始查找
from = from || 0;
//如果from值小于0,那么加len,例如 -1+6,从第5个元素开始找,即负值指定的是从末尾往前数第多少个元素开始。如果负值的绝对值超出了数组大小,它并没有做校验 ...
ExtJS对String类型扩展了格式化方法:
//format 指定格式
format : function(format){
//取出函数的参数,从1开始截取,就是去除掉format这个参数
var args = Ext.toArray(arguments, 1);
//替换掉格式串中的占位符 {0},{1}等 m代表匹配项 i代表匹配项的下标
return format.replace(/\{(\d+)\}/g, function(m, i){
return args[i];
...
createCallBack与createDelegate是ExtJS中创建回调函数的两个方法
也许很多人并没有接触到这两个方法,因为在使用ExtJS的过程中,如果对ExtJS研究的不是特别深入,这两个方法基本上不会浮出水面,或许有的人从官方或者其他人写的例 ...
拦截器示例:
var testFunc = function(a){
alert('executing...'+a);
}
var func = testFunc.createInterceptor(
function(){alert('intercepted');}
);
testFunc();//拦截器不会生效
func();//拦截器生效,所以必须使用createInterceptor返回的新函数去执行才能实现拦截,这与extjs的内部实现是吻合的
创建回调简单示例1:
var testFunc = function(a){
alert('ex ...
Ext对Function类的扩展主要包括方法:常见函数执行拦截器、创建回调函数、延迟函数执行。
Ext.apply(Function.prototype, {
//函数执行拦截器 fcn-拦截器函数
createInterceptor: function(fcn, scope){
//this指代当前要加拦截器的function 下文简称this函数
var method = this;
//判断当前fcn拦截器是否是一个函数,如果是返回的是执行拦截器和this函数的一个新函数,如果不是返回的是this函数。
...
//ExtJS提供了两个获取元素对象的方法,get和fly
//那么他们有什么区别呢?
//他们的功能是相同的
//例如:
var inputText = Ext.get('username');
var inputText = Ext.fly('username');
//二者的区别在于get方法在查询到页面元素对象后,会将元素的引用加入到缓存中。
//那么这个缓存在哪定义的呢?就是在我们的ext-base.js文件中:
Ext.elCache = {};
//当用get查找获得一个页面元素对象时,它首先会从elCache里面去找,找不到再去通过document.getE ...
//判断是否为空,可判断空引用、未定义、空数组、空串(在allowBlank为false时)
isEmpty : function(v, allowBlank){
return v === null || v === undefined || ((Ext.isArray(v) && !v.length)) || (!allowBlank ? v === '' : false);
}
//判断对 ...
el:要获取的dom对象对应的对象,这个对象可以是ID,可以是Ext的Element对象。
getDom : function(el, strict){
if(!el || !DOC){
return null;
}
//如果是Ext的Element对象,直接返回其dom属性
if ...
//array:要循环的对象,fn循环处理函数,scope作用域
each : function(array, fn, scope){
//如果array中的元素为空,返回,不往下执行
if(Ext.isEmpty(array, true)){
return;
}
//如果array不是可 ...
//url追加方法,可传入url地址与拼接的key=value串。不推荐使用,因为每次都要判断url中是否有“?”,效率偏低
urlAppend : function(url, s){
if(!Ext.isEmpty(s)){
return url + (url.indexOf('?') === -1 ? '?' : '&') + s;
}
return url;
}
//截取数组元素的方法,在ie下与其他浏览器的实现有所区别 a-原数组 i-起始位置 j-终止位置(这是一个自运行函数,当ext-base加载完后,就确定了 ...
urlEncode方法 url的编码
urlEncode : function(o, pre){
var empty,
buf = [],
e = encodeURIComponent;
Ext.iterate(o, function(key, item){
empty = Ext.isEmpty(item);
Ext.each(empty ? key : item, function(val){
...