当前位置:  编程技术>WEB前端
本页文章导读:
    ▪ExtJS学习笔记:初识      Ext JS通常简称为EXT,它是一个非常优秀的Ajax框架,用JavaScript编写,与后台技术无关,可以用来开发具有炫丽外观的富客户端应用。 用途:对于企业应用系统,尤其是MIS(Management Information Sys.........
    ▪设计小而美之字体推荐      No1. “微软雅黑”    推荐网址:http://www.niaoxiong.com  No2. “Century Gothic”    示例网址:http://www.thinkphp.cn/  本文链接......
    ▪JavaScript 函数柯里化(参考《JavaScript模式》)      在一些函数式编程语言里面,对函数的描述不是被调用,而是被应用。而在JS里面,我们可以用Function.prototype.apply()来“应用”一个函数。// define a functionvar sayHi = function (who) { return "Hel.........

[1]ExtJS学习笔记:初识
    来源:    发布时间: 2013-11-06

Ext JS通常简称为EXT,它是一个非常优秀的Ajax框架,用JavaScript编写,与后台技术无关,可以用来开发具有炫丽外观的富客户端应用。

用途:对于企业应用系统,尤其是MIS(Management Information System管理信息系统)类型的系统,EXT非常适用。

对于一些没有美术功底的程序员来说,EXT为我们解决了一大难题,因为它天生拥有炫丽的外表。同时,有很多用其他技术无法实现或极难实现的功能,却能用EXT轻易实现,比如EXT中的表格、树形、布局等控件能为我们的日常开发工作节约大量的时间和精力。

1、目录结构(不同版本稍有不同,鉴于主要学3版本,所以对版本4未做了解):

1)ext-3.4.0

2)ext-2.3.0

2、ext使用所必须的文件

必要的最小集合是:ext-all.js,adapter/ext-base.js,src(build)/local/ext-lang-zh_CN.js(语言包)和整个resources目录(主要样式引用:resources/css/ext-all.css)。

简要说明:

ext-all.js,adapter/ext-base.js 包含了ext的所有功能和所有的js脚本代码;

src(build)/local/ext-lang-zh_CN.js 是正文语言包,ext可以提供多种语言支持,在local文件夹下;

resources目录是所有css样式和图片;

在项目中引用时只需引用如下:(注意js的引用顺序(跟定义顺序有关))

<link rel="stylesheet" type="text/css" href=/blog_article/"${放置ext的目录}/resources/css/ext-al.css" />

<script type="text/javascript" src=/blog_article/"${放置ext的目录}/adapter/ext/ext-base.js"></script>_/p/index.html>

<script type="text/javascript" src=/blog_article/"${放置ext的目录}/ext-all.js"></script>_/p/index.html>

<script type="text/javascript" src=/blog_article/"${放置ext的目录}/src/locale/ext-lang-zh_CN.js"></script>_/p/index.html>

3、Hello World代码

<!DOCTYPE html>

<html>

<head>

<title>Hello World Test of ExtJS</title>

<meta charset="UTF-8" />

<link rel="stylesheet" type="text/css" href=/blog_article/"/resources/css/ext-all.css" />

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

Ext.onReady(function(){

Ext.MessageBox.alert("Hello World!","Hello World.");

});

</script>

</head>

<body></body>

</html>

效果:

4、辅助开发工具:(参见:ExtJS 开发调试工具大全:http://extjs.org.cn/node/323/)

1)开发利器Spket

2)FireBug调试工具

本文链接


    
[2]设计小而美之字体推荐
    来源:    发布时间: 2013-11-06

No1. “微软雅黑”  

 

 

推荐网址:http://www.niaoxiong.com 

 

No2. “Century Gothic”  

 

 

示例网址:http://www.thinkphp.cn/ 

 

本文链接


    
[3]JavaScript 函数柯里化(参考《JavaScript模式》)
    来源:    发布时间: 2013-11-06

在一些函数式编程语言里面,对函数的描述不是被调用,而是被应用。而在JS里面,我们可以用Function.prototype.apply()来“应用”一个函数。

// define a function
var sayHi = function (who) {
return "Hello" + (who ? ", " + who : "") + "!";
};

// invoke a function
sayHi(); // "Hello"
sayHi('world'); // "Hello, world!"

// apply a function
sayHi.apply(null, ["hello"]); // "Hello, hello!"

以上我们可以认为,调用一个函数实际上就是在给它应用一堆参数。那是否可以只传一部分参数而不传全部呢?

