文档介绍:本文由aqiang1988贡献
WEB 客户端编程技巧 2010年09月11日星期六 22:51 一、概述用 C/S 程序转换成 WEB 应用程序后,保留了大部分 C/S 环境下的代码,并且大部分都能执行过去。但是在 BS 平台下,原来的 PB 代码从客户端转成了 IIS 上的服务代码,原的“客户端”就成了浏览器,转换后的客户端编程其实就是面向浏览器的编程。根据目前我对 , 代码, 里能实现的内容,用 PB 代码也基本能实现,.net 里不能实现的,PB 也可实现(如 datawindow),但这些都属于服务端的编程范畴,实际应用中很少会碰到在 PB 里 代码的,除非要写一些很特殊的代码,所以,可以说,服务端方面仅用 PB 代码就可以彻底解决。但实际上,这种纯 PB 代码的程序一发布成 WEB 后,会存在不少问题,在 C/S 环境下,要完成一个操作往往需要多个交互过程,如“打开窗口、选择行、输入数据、返回、刷新页面”这么一个过程,转成 B/S 后,运行是这样的“打开窗口(POSTBACK)、选择行(POSTBACK)、输入数据(回车后 POSTBACK)、返回(POSTBACK)”,那么多的 POSTBACK 使得操作变得很笨重, 就连简单的一个 MESSAGEBOX, 都要2次 POSTBACK: “打开消息窗(POSTBACK)、点确定(POSTBACK)”。因此,使用 PB11开发 WEB 程序将要面临一个很严峻的问题:如何提高客户端的性能,减少 POSTBACK 次数。值得庆幸的是, WEB 页面使用了 AJAX 技术,POSTBACK 并不会产生整个页面的提交,而是部分提交。另外,,可以通过这些编程接口进一步优化页面。那么,有哪些地方可以运用 javascript 和 html 代码优化页面呢? 1、数据窗口对象 appendedhtml 属性。刚接触 WEB 开发的时候, 一定会被他的那么多 unsupport 属性所蒙蔽, 原先在 C/S 下绚丽多彩的界面,转成 B/S 后变得暗淡无光,因此也就失去了进一步开发的乐趣。其实不然,PB 提供了 appendedhtml 的属性后,使 WEB 界面编程变得更为灵活,一个小小的 appendedhtml,可以将 DHTML、javascript 等所有页面技术嵌入到里面去。可以实现的效果如:透明、垂直居中、渐变、鼠标移动特效等等。
查看发布成 WEB 后的页面代码, 会发现, appendedhtml 里的内容是放在<div [appendedhtml]> 里,也就是说,数据窗口的内容转成了 WEB 元素,如标签转成了<div>,列就是<span>。 Appendedhtml 的写法:引号必须使用转义符~如:modify(‘ = "style = ~~"padding-top:2px;~~"’),至于如何设置元素属性,可以查看《DHTML 手册》。 2、数据窗口事件。此方法是在数据窗口对象初始化的时候写入对应的脚本,如: #IF DEFINED PBWEBFORM THEN = "u