在gMIS更新中的几点备忘

昨天在进行gMIS的功能开发时梳理了一些情况,记录如下,供以后gMIS开发及在其上的二次开发参考。

该次开发主要是为gMIS引入可视化编辑器的任务。

1.

在gMIS的设计中,特殊I/O应该走extra目录,使用外挂的方式进行非常规的输入和输出操作。在本次可视化编辑器的探索中,一开始走了弯路,在字段上,显示尝试了UEditor,KindEditor和XhEditor,均告失败,由于gMIS的特殊结构,这些成熟的编辑器也无法在其中顺利运行。

在这个思路上走得更远的是,自行改制了 UFQIEditor, UFQIEditor相对于其他编辑器来说,精炼了很多,改制完成后,尝试将其嵌入到gMIS中调试时,发现也不行,程序中,连window,document等基本的JavaScript运行和操作DOM的基本环境都没有。

这个方向看来真的有问题。于是赶紧撤出来,使用“特殊I/O走extra目录”来处置的思路。

在window.open和iframe两种方式对比中,选择使用iframe方式。

2.

gMIS严重依赖GTAjax,经由GTAjax通信的页面,其中的JavaScript程序基本无法得到准确执行。这主要是因为GTAjax中大量使用iframe方式递交用户的请求,iframe本身会构造一个全新的document对象,因此通过GTAjax带来的JavaScript的执行,也只是在iframe内部,如果要通过在iframe内部的JavaScript来改变当前页面的行为或者状态,就需要使用parent之类的窗口继承关系。

3.

gMIS只有一个HTML页面运行环境,所有的操作都在一个HTMLObject中进行,这为程序的运行提供了便利,在处理复杂问题时,也容易导致问题,需特别注意。

这个HTMLObject的组成包括:

HTML —- 通过GTAjax 方式 include进来一个 ido的内容文件 —- 在ido的元素上做进一步的操作 —- 后台程序jdo负责处理这些操作,对其应答 —- 循环往复….

 

 

此条目发表在-gMIS, 计算机技术分类目录。将固定链接加入收藏夹。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code