首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

用dwr技术展示页面数据加载状态

2012-11-10 
用dwr技术显示页面数据加载状态问题: 用dwr技术查询海量数据时,用户点击按钮,提交请求后,页面长时间没反应

用dwr技术显示页面数据加载状态

问题:
用dwr技术查询海量数据时,用户点击按钮,提交请求后,页面长时间没反应.问题反映到我这.当然除了要提高性能外,也得给用户一个提示,比如出现"正在加载数据.."的提示.
解决办法:
如果要实现这种效果,就得在客户端用js判断加载情况,请求前是一种状态,请求后(后台处理,返回数据给前台)又是一种状态.

dwr工具包提供了两个函数,专门处理这两种情况:
(1) 请求前处理
DWREngine.setPreHook(jsfun)
在DWR调用之前设置执行一个函数(但是这个函数无参数),例如显示"正在加载数据.."信息
(2)请求后处理
DWREngine.setPostHook(jsfun) 在DWR调用之后要执行的函数.例如隐藏"正在加载数据.."信息

DWREngine.setPreHook(jsfun)在调用DWR之前,运行jsfun函数。DWREngine.setPostHook(jsfun)在调用完DWR后,运行jsfun函数。
当然我们可以用它来显示程序运行时的动画效果.

function useLoadingImage(imageSrc) {   var loadingImage;   if (imageSrc) loadingImage = imageSrc;   else loadingImage = "ajax-loader.gif";   DWREngine.setPreHook(function() {     var disabledImageZone = $('disabledImageZone');     if (!disabledImageZone) {       disabledImageZone = document.createElement('div');       disabledImageZone.setAttribute('id', 'disabledImageZone');       disabledImageZone.style.position = "absolute";       disabledImageZone.style.zIndex = "1000";       disabledImageZone.style.left = "0px";       disabledImageZone.style.top = "0px";       disabledImageZone.style.width = "100%";       disabledImageZone.style.height = "100%";       var imageZone = document.createElement('img');       imageZone.setAttribute('id','imageZone');       imageZone.setAttribute('src',imageSrc);       imageZone.style.position = "absolute";       imageZone.style.top = "0px";       imageZone.style.right = "0px";       disabledImageZone.appendChild(imageZone);       document.body.appendChild(disabledImageZone);     }     else {       $('imageZone').src = imageSrc;       disabledImageZone.style.visibility = 'visible';     }   });   DWREngine.setPostHook(function() {     $('disabledImageZone').style.visibility = 'hidden';   }); } 

?

热点排行