实现仿Windows程序无刷新的Web应用

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

现在一部分Web程序开发人员在做B/S程序时,其界面表现上模仿了C/S结构的windows程序,使得其程序看起来既美观又有创意,他们努力把IE的外观屏蔽掉,比如去除了IE的菜单栏,去除了IE的工具栏,甚至用ActiveX控件使页面全屏显示等等,这样,使得他们设计出的界面完全没有了IE的影子,使得大多用户看到程序的操作界面后都会有C/S程序的感觉,其新奇的效果确是比普通的Web界面迎得了更多的客户满意度。

Web程序毕竟是与Windows程序有着本质的区别,要想完全模仿windows程序的操作界面还是有一定的难度的。比如,Web程序中,其前台与后台进行交互时会使页面刷新,刷新过程中屏幕会有短时间的闪烁。我们知道Windows程序是不会有这种现象的,那么有人就问,能否把Web程序模仿得与windows更像一些,不让页面刷新呢?答案是肯定的,下面我就来介绍一下怎么样来实现Web页面的无刷新。

值得说明的是,我介绍的这种方法也许并不是最好的解决办法,但却是一个有效的方法。那么,怎样使页面不刷新却还要前台与后台进行数据交换呢?

我的解决方法是:前台用JavaScript来编写,后台的业务逻辑用本地的WebService来编写,然后在提交数据时不要用submit来提交页面,而要用JavaScript来调用本地的WebService,值得注意的是,用JavaScript来调用后台的WebService并不会造成页面的刷新,却可以使前台与后台进行数据交换。这种设计就解决了我们提出的问题。

接下来我用MSDN上的一段代码示例具体怎样用JavaScript来调用WebService:

 
 

 
 

如上述代码,解决了不用提交就可以使前台数据调用后台WebService的方法处理数据并返回结果了。关键技术既然解决了,无刷新也就简单了。

比如需要Web页面上显示一个包含了多条记录的列表,然后列表上面有些功能按钮,进行添加删除修改。怎么做呢?

首先,我们可以利用JavaScript调用后台WebService的方法取得列表的所有数据,返回结果可以返回一个XML对象(DOM),然后再在前台用JavaScript把这个返回的XML对象解析,操纵TableHTML表单元素,把解析出的数据显示成列表的样子。

其次,列表上面的功能按钮不要使用服务器控件,而要用HTML控件,在其onclick属性上写个JavaScript函数,比如”AddData()”.这样,当用户点击此按钮后就会自动执行JavaScriptAddData()函数了,我们可以在此函数的定义处调用后台的WebService的方法WS_AddData()来进行数据库的添加操作。

再次,需要注意的是,当调用完WebService后还要立即用JavaScript操作表单元素把新增加的数据添加到显示列表上。这样就实现了页面没有刷新,而页面上的数据却做了数据库操作且即时变化了,这就是无刷新效果了。

如上所述,修改与删除也均是这样的原理,前台的数据变化靠JavaScript操纵表单来实现(这也是JavaScript的犀利之处),而后台的所有与业务逻辑相关的数据库操作都用WebService来实现,然后用XML对象使JavaScriptWebService进行数据交换。

这样,一个仿Windows程序无页面刷新Web应用就建成了。当然,这样的方法需要开发人员对JavaScript的操纵能力非常强。

最后需要说的是,这样的解决方案有其好处,当然也有其不利的地方,就是虽然达到了新奇的效果,但是相应的编写前台代码的工作量会大大增加,同时也不能利用Web服务器控件提交事件的功能了。

我觉得这种方法如果根据需要适当加以应用确会产生意想不到的效果。

转载于:https://www.cnblogs.com/shangmeizhai/archive/2004/09/09/41421.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值