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/
分享到:
相关推荐
国内最新的 省、市、区/县、街道 四级联动数据
pytorch-lightning 1.7.0离线文献。 ... ...本地查询速度快,大大提高开发效率。 pytorch-lighting(简称pl),它其实就是一个轻量级的PyTorch库,用于高性能人工智能研究的轻量级PyTorch包装器。缩放你的模型,而不是样板...
# 【Unity造轮子】实现一个类csgo的武器轮盘功能 # 作者信息 姓名:向宇 博客:[https://xiangyu.blog.csdn.net/](https://xiangyu.blog.csdn.net/) # 文章说明: ...
它提供了一套全面的通用工具,因此用户可以专注于制作游戏,而无需重新发明轮子。 一键即可将游戏导出到多种平台,包括主要的桌面平台(Linux,Mac OSX,Windows)以及移动平台(Android,iOS)和基于Web的平台
内含有登录,成员列表,联系人, 群组,群组成员,好友,好友分组,黑名单,消息记录,消息撤回,消息已读,消息点赞,还有很多小轮子项目 例如通过AOP实现日志,分布锁注解,频控注解,ip解析归属地等 安装教程 ...
方便以后遇到新项目可以直接拿来用,避免重复造轮子了. 程序功能列表 1.登录界面 2.加载界面 3.26键中英文键盘 4.QSS样式表 5.日志管理 6.冻结个别列的TableWidget 7.自定义TableWidget 8.系统时间设置 9.时间选择...
com / crazii / blade / wiki / Roadmap聊天频道:https://gitter.im/engine-blade/编码标准:CodingStandard.md为什么要重新发明另一个轮子,为什么要开源? 该项目始于2010年,旨在研究3D引擎背后的技术。 它的...
公司系统较多依赖于原当当维护的dubbox框架,而业务测试中又需要能有一个支持接口级的压测工具(基于dubbo的测试工具之前有造过一个轮子详见:https://blog.csdn.net/qq355667166/article/details/78914453),经过...
14. 所有车轮总数:(5 + 3)辆 × 4个轮子/辆 = 32个轮子。 15. 书可放层数:(4层×9本/层) / 6本/层 = 6层。 16. 每个同学分到的书:36本 / (4组×3人/组) = 3本/人。 17. 每个同学分到的矿泉水瓶数:2箱×8瓶/箱...
不要重复造轮子 (Stop Trying to Reinvent the Wheel),希望能帮助大家少走弯路。 域名配置: 前台域名:http://www.cms.com [目录指向:/web] 静态文件域名:http://static.cms.com [目录指向:/static] ...
自己造的轮子,贴出源代码跟大家交流一下。配置参数: self . def = { html : '' , // 抽奖效果,添加HTML标签 hoverClass : '' , // 抽奖效果,在TD添加样式 startTime : 50 , //起始延迟时间 onlyTime : 2 , ...
使用说明: 1.将 libs 目录下的 protobuf 移动到自己工程的 libs 目录下 2.在 Target 的 Header Search Paths 中添加: ...重新造轮子?没问题: http://blog.csdn.net/yang3wei/article/details/9369735
使用预编译轮子: 1) 转到发行版(文件)并下载所需的 tarball; 2)使用命令安装它:python3 -m pip install /path/to/wheel.whl 或者简单地在pip中使用URL:python3 -m pip install ...
NULL 博文链接:https://changzhiwin.iteye.com/blog/505946
基于CTP接口的开源性,打破收费软件垄断,采用VNTrader开源项目也可解决自己造轮子导致周期长门槛高的问题。 VNTrader是专门针对商品期货CTP接口的GUI窗口程序,支持多个Python策略组成策略池,支持回测,支持多周期...
### Android各类好看UI组件的GitHub仓库链接合集 ...对于开发者来说,合理利用这些资源可以有效减少重复造轮子的工作量,将更多精力投入到业务逻辑的开发中去。希望本文能够为正在寻找高质量UI组件的开发者们提供帮助。
这既简化了开发流程,也避免了重复造轮子,因为系统浏览器已经提供了丰富的功能和优化的性能。 首先,让我们了解Intent的基本结构。Intent主要有两种类型:显式Intent和隐式Intent。在这个场景下,我们使用的是隐式...
frida-server手机版安装压缩包,x86 32位架构
在用Python开发时(Windows环境),会碰到需要安装某个版本的第三方库,为了以后查找、安装方便,总结如下: windows版的各种Python库安装包下载地址: ...一、打开cmd 二、将cmd当前目录切换到Downloads,命令为cd ...