假设有一个函数add(),用于将x与y相加,下面是计算步骤:

// for illustration purposes
// not valid JavaScript

// we have this function
function add(x, y) {
return x + y;
}

// and we know the arguments
add(5, 4);

// step 1 -- substitute one argument
function add(5, y) {
return 5 + y;
}

// step 2 -- substitute the other argument
function add(5, 4) {
return 5 + 4;
}

step1就是部分应用:我们只给它应用了一个参数。

执行一个部分应用的时候,并不能获得结果,而是另外一个函数。我们假设有一个函数curry(),它处理add()的部分应用:

var add = function (x, y) {
return x + y;
};

// full application
add(5, 4); // 9

//a new function
var newadd = curry(add, 5);

// applying an argument to the new function
newadd(4); // 9

部分应用给了我们另外一个函数,这个函数在稍后调用的时候可以接收其他参数。

让函数理解并处理部分应用的过程,叫做柯里化(Currying)。


我们试着让add()本身来处理部分应用:

// a curried add

function add(x, y) {
if (typeof y === "undefined") {
return function (y) {
return x + y;
};
}

// full application
return x + y;
}

返回的函数创建了闭包,能访问外部函数的参数。

进一步考虑:能不能对任意一个函数进行处理,得到一个新函数,使它能够处理部分参数?(即上面假设的curry()函数)下面实现curry()函数:

function curry(fn) {
var slice = Array.prototype.slice,
stored_args = slice.call(arguments, 1);
return function () {
var new_args = slice.call(arguments),
args = stored_args.concat(new_args);
return fn.apply(null, args);
};
}

❶curry()有点复杂。注意到在JS中arguments不是一个真正的数组,利用Array.prototype.slice()将其转换成数组,以便更好地操作。

❷当curry第一次调用的时候,stored_args存储了调用时除去第一个之外的参数,因为第一个参数是要被柯里化的函数。

❸curry()返回了一个新函数,当这个新函数调用时,它能过闭包访问到已经存储了部分参数的stored_args和slice。

❹最后,新函数只需合并老的部分应用的参数(stored_args)和新的参数(new_args),将其应用到原来的函数fn(通过闭包访问)即可。

下面是一些测试:

// a normal function
function add(x, y) {
return x + y;
}

// curry a function to get a new function
var newadd = curry(add, 5);
newadd(4); // 9

// another option -- call the new function directly
curry(add, 6)(7); // 13

————————————————————————————————

// a normal function
function add(a, b, c, d, e) {
return a + b + c + d + e;
}

// works with any number of arguments
curry(add, 1, 2, 3)(5, 5); // 16

// two-step currying
var addOne = curry(add, 1);
addOne(10, 10, 10, 10); // 41
var addSix = curry(addOne, 2, 3);
addSix(5, 5); // 16

本文链接


    
最新技术文章:
▪css white-space:nowrap属性用法(可以强制文字不...
▪IE里button设置border:none属性无效解决方法
▪border:none与border:0使用区别
▪html清除浮动的6种方法示例
▪三个不常见的 HTML5 实用新特性简介
▪css代码优化的12个技巧
▪低版本IE正常运行HTML5+CSS3网站的3种解决方案
▪CSS Hack大全-教你如何区分出IE6-IE10、FireFox、Chr...
▪ie6,ie7,ie8完美支持position:fixed的终极解决方案
▪小技巧处理div内容溢出
▪css white-space:nowrap属性用法(可以强制文字不... iis7站长之家
▪纯CSS实现鼠标放上去改变文字内容
▪li中插入img图片间有空隙的解决方案
▪CSS3中Transition属性详解以及示例分享
▪父div高度不能自适应子div高度的解决方案
▪告别AJAX实现无刷新提交表单
▪从零学CSS系列之文本属性
▪HTML 标签
▪CSS3+Js实现响应式导航条
▪CSS3实例分享之多重背景的实现(Multiple background...
▪用css截取字符的几种方法详解(css排版隐藏溢...
▪页面遮罩层,并且阻止页面body滚动。bootstrap...
▪CSS可以做的几个令你叹为观止的实例分享
▪详细分析css float 属性以及position:absolute 的区...
▪IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值的完美解...
▪CSS小例子(只显示下划线的文本框,像文字一...
▪可以给img元素设置背景图
▪不通过JavaScript实现的自动滚动视差效果
▪div+CSS 兼容小摘
▪CSS的inherit与auto使用分析
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3