ESOE-IDE v0.3 技术说明书

2023-11-12

ESOE-IDE v0.3 技术说明书

Author: Feng WeiGuo (冯卫国)

Email: forxm@21cn.com

Web: http://www.supertree.org

Tel: 86-0755-81030955

 

All Rights Reserved

2008-9

 

目录

 

ESOE-IDE v0.3 技术说明书... 1

1. 设计目标/特性... 3

2.类模型... 3

2.1 类模型和类声明... 3

2.1 类的名称空间管理... 6

3.绑定... 6

3.1 从HTML绑定js类... 6

3.2 从js类绑定DOM元素... 6

4.资源... 7

5.DOM元素寻址... 7

6.事件映射... 8

7.ESOE-IDE加载过程... 9

8. 类文件管理/打包输出/库文件... 9

9.ESOE-IDE对实现DOM类的建议... 10

9.1. 全局Z-index分配... 10

9.2. 事件映射方法... 10

9.3. 控件设计... 10

9.4. 窗体设计... 11

9.5. 对话框设计... 11

附录A. ESOE-IDE工具函数... 13

name convention. 13

$esoe.$preload. 13

$esoe.$declare. 13

$esoe.$new.. 13

$esoe.$derive. 14

$esoe.$import 14

$esoe.$bind. 14

$esoe.$find. 14

$esoe.$init 15

$esoe.$apply. 15

$esoe.$. 15

$esoe.$$. 16

$esoe.$notify. 16

附录B. 资源定义格式... 17

主资源格式... 17

附加资源格式... 17

附录C. 事件映射格式... 18

 

1. 设计目标/特性

  • 1. 由独立的js模块,和独立的html模块构造,减少传统Web设计时两者相互混合;
  • 2. 与传统IDE类似,Js和html之间的联系,应是代码(js)和资源(html)之间的关系;
  • 3. 伪编译:类库引用完整性检查/打包;
  • 4. 制作库文件(Library)功能;
  • 5. 事件à方法映射;
  • 6. 提供窗口框架/对话框/控件的功能;
  • 7. 提供类向导/映射向导等方便编辑;
  • 8. 输出的文件的js/html代码压缩;
  • 9. 类模型,基于早期版本的ESOE,提供类继承/名称空间等功能;
  • 10. 项目文件保存配置;
  • 11. 提供js/html语法着色编辑器;
  • 12. 自生系统:IDE自身使用js/html编码,使用IDE编译器制作生成;

 

2.类模型

ESOE-IDE v0.3是从早期版本ESOE v0.2演变而成,去除自动加载/共享/析构等功能,加入重要的类声明概念。

 

2.1 类模型和类声明

ESOE-IDE使用以下类模型:

  • 1.函数(Function)是类的构造函数,用于类实例的初始化;
  • 2.每个函数(Function)带有一个声明函数,用于构造类的原型(prototype);
  • 3.所有类在使用之前,必须声明,即调用声明函数。

 

以下给出实现以上类模型的实例,这些实例都可以兼容地应用到实际的编码中。

 

原始模型:

function MyClass(a,b)          //构造函数

{

       ...

}

MyClass._declare= function()              //声明函数

{

       MyClass2._declare();       //声明使用的外部类

      

       this.prototype={                   //构造原型

                     p1: 123,

                     f1: function(c,d)

                     {

                            var e= new MyClass2;     //使用外部类

                     }

              }

      

       this._declare=function(){}     //清除声明函数

}

 

....

MyClass._declare();              //声明一个类

var o= new MyClass(1,2);     //使用这个类

 

说明:

  • 1. 声明函数不带参数,避免引起闭包问题;
  • 2. 声明函数结束时清除声明函数,以允许多次声明;
  • 3. 使用一个类之前,必须先声明;
  • 4. 如果一个类使用了另一个外部类,在类的声明函数开始部分声明此外部类;
  • 5. ESOE-IDE中,类的声明函数的默认名称是"_declare";

 

使用类声明有以下好处:

  • 1. 使用大规模类库时,其中不被使用的类可以不用构造原型,加快系统加载,减少资源占用;
  • 2. 在类的声明函数开始部分声明外部类,如果此外部类未被加载,可以在应用启动时立即抛出异常,将运行时错误转为设计时错误,利于修改;

 

混合模型:

function MyClass(a,b)          //构造函数

{

}

MyClass._declare= function()       //声明函数

{

       ...

}

 

$esoe.$preload( "com.MyName.MyClass", MyClass, MyClass._declare );        //载入ESOE名称空间

...

var cls= $esoe.$declare("com.MyName.MyClass");          //声明一个类

var o= new cls(1,2);      //使用这个类

 

       说明:

  • 1. 使用$esoe.$preload()将类预载入ESOE名称空间,以利于管理;
  • 2. 预载入$esoe.$preload()不会调用类的声明函数;
  • 3. 使用$esoe.$declare ()声明类;
  • 4. $esoe.$declare ()自动清除声明函数;
  • 5. 混合模型可用于将已存在的代码快速改造为ESOE-IDE兼容的类;

 

IDE模型:

