JET(Javascript Extension Tools - Javascript 扩展工具包)

JET是一款由腾讯开发的JavaScript扩展工具包,适用于Web页面和Web应用程序的开发。它支持多种JavaScript框架,如jQuery、YUI等,并实现了微内核设计,便于模块化开发。此外,JET还支持多版本共存,确保项目的可延续性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JET(Javascript Extension Tools - Javascript 扩展工具包)

 

 

站在巨人的肩上 Standing on shoulders of giants

JET 适用于 Web Page 和 Web App 的开发

据说是腾讯内部开发的!

 

JET 下载地址:http://code.google.com/p/j-et/downloads/list

特性

  1. 微内核设计
    • 内核可完全分离出来,用于构建自己的框架
  2. 自由拼装各个模块
  3. 命名空间、原生对象零污染
  4. 无缝集成各种js框架
    • 与jQuery, YUI, Mootools, Prototype.js 等框架无缝集成
    • 与多种局部框架无缝集成,如:Mini, Sizzle, cssQuery, xpath, JSON 等等
  5. 多版本共存
    • 如采用的JET版本过旧,旧有的Javascript代码不能与新版本JET兼容,则可以采用多版本共存的方式保持程序的可延续性
  6. 分层设计
    • Javascript核心层,与Javascript解释引擎无关的封装和扩展
    • 浏览器端Javascript层,对浏览器中的Javascript引擎部分的封装和扩展

代码示范

  • JET 代码组织方式一(传统):
var J = new Jet();
J.out(J.version);
  • JET 代码组织方式二(推荐):
Jet().$package(function(J){
        J.out(J.version);
});

 

JET设计理念

不要重复自己(Don’t Repeat Yourself)

//=================================================================

感谢 David Flanagan, John Resig, 以及 MooTools, YUI, Prototype, Dojo, ExtJs 的作者们!

//=================================================================

 

JET 下载:http://code.google.com/p/j-et/downloads/list

 

 

JET  
JET 简介

命名含义

  • JET 是 Javascript Extension Tools 的缩写,即 Javascript 扩展工具套件的意思。
  • jet 本意是喷气式飞机,所以同时借喻轻巧、快速的寓意。

设计理念

  • 保持最优的执行效率
  • 保持 Javascript 原有的代码风格,降低学习难度
  • 更好的组织工业级 Javascript 应用程序

其他

  • 探索在前端使用 MVP、MVC 模式来构建大型 WebApp (Build Web App with MVP)
  • 探索工业级 Javascript 的开发技术

发展规划

  1. 核心底层 - 纯Js底层功能封装/代码组织/无缝接入其它js库 - [完成]
  2. 基础扩展 - 跨浏览器封装/工具函数/设计模式相关 - [完成]
  3. UI 基础控件 - 按钮/面板/窗口/树形列表/Tab/lightbox/widgets...
  4. 实时动画系统 - 实时定时器/关键帧动画/加速度公式/物理引擎/声音控制器...
  5. 游戏引擎 - 角色控制/地图系统/游戏异步通讯系统/寻路算法/键盘控制/人工智能/...

结构图

第一层Core Javascript 扩展模块 代码组织模块(轻松组织大型应用,无缝接入其它js库)
第二层 Browser Javasccript 扩展模块(跨浏览器,基础封装) 可选模块(设计模式相关模块,选择器模块...)
第三层UI 组件实时动画模块游戏引擎模块

腾讯内部使用的js库也开源了— JET(Javascript Extension Tools – Javascript 扩展工具包),很难得的一件事情,赶紧下了Jet 1.1.1版本的整个源码,包括说明文档来看看源码,看看腾讯强大的前端技术的后面会有一个怎样的js库来支撑的。http://code.google.com/p/j-et/wiki/JET

查看了Jet的使用方式之后,首先不禁冒出了一个词“复制”。是的,Jet复制了YUI3的编写方式,提供了“包”的概念package:

