开源的javascript项目Kissy介绍

kissy简介

kISSY是什么?

KISSY是一个开源的javascript项目,其主体是一个前端UI开发框架,即KissyUI。本文所述的kissy是仅指其内核部分的kissy.js中的语言与框架设计思想。KISSY项目的开源网站是:http://kissyteam.github.com/

kissy怎么使用呢?

尽管在KissyUI向kissy内核化的过程中,我们提出了一些新的概念与框架模型,但事实上,我们并未改变KissyUI的任何使用惯例。从代码上来看,kissy.js和lang.js以后的其它模块,并没有任何的变化,因此如果仅是将kissy当成一个UI系统来使用,你可以参考上面的开源网站,其中既有的KissyUI文档是完全有效的,而且KissyUI本身也是一个优秀的、便捷的Web UI框架。但是,kissy系统在模向合并和组织上的能力大大增强了。

下载源代码后,可以看到整个代码压缩后的kissy-min.js文件大小为42kb(jQuery-min为71kb,dojo core为88kb)

查看官网文档,发现kissy项目分为9个部分

而kissy.js核心的结构可以分为

基类为kissy,提供以下方法

(这里给开发者提一个小小的建议,初看这个文档,我一直以为要访问add方法,需要kissy.kissy.add这样的申明方式,可能是看ext/dojo的文档看多了,看到kissy这种组织方式的文档,让我无法一眼,知道具体方法的使用方式,希望能改进下吧。。。)

了解核心api

与所有的js框架一样,kissy提供了kissy.Config对象实现kissy框架初始加载的配置信息,

和一个DocumentReady事件,kissy.ready(fn)方法,

(这里开发者没写,ready注册的多个事件的执行顺序,通过查看源代码,可以知道,ready注册的事件是放在一个list里面的,执行时候,按照先进先出的原则执行)

还有一个监测元素可用时执行的方法available

不过总觉得这里的立刻执行有歧义,其原理通用是一个timer,延时扫描,不能算立刻

封装了简单了debug输出,实现了一个log,error方法,利用浏览器的console

为了组件化管理,实现了命名空间(namespace),对象继承(extend)和对象成员拷贝(mix/merge),原型拷贝(argument),对象申明(app)等方法,

时间: 2014-11-25

一个加密JavaScript的开源工具PACKER2.0.2

这是一个并非很复杂的编码工具,编码过后可以被浏览器直接识别.新浪在用.比如:http://comment4.news.sina.com.cn/comment/cmnt_xml.js 从这里进入http://dean.edwards.name/packer/,很简单的一个界面. 设置也很简单Numeric (Base 10) :所有的字符都被编码成数字Normal (Base 62) :所有的字符都被编码成字母与数字符号构成的值.这是推荐的方式.High ASCII (Base 95) :这种方式

利用noesis.Javascript开源组件.Net中执行javascript脚本

界面如下: 然后,click filter button后的UI: 看,筛选出来了,代码如下(js能调C#写的UserInfo类的各个属性) 复制代码 代码如下: public class UserInfo    {        public string FirstName { get; set; }        public string LastName { get; set; }        public int Age { get; set; }        public ov

PowerShell中执行Javascript的方法示例

背景与问题 别人写了一个Web应用程序,使用的是ASP.NET Forms技术.其中用到了一个DropdownList控件,用户选择了某项后,页面会回传,然后在下面再动态的显示另外一个控件,逻辑很简单. 这是产生的的部分的html源码: 复制代码 代码如下: <select name="eventTypeDropDown" id="eventTypeDropDown" onchange="javascript:setTimeout('__doPost

Powershell小技巧之使用Jint引擎在PowerShell中执行Javascript函数

这里演示如何利用PowerShell将一段Javascript函数字符串交给Jint引擎去执行. 执行Javascript函数 .Net版的Javascript解释器 可以从Git上获取Jint的代码,也可以从nuget上下载Jint的程序集. Jint是一个面向.Net的Javascript解释器.Jint不会把Javascript编译成.Net字节码,所以它非常适用于脚本小且运行起来速度快的工程,或者运行在不同平台上的脚本. PowerShell调用 拿到Dll根据-Path参数直接使用Ad

JavaScript 在各个浏览器中执行的耐性

IE:执行超过500W条JScript引擎语句出现提示. Firefox:执行超过10秒出现提示. Safari:执行超过5秒出现提示. Opera:无论执行多久都不会出现提示,最有耐性. Chrome:执行超过约8秒(估计值)出现提示. 注:当弹出类似alert的模式对话框的时候,是不计时. 在Web开发的时候,经常会遇到的一种情况就是浏览器提示脚本运行时间过长,停止还是继续,无论你选择什么,相信你都会想尽一切办法让这个对话框远离你的用户们.可你是否知道,这些不同的浏览器究竟是如何判断,哪些脚

Linux中执行shell脚本的4种方法总结

bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本: 复制代码 代码如下: cd /data/shell ./hello.sh ./的意思是说在当前的工作目录下执行hello.sh.如果不加上./,bash可能会响应找到不到hello.sh的错误信息.因为目前的工作目录(/data/shell)可能不在

shell脚本中执行python脚本并接收其返回值的例子

1.在shell脚本执行python脚本时,需要通过python脚本的返回值来判断后面程序要执行的命令 例:有两个py程序  hello.py 复制代码 代码如下: def main():     print "Hello" if __name__=='__main__':     main() world.py def main():     print "Hello" if __name__=='__main__':     main() shell 脚本 te

javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)

首先创建html页面为sort.html ,并把下面的内容复制进去 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> &l

javascript函数中执行c#函数的方法

1如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问JavaScript的已有变量? 4.如何在C#中访问JavaScript函数? 问题1答案如下: javaScript函数中执行C#代码中的函数: 方法一:1.首先建立一个按钮,在后台将调用或处理的内容写入button_click中; 2.在前台写一个js函数,内容为document.getElementById("btn1").click(); 3.在前台或后台调用js函数

.net中前台javascript与后台c#函数相互调用问题

C#代码与javaScript函数的相互调用 问: 1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问JavaScript的已有变量? 4.如何在C#中访问JavaScript函数? 问题1答案如下: javaScript函数中执行C#代码中的函数: 方法一:1.首先建立一个按钮,在后台将调用或处理的内容写入button_click中;         2.在前台写一个js函数,内容为document.getElementById("

redis中使用java脚本实现分布式锁

redis被大量用在分布式的环境中,自然而然分布式环境下的锁如何解决,立马成为一个问题.例如我们当前的手游项目,服务器端是按业务模块划分服务器的,有应用服,战斗服等,但是这两个vm都有可能同时改变玩家的属性,这如果在同一个vm下面,就很容易加锁,但如果在分布式环境下就没那么容易了,当然利用redis现有的功能也有解决办法,比如redis的脚本. redis在2.6以后的版本中增加了Lua脚本的功能,可以通过eval命令,直接在RedisServer环境中执行Lua脚本,并且可以在Lua脚本中调用