如何写出优雅的代码?

everything is null
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
        最近在用MS Ajax Extensions 1.0,很多页面都涉及到了大数据量的加载,因此需要实现一个数据加载等待对话框,实际就是利用一个Div显示一个滚动的小图片和一小段说明,例如:数据正在加载,请等待...
功能实现的思路很简单,在开始调用数据时显示DIV,完成后隐藏DIV,当然初始时DIV是隐藏的。
为此我们需要为页面中的Sys.WebForms.PageRequestManager注册两个事件,即开始请求和结束请求。
                Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
                Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
而后,分别在两个事件中对DIV进行控制。
                 
                Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
                Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
                
function BeginRequestHandler(sender, args)
                
{
                     
var elem = args.get_postBackElement();
                     ActivateAlertDiv('visible', 'AlertDiv', elem.value 
+ ' 数据正在加载,请稍候。');
                }

                
function EndRequestHandler(sender, args)
                
{
                     ActivateAlertDiv('hidden', 'AlertDiv', '');
                }

                
function ActivateAlertDiv(visstring, elem, msg)
                
{    
                     
var adiv = $get(elem);
                     adiv.style.visibility 
= visstring;
                     adiv.innerHTML 
= msg;                   
                }

               
当然层你要事先设定好。
               <div id="AlertDiv"></div>
这里需要注意一个问题,就是如果这两个事件出错,那么页面将失去无刷新功能。例如,如果找不到这个层,那么页面虽然能够正常加载,显示,但是将不能实现无刷新了。