阅读更多

3顶
0踩

Web前端

原创新闻 reglib: 另外一个基于CSS的声明库

2008-11-18 12:04 by 副主编 QQbyte 评论(4) 有3855人浏览
CSS

来自Sun的Greg Reimer创建了一个开源库命为:reglib

他说明了创建这个库的背后故事:

Greg Reimer 写道
JavaScript开发我称为 load-traverse-modify 方式。

load:加载DOM

traverse:查询和浏览加载的DOM,返回一系列元素。

modify:添加动作操作,或者编辑元素

虽然load-traverse-modify 方式是开发JavaScript通常开发方式,但是这是反模式的。几年以前,我在开发sun.com的过程就期望发布一个JavaScript 库:reglib。reglib通过更加接近CSS的方式来操作:声明元素拥有什么样的动作,立刻在全局拥有操作效果,不用关心DOM后面的变化。

 


如果你查看reglib库信息,会发现它非常类似jQuery和其他语言操作方式。

reglib 这样命名就是它让你通过一个CSS selector “注册register”一个事件操作。就像CSS,一旦这些代码被“声明”,事件操作动作在全局启用。完全不用关心onload事件是否释放,或者DOM是否加载结束,或者唯一DOM是否被覆盖等等。

除了事件声明,这个库还包含一些其他的便利操作和帮助类工具,尤其是:

下面是范例代码:

 

reg.click("a.popup", function(e){
    window.open(this.href);
    return false;
});

/*
ENGLISH TRANSLATION:
I declare, forthwith, that all clicks on <a> elements with
class "popup" shall be handled thusly...
*/
 

关于reglib 详情查看:

 

Project Home 主页: http://code.google.com/p/reglib/
Download 下载: http://code.google.com/p/reglib/downloads/list

来自: ajaxian.com
3
0
评论 共 4 条 请登录后发表评论
4 楼 joachimz 2008-11-20 13:15
用了一段时间jQuery,发现LTM确实是问题:
1 性能
2 动态添加的内容,需要重新绑定事件

reglib从设计思路来看,没有这两个问题。不过还要详细看看
3 楼 andyhan 2008-11-19 14:19
jQuery第二?
2 楼 xuelange 2008-11-19 10:20
load-traverse-modify 方式是一种什么方式?
1 楼 alanwu 2008-11-18 22:38
load-traverse-modify 总结得很到位,
但我怎么看reglib也是load-traverse-modify啊

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 每个学习C++BUILDER的人必须看的东西

    The TeamB guide to avoiding common mistakes in C++Builder.  This article contains a list of suggestions put together by the members of TeamB for C++Builder. The suggestions will help you avoid subtle

  • C++ Builder VCL库函数简介

    一.BORLAND C++ BUILDER VCL的内存管理函数  1. AllocMem  在队中分配指定字节的内存块,并将分配的每一个字节初始化为 0.函数原型如下:  void * __fastcall AllocMem(Cardinal Size);  2. SysFreeMem  释放所指定的内存块.函数原型如下:  int __fastcall SysFreeMem(void * P)

  • C++builder 简单线程搭建及使用(上)

    简介: 机器性能强悍或资源富裕, 此时单线程、单进程对很多实时数据采集, 又同时需要界面配置操作的需求来说,对使用者来说需要先关闭监控数据采集再进行数据查看,有些不太合情理, 下面我会介绍几种方式, 关于C++builder中使用线程的例子, 后续也会有Qt的几种方式, 不会讲的太细, 官方文档都有,试了才知道; C++builder 创建线程 1. 定义输入输...

  • C++ builder 中关于窗体的一些操作(总在最前,遍历控件...)

    一、让窗口总是在最前面     Form 的FormStyle属性设置为fsStayOnTop值。 二、 动态调用窗体Form     在缺省情况下, 由File/New Form生成添加入项目文件中的 窗体都具有&quot;Auto Create&quot;(自动创建)的特性。即只要程序运行,该窗体就存在于 内存中了,不管当前它是否被调用。具有这种特性的窗体一般适用于窗体属性比较 固定、经常被调用的情况。其优点...

  • C++ Builder 使用Canvas的方法来绘制图形对象

    http://bbs.51cto.com/thread-38166-1.html

  • C++ Builder 高手进阶 (五)用BCB编写多线程应用程序

     C++ Builder 高手进阶(五)用BCB编写多线程应用程序nxyc_twz@163.com   随着Windows系统的全球性普及,多线程技术已越来越多地运用到许多软件设计中。使用多线程技术可全面提高应用程序的执行效率。以前为了实现多线程编程,基本上都是调用一系列的API函数,如CreateThread、ResumeThread等,不容易控制,还容易出错。在使用BCB以后,

  • BCB部分功能实现

    删除别名中所有的表、检查表是否存在、组件的类名、剪贴板中的文字、字符流、检查表是否已打开表的状态操作、改变PageControl的标签、向Query传递参数 日期属性 绘制状态条 删除别名中所有的表void TData::CleanTemp() {   TStringList *myTables = new TStringList();  TTable *Table = new TTable(

  • 在TCanvas上画图

    将一幅图片,从文件中加载到TCanvas上去,代码如下: ::Graphics::TBitmap *bmp= new ::Graphics::TBitmap; bmp->Transparent = true;//是否透明 bmp->LoadFromFile("right1.bmp"); Canvas_->Draw(0,0,bmp); d

  • 在C++Builder中使用OLE出现“类worksheet的paste方法无效”错误的一种解决方法

    在C++Builder中使用OLE的方式把数据库表中(TDBGrid)的内容保存到Excel的学习过程中,跟“ccrun(老妖) info@ccrun.com”学习了很多(致敬ccrun(老妖))。 后来增加了把TStringList中的内容保存到Excel,重复向每个cell填充,这个方法的缺点是太慢。也可以一次填充一行(未实现)。下面是示意代码: System::Variant vExcelApp; System::Variant vSheet; String strXlsFil...

  • 关于用 C++Builder 进行 MIDAS 应用开发的讨论

        914事件发生的那天,Ben_Ladan(兰企鹅)兄在 CSDN 的 BCB 版发了一个贴,问起一个关于用 BCB 进行 MIDAS 开发的问题。刚好这个问题是我会的,因为一年多前(准确的说是2001年9月4日) luhongjun(过江项羽)兄曾在 BCB 版发过一个关于 MIDAS 开发的贴子,其中就有类似的问题,当年解决项羽兄的两个问题也是 BCB 版的高人:holyfire(^@L

  • C++面向对象之类complex详解

    类complex可作为入门C++面向对象的经典类。complex的原型是数学上的复数。我们都知道复数有实部和虚部。所以类complex有两个数据成员re, im。复数有加,减,乘,除,取反,求共轭等操作,类complex也有相对应的成员函数来实现这些操作。下面是类complex的定义和测试代码,已在vs测试过。 类complex的定义 //complex.h #ifndef _MYCOMP...

  • VCL类学习之(九) TDataModule

    TDataModule centralizes the handling of nonvisual components in an application.UnitClassesDescriptionUse a TDataModule object in an application to provide a location for centralized handling o

  • C++ Builder

    ---------------------------------------------------------------------------1. C++ Builder 网上资源    C++ Builder 研究    http://www.ccrun.com/    C++ Builder 程序员    http://mybcb.diy.myrice.com/    电脑学习 C++

Global site tag (gtag.js) - Google Analytics