$esoe.$preload(

"com.MyName.MyClass",     //指定ESOE名称空间

function(a,b)          //构造函数

{

},

function()                     //声明函数

{

              ...

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ESOE-IDE v0.3 技术说明书 的相关文章

随机推荐

  • xshell传输文件到服务器(ubuntu)(上传下载)

    一 利用xshell上传下载内容 点击xftp按钮 绿色按钮 出现一个对话框 对话框左边是本地的文件预览 对话框右边是服务器当前路径的文件预览 上传下载文件 直接拖拉内容 二 其他方式 1 xshell连接服务器 本地虚拟机 2 首先在服务
  • python变量进阶(可变不可变,局部变量和全局变量)

    变量进阶 理解 目标 变量的引用 可变和不可变类型 局部变量和全局变量 01 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引用 传递的 1 1 引用的概念 在 Pyth
  • Mongodb常用语句总结

    1 查询所有用户信息 db system users find pretty 2 查询mongo启动进程 ps ef grep mongo 3 mongo常用操作命令 1 打开数据库 mongo 10 1 1 30 20000 admin
  • C++中promise和future详解

    Promise和Future 原理 C 11中promise和future机制是用于并发编程的一种解决方案 用于在不同线程完成数据传递 异步操作 传统方式通过回调函数处理异步返回的结果 导致代码逻辑分散且难以维护 Promise和Futur
  • js如何截取某个字符串前面或者后面的内容

    截取某个字符串后面的内容 var str http abc def ghi com var index str lastIndexOf str str substring index 1 str length 返回最后一个 后面的内容 截取
  • JavaScript -- 数组去重

    文章目录 方法一 利用indexOf 去重 思路 代码 方法二 利用splice方法去重 思路 代码实现 方法三 利用ES6的Set去重 思路 代码实现 方法一 利用indexOf 去重 indexOf 方法可返回某个指定的字符串值在字符串
  • REST API URI 设计的七准则

    在了解 REST API URI 设计的规则之前 让我们快速过一下我们将要讨论的一些术语 URI REST API 使用统一资源标识符 URI 来寻址资源 在今天的网站上 URI 设计范围从可以清楚地传达API的资源模型 如 http ap
  • 汇编指令与Intrinsics指令的对应关系汇总

    汇编指令与Intrinsics指令的对应关系汇总 参考网址 https software intel com sites landingpage IntrinsicsGuide 1 赋值指令 movq 使用方法 movq xmm m64 功
  • vs编译与停止调试时卡顿、无响应的问题

    这是由于VS运行太久参数大量的缓存导致 1 单击 开始 选择 运行 或者win r快捷键 2 键入 devenv exe resetuserdata 此命令会运行几分钟时间 Visual Studio 清除设置并将其自身重置到其最初的状态
  • java实现kafka消息发送和接收

    之前写了一篇关于kafka集群搭建的点击打开链接 想了解的可以看下 今天这个实现是和前面集群对应的 使用的是新版的API 属性如果想定制自己的 需要到官方网址上面去查看一下对应的值 推介大家多去看看官方的介绍和demo 网上有些翻译过来的例
  • 这可能是史上最详细的MES介绍

    本文篇幅较长 干货满满 可以先收藏 方便日后再次查看 目录 MES 的定义 MES 的产生背景 MES 的发展历程 MES 的功能介绍 MES 与其他 IT 系统的关系 MES 的业务价值 MES 的定义 MES Manufacturing
  • 关于webconfig 的配置跨域和理解

    今日碰到一个问题 就是在很久以前碰到的跨域问题 需求 页面要显示1个图片 但是因为各种原因 导致图片在服务器2上 但是要展示的程序在服务器1 的上面 这样就造成了在显示的时候出现了跨域的问题 本来的思路为直接写个程序进行后台获得图片的路径
  • DROP DATABASE

    在做迁移时 由于某种原因导致回退 现在准备将备库的数据库删除 然后重新部署dg 但在删除备库的时候遇到一些小问题 在节点一执行 oracle sde1 sqlplus as sysdba SQL Plus Release 11 2 0 3
  • Vmware安装到本地,磁盘不够解决方案

    在使用虚拟机的时候 如果在创建的时候选择错误的盘符 那么在安装虚拟机后这个盘符的空间容量不够的问题 那么如何把虚拟机迁移出来到另外的盘符 1 找到虚拟机安装路径 打开虚拟机点击虚拟机详细信息 查看详细的虚拟机的路径 2 找到虚拟机所有的文件
  • 小程序web-view,h5页监听返回到小程序指定页面

    在h5页面进行监听返回跳转判断 created this pushHistory window addEventListener popstate function e 首页点击返回 直接关闭网页 WeixinJSBridge call c
  • QT定时器与lambda表达式联合使用

    QTimer定时器在程序开发中经常使用 比如网络请求超时检查 定时刷新数据 控制动态图开始停止等功能 一般如果是定时触发某个标志 用专来的槽函数处理会显示有点繁琐 如果用lambda表达式处理就不用专门声明定义槽函数 这样代码会更简洁 下面
  • 在Eclipse中安装JSHint插件

    离线安装 1 下载插件包 http download eclipsesource com rsternberg jshint eclipse 0 9 8 20130728 0004 b94b446 zip 2 解压缩后是一个jshint e
  • Linux 自定义简单命令

    如何让一个脚本文件没有 sh后缀输入文件名即可执行 权限问题 首先当然得让它成为可执行文件 不要出现死亡Permission denine 执行以下命令 chmod x 文件路径 文件名 两种方式 当我们输入一个命令的时候默认是从下面这些路
  • 利用Python中的statsmodels简单建立多元线性回归模型(一)

    利用Python中的statsmodels简单建立多元线性回归模型 一 概念简单介绍 多元线性回归其实是在一元线性回归的基础上增加了若干个自变量个数 数学表达式如下 其中 y y y是因变量 响应变量 0
  • ESOE-IDE v0.3 技术说明书

    ESOE IDE v0 3 技术说明书 Author Feng WeiGuo 冯卫国 Email forxm 21cn com Web http www supertree org Tel 86 0755 81030955 All Righ