Jet().$package( function(J){
   //code here...
};

采用的也是颗粒化的方式,将负责不同功能的代码整理到独立的js文件里,比如:DOM、string、Event、http、fx、ui等等,不过Jet方法里并不能像YUI3那样直接导入该包的js文件,查看它的DEMO,需要自由组合几个js文件来实现想要的功能,做到了无缝的插入包,这个就得益于Jet中的微内核—jet.core.js。

 

上面是第一个“复制”,在查看jet.base.js这个文件源码的时候,看到了很多熟悉的函数呀:$try、clone、timedChunk、bind、random等等,这些都还是似乎直接复制。这个base文件包含了微内核、dom、browser、event、date、Class(用于继承和扩展的相关方法和属性)。但是,感觉看Jet的源码很爽,读起来很顺畅,整体来看Jet的各个文件的组织是:微内核来提供包以及仿照YUI3的这种操作方式,而其他的dom、event、browser等则是作为工具代码包的概念组织起来的。这就更像是一种函数功能集合,在各个包里对提供的各种接口API,也是过程函数的编写方式,增加、删除、修改都非常的容易,颗粒化的程度较高,这点非常赞~。核心逻辑简单了,代码组合的方式也就简单的多了。

Jet中Class的继承方式还是比较简单的,并且只提供原型的继承,对于父类中的使用this声明的方法和属性则不继承。这点不知道开发人员是怎么考虑的。

还有一个非常赞的地方,是event包中addEventListener、removeEventListener在IE下的处理方式。在IE下使用一个包装函数来对事件event对象做属性扩展,来使得跟W3C的事件的属性接口达成统一。同时通过一个事件储存容器,来储存每一个事件,在window设置了unload的情况下,删除全部已注册的事件。onDomReady原理跟我之前所写的类似,通过定时器来检测document、document.body、document.getElementById、document.getElementsByTagName是否可用来实现。

在代码的编写方式上也有值得借鉴的地方:在包的开头将全部的功能函数用变量声明了,之后实现每一个功能函数,最后把功能函数注册到包的命名空间下面。这样组织代码,看起来比较清晰,对实现代码的颗粒化也是有很大帮助。

不过在代码的细节上,还是有很多可以优化的地方:包括减少属性查询、执行语句,字符串的处理,以及在一些功能的实现上等等也都可以使用比较优雅的方式来实现的。但整体上来说是:简洁、代码组织有序、在兼容性方面做的也不错……

 

 

 

JetDrive Toolbox_Win_v1.3.0.0【创见苹果系统磁盘管理工具】 — JetDrive Toolbox专为创见苹果升级方案系列产品所设计,适用于JetDrive固态硬盘、JetDrive Lite扩容卡及JetDrive Go闪存盘。 — JetDrive Toolbox不仅能将JetDrive SSD保持在最佳状况、预防功能异常、侦测并阻止潜在问题发生,更针对JetDrive Lite与JetDrive Go提供资料复原功能。 — JetDrive专属功能:浏览硬盘信息、自我监测分析报告及硬盘使用状态,并确保SSD随时具备最新版本的韧体。 — JetDrive Lite专属功能:支持数据救援及省电模式,Power Save功能可在计算机进入休眠前卸除JetDrive Lite,并于计算机唤醒时自动重载,以达到省电目的。 — JetDrive Go专属功能:支持文件备份、资料救援及在线修复。Windows版本另提供格式化功能,协助将Windows不支持的文件格式,格式化成兼容于JetDrive Go的FAT32文件格式。 系统要求:JetDrive Toolbox支持以下操作系统 — Microsoft Windows 7 / Microsoft Windows 8 / Microsoft Windows 8.1 / Microsoft Windows 10 — Windows操作系统需先安装Microsoft .Net framework 4.0 — 需取得管理员权限 硬件要求:MacBook® / MacBook Pro® / MacBook Air® / Mac mini® / Mac Pro® / 足够的硬盘空间储存欲复原的档案 兼容型号 — JetDrive固态硬盘系列【JDM420 / JDM500 / JDM520 / JDM720 / JDM725 / JDM820】 — JetDrive Lite扩容卡系列【JDL130 / JDL330 / JDL350 / JDL360】 — JetDrive Go闪存盘系列【JDG300 / JDG500】
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值