以列表形式显示大量数据是各种开发中最常见和基本的需求之一。在数据保存在关系型数据库的Web开发中,程序员要处理的是分开的两项任务,一是从数据库中查询记录,二是在视图层生成显示这些数据的HTML。如何分页是主要问题。Domino以界面为导向的开发风格和不适于动态查询的文档型数据库使得程序员面临完全不同的处境和问题。预先设计的视图不仅定义了包含的文档,也设置了外观属性,集数据层和外观层的功能于一体。在客户机中,视图拥有和设计时同样的外观,无需编程。在Web端,因为Domino默认生成的视图HTML过于简陋,程序员还是需要各种各样的方法改进其外观和操作性。下面就胪列了我曾经接触和使用过的Domino视图Web展现技术,并做了简单分析和评价。
1. 使用Domino生成的HTML
优点:
- 无需编程。
缺点:
- 显示原始简陋。
2. 使用Applet
优点:
- 无需编程。
- 操作与客户端一致。
缺点:
Applet的所有缺点,包括:
- 用户所在机器需安装Java运行时,虽然目前大部分机器都已安装。
- 需要下载和载入Applet,速度较慢。
- 与网页整体风格不一致。
- IBM早已放弃其更新,实际上自Java7 Update 51起因为没有提供Java运行时要求的权限属性(Permission Attribute)Domino自带的Applet都无法在浏览器里运行。
3. 将视图内容显示为HTML
这种方法需要在视图的列公式内计算产生最终的HTML。
优点:
- 可以精细地自定义显示的内容。
缺点:
- 笨拙繁琐,难以维护。
- 该视图只能用于Web显示,无法通用于客户端显示和后台查询。
- 列中的大量HTML计算,对视图索引的速度和大小都有负面影响。
4. 在视图原始HTML载入后用JavaScript调整修饰
Domino早期Web开发中常使用的方法,在显示视图的页面的onload事件里运行一段脚本,修改视图原始的HTML。Domino产生的视图HTML原始、丑陋、古怪且总不改进,使用这种方法需要透彻了解这些HTML的细节。
优点:
- 能够完全自定义视图的展示,将其修改成任何所需的外观。
- 脚本写得足够灵活的话,还能配合代理获取视图的外观属性以设置列