`
trydofor
  • 浏览: 150463 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

分享轮子: a9engine/a9text

阅读更多

http://a9engine.sf.net
学习和交流,分享个人经验,特将主页的js-driven心得整理到a9engine和a9text
如果希望有更高更多更好的应用,请大家多关注JSI(http://jsintegration.sourceforge.net/)

================================================================
1. a9engine 是什么?

a9engine是一套轻量级的js引擎,为web开发提供便捷的js管理.

a9engine的产生和应用都出于个人目的,这一点从名字上就可以看到:)
我本人很乐意分享自己的心得和成果,但不要试图期望我把a9engine做成产品.

1.1. a9engine 能做什么
  1) 按需载入js
     使用require方法,可以同步载入js,并选择释放的作用域.
  2) 根据配置,自动解决js的依赖关系
     根据包配置文件__info__.js,先于脚本载入所依赖的js
  3) 脚本隔离,解决名词冲突.
     当a.js和b.js都有Func方法时,可以使用a.Func和b.Func来防止方法覆盖
  4) 合并脚本
     可以把依赖的脚本,做为脚本的一部分放在同一个名词空间释放.

1.2. a9engine 不能做什么
  1) 简单的脚本管理以外的事情,比如ui,算法,或复杂逻辑.
  2) 完全跨浏览器问题.

1.3. 同类产品有哪些?
  目前知道的有JSI,他是一个优秀的框架,同时提供了很多产品级的方案.
  但我个人觉得,在我个人应用上有些大材小用了,甚至有些冗余和不灵活.
  而且,在随后的a9text应用上,我更倾向于自己的a9engine.

2. a9engine 主要的目录结构:

|  readme.txt           正在阅读的文本
|  config.js            配置文件
|  a9engine.js          核心脚本
|
+- __testdemo__         各个功能的测试和演示
+- doc                  文档
+- com/trydofor/a9text  **重点内容
+- com/trydofor/a9js
|   +- http
|   |      __info__.js  包描述文件
|   |      xhr.js       XmlHttpRequest类
|   +- code
|   |      __info__.js  包描述文件
|   |      des.js       Des算法类
|   |      md5.js       Md5算法类
|   |      encoder.js   编码转换类
|   +- format
|   |      __info__.js  包描述文件
|   |      date.js      类是java中DateFormat类的功能

3. a9engine 约定和规则

  *) js文件,编码为 UTF8(BOM),避免非ascii字符载入错误.
  *) 使用空格(0x20)缩排,而不是tab(0x09),尽管这样会使文件庞大.
  *) js中成员,需要var声明作用域,最大限度保持名词空间清洁.
  *) 使用python和java的命名规则.
  *) 包名尽量以字母开头,使用小写英数,否则以类路径导入时出错.
  *) '__'开头和结尾的成员或文件,表示私有.

================================================================================
更多内容,请参看
源代码(*.js)
doc/
testdemo/

分享到:
评论
4 楼 hax 2007-06-21  
好。赞一个。希望能有朝一日把四个轮子合成一个火箭推进器。
3 楼 jindw 2007-06-21  
a9text我是蛮感兴趣的呢,期待中:)
2 楼 trydofor 2007-06-21  
先,感谢轮子厂商的回复:)

不过我这是自行车的轮子,嘿嘿.
a9engine是为a9text服务的一个副产物,俺会把更多的注意力放到a9text上来,实现所见即所得的js驱动的wiki,但愿我能一直保持兴趣并完成他:)

目前online editor已经很优秀了,比如' editor'
web2.0也给了更多更完美的体验.

a9text,我都闭上眼睛造了1年多了,继续闭上眼睛造呢,呜呼.
1 楼 jindw 2007-06-21  
trydofor 写道
  *) js文件,编码为 UTF8(BOM),避免非ascii字符载入错误.

我觉得发布的时候压缩一下。吧非ascii字符转换成\uxxxx的形式比较安全:)

现在做这个的人还真不少了,单单在je现身过的。hax的pie,a9engine,我写的JSI还有前几年在这里宣传过的JSVM,可以组装一辆四轮卡车了:)

相关推荐

    开发轮子(一):全国省/市/区/街道三、四级联动

    国内最新的 省、市、区/县、街道 四级联动数据

    pytorch-lightning离线文档

    pytorch-lightning 1.7.0离线文献。 ... ...本地查询速度快,大大提高开发效率。 pytorch-lighting(简称pl),它其实就是一个轻量级的PyTorch库,用于高性能人工智能研究的轻量级PyTorch包装器。缩放你的模型,而不是样板...

    【Unity造轮子】实现一个类csgo的武器轮盘功能源码

    # 【Unity造轮子】实现一个类csgo的武器轮盘功能 # 作者信息 姓名:向宇 博客:[https://xiangyu.blog.csdn.net/](https://xiangyu.blog.csdn.net/) # 文章说明: ...

    Godot Engine –多平台2D和3D游戏引擎-C/C++开发

    它提供了一套全面的通用工具,因此用户可以专注于制作游戏,而无需重新发明轮子。 一键即可将游戏导出到多种平台,包括主要的桌面平台(Linux,Mac OSX,Windows)以及移动平台(Android,iOS)和基于Web的平台

    基于整洁架构搭建的个人IM开源项目

    内含有登录,成员列表,联系人, 群组,群组成员,好友,好友分组,黑名单,消息记录,消息撤回,消息已读,消息点赞,还有很多小轮子项目 例如通过AOP实现日志,分布锁注解,频控注解,ip解析归属地等 安装教程 ...

    QT 完整项目框架 源码分享

    方便以后遇到新项目可以直接拿来用,避免重复造轮子了. 程序功能列表 1.登录界面 2.加载界面 3.26键中英文键盘 4.QSS样式表 5.日志管理 6.冻结个别列的TableWidget 7.自定义TableWidget 8.系统时间设置 9.时间选择...

    使用c ++ 98的跨平台3d引擎-C/C++开发

    com / crazii / blade / wiki / Roadmap聊天频道:https://gitter.im/engine-blade/编码标准:CodingStandard.md为什么要重新发明另一个轮子,为什么要开源? 该项目始于2010年,旨在研究3D引擎背后的技术。 它的...

    jmeter-plugins-dubbo-2.7.4-jar-with-dependencies.jar

    公司系统较多依赖于原当当维护的dubbox框架,而业务测试中又需要能有一个支持接口级的压测工具(基于dubbo的测试工具之前有造过一个轮子详见:https://blog.csdn.net/qq355667166/article/details/78914453),经过...

    二年级数学上册解决问题练习.doc

    14. 所有车轮总数:(5 + 3)辆 × 4个轮子/辆 = 32个轮子。 15. 书可放层数:(4层×9本/层) / 6本/层 = 6层。 16. 每个同学分到的书:36本 / (4组×3人/组) = 3本/人。 17. 每个同学分到的矿泉水瓶数:2箱×8瓶/箱...

    wms:后台管理系统源码分享

    不要重复造轮子 (Stop Trying to Reinvent the Wheel),希望能帮助大家少走弯路。 域名配置: 前台域名:http://www.cms.com [目录指向:/web] 静态文件域名:http://static.cms.com [目录指向:/static] ...

    jquery-table-lottery:九宫格抽奖插件源代码

    自己造的轮子,贴出源代码跟大家交流一下。配置参数: self . def = { html : '' , // 抽奖效果,添加HTML标签 hoverClass : '' , // 抽奖效果,在TD添加样式 startTime : 50 , //起始延迟时间 onlyTime : 2 , ...

    Cocos2dx 集成 protobuf2.5 工程(XCode)

    使用说明: 1.将 libs 目录下的 protobuf 移动到自己工程的 libs 目录下 2.在 Target 的 Header Search Paths 中添加: ...重新造轮子?没问题: http://blog.csdn.net/yang3wei/article/details/9369735

    GDAL wheels for linux:用于 Python 和 C/C++ 项目的 GDAL 轮子(仅限 Linux)-开源

    使用预编译轮子: 1) 转到发行版(文件)并下载所需的 tarball; 2)使用命令安装它:python3 -m pip install /path/to/wheel.whl 或者简单地在pip中使用URL:python3 -m pip install ...

    发明轮子之“红黑树 二”

    NULL 博文链接:https://changzhiwin.iteye.com/blog/505946

    VNTrader.rar

    基于CTP接口的开源性,打破收费软件垄断,采用VNTrader开源项目也可解决自己造轮子导致周期长门槛高的问题。 VNTrader是专门针对商品期货CTP接口的GUI窗口程序,支持多个Python策略组成策略池,支持回测,支持多周期...

    Android各类好看UI组件的github仓库连接合集

    ### Android各类好看UI组件的GitHub仓库链接合集 ...对于开发者来说,合理利用这些资源可以有效减少重复造轮子的工作量,将更多精力投入到业务逻辑的开发中去。希望本文能够为正在寻找高质量UI组件的开发者们提供帮助。

    intent跳转网页

    这既简化了开发流程,也避免了重复造轮子,因为系统浏览器已经提供了丰富的功能和优化的性能。 首先,让我们了解Intent的基本结构。Intent主要有两种类型:显式Intent和隐式Intent。在这个场景下,我们使用的是隐式...

    frida-server-15.2.2-android-x86.xz

    frida-server手机版安装压缩包,x86 32位架构

    各种Python库安装包下载地址与安装过程详细介绍(Windows版)

    在用Python开发时(Windows环境),会碰到需要安装某个版本的第三方库,为了以后查找、安装方便,总结如下: windows版的各种Python库安装包下载地址: ...一、打开cmd 二、将cmd当前目录切换到Downloads,命令为cd ...

Global site tag (gtag.js) - Google Analytics