XHTC最新进展

贴了两个截图在下面

不打算做成象Bindows那样整个成体系的

打算做成一套东西,但可以根据需要有选择性地组合,
毕竟WEB开发的界面需求太复杂,估计很少会有象ProcessBuilder那样的应用
因此XHTC里的ToolBar,Menu,TreeView,ListView等等都是可以单独使用的
会定义一些事件,可以选择事件触发时使用自定义的处理方式

XHTC的宗旨应该是:效率优先,力求方便,不失界面效果

目前核心的那个JS文件有15K,不过使用时可以去掉没有使用的组件对应的代码
各个HTC文件都很小,一般都在2-3K左右

可能有人会问,为什么HTC文件这么小,是因为在一般做法中放在HTC中的很多代码都移到了核心JS中

为什么要这么做呢,有两个原因:

第一个原因是最重要的,因为当页面中使用了同一类型的多个HTC时,会装载多次,
尤其象ProcessBuilder这样的应用,会有很多菜单,这样一来很多其实都是同样的代码
也会装载多次,效率不行。因此HTC中基本上只保留必须的方法、属性和事件定义,
公共代码部分都移到了核心JS中,JS只需要装载一次

第二个原因是考虑到可能的版本问题,虽然目前没有考虑IE5.5以下版本,但如果考虑的话,
当使用非Viewlink方式的element behavior或者attached behavior时,也可以使用这些代码
这个原因不重要,估计以后用户都会是IE6.0以上吧

HTC还是不适合完全按照类似Delphi的VCL那样进行设计,比如ToolButton,MenuItem之类的
绝对不能设计成一个HTC,因为HTC不能象JS那样只装载一次,同类型的也不行,不知道MS
这么做是处于什么考虑?是为了支持动态改变HTC的内容?

不知道有没有朋友知道如何让同一页面中多个同类型的HTC只装载一次,有的话一定要告诉我一生

如果这个特性可以被支持,那可就爽了,就和写VCL组件差不多了,会方便和好用很多的

为了可以方便地在运行期间使用JS来动态维护各组件的数据内容,
目前只能是HTC结合JS对象来做,不过还算方便

JS真是个好东西,可千万别因为只是个WEB中的脚本语言而小看了他
以前我用的不深的时候也觉得没什么,最近越来越觉得JS不简单了
尤其是prototype和call,apply,eval等方法

举个例子,大家知道如何在JS中实现对象继承吗?
我以前还以为做不到,以前看的讲JS的书上都说是不支持的,
最近看Bindows那接近100K的JS代码才搞明白

不过private,protected这些是不支持的,HTC倒算支持private



这两图的效果是通过点击“工具”下面的那个按钮实现Theme切换的
页面的布局是由使用者自行设计的,不象Bindows那样定义left,top,width,height,right,bottom之类的
现在XHTC还不考虑Bindows那样的方式
原文地址:https://www.cnblogs.com/Ju/p/65531.html