asp.net中最简单实用的无刷新技术

本文介绍了一种在ASP.NET中实现无刷新页面的技术方案,通过ClientCallback进行前后端交互,提升用户体验。文章详细讲解了实现步骤及代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作为从事B/S系统开发的程序员,特别是前台设计 的,经常会涉及到 页面的布局和用户体验,不停地想怎样把界面设计布局的恰当,怎样使用户有更好的体验。无刷新技术就是为了让用户有更好的体验,现在关于无刷新技术非常多, 大家最熟悉听得最多的就是Ajax,只要一提到Ajax就代表了无刷新或异步更新。现在也出现了很多关于Ajax的框架,总之实现无刷新页面的方法有很 多,可以选择的框架也很多,常用的有jquery、prototypejs,微软也出了自己的Ajax组件,也有人开发出自己的Ajax框架

Ajax并不是什么新技术,现在来说用到的也不多,我觉得尽量少用,除非需要否则不应大量的这种无 刷新效果。就我在开发上经常用到就是asp.net2.0自带的ClientCallback,非常简单实用,我的程序也不需要大量的无刷新,只是某几个 页面需要后台验证和操作少两数据。对于这种情况,我不可能去加个框架和加几个文件进来,之前也用过prototypejs,在一个团队 里开发都有一套严格的规范,在开发时需要加入外部文件都是有严格限制,反正在我们的开发团队是这样。

      使用ClientCallBack实现无刷新的步骤:

1.要实现这种效果后台文件aspx.cs的Page类必须继承ICallbackEventHandler接口,如

  1. public  partial  class  _Default : System.Web.UI.Page, ICallbackEventHandler  

2.在前台.aspx文件实现回调脚本。

  1. function callServer(action)   
  2. { <%=this .ClientScript.GetCallbackEventReference( this , "action" , "responseBack" , "context" , true )%>   
  3. }  

//上面的异步调用处理完到执行响应函数ret是返回的参数

  1. function  responseBack(ret)   
  2. {   
  3.     switch (ret)   
  4.     {   
  5.         case  0:dosomething; break ;   
  6.         case  1:dosomething; break ;   
  7.     }   
  8. }  

  1. function  checkInput()   
  2. {   
  3.     var  action= “add”; //需要传递到后台的参数,需要什么参数就传什么参数,例如可以传少量数据    
  4.      callServer(action);//调用回调函数    
  5. }  

整个调用入口在checkInput(),在需要的地方调用checkInput函数即可。

3.第三步,刚才说要必须继承ICallbackEventHandler,同时要实现RaiseCallbackEvent和GetCallbackResult这两个方法。

  1. public   void  RaiseCallbackEvent( string  eventArgument)   
  2. {   
  3.     //eventArgument就是上面传过来的参数action    
  4.     // 服务器端操作,在这里可以根据action进行有关的操作    
  5.     callbackResult = “返回的数据”;   
  6. }  

  1. public   string  GetCallbackResult()   
  2. {   
  3.     return  callbackResult;   
  4. }  

      这样就基本实现了无刷新页面。我们再来简单回顾一下整个过程,首先,后台页面必须继承ICallbackEventHandler接口,并实现实现 RaiseCallbackEvent和GetCallbackResult这两个方法,这两个方法的原型就是上面这样的格式,然后在前台页面写几个相关 的调用 函数,构造好参数,调用callServer(action),这样程序就会自动调用后台的RaiseCallbackEvent方法,然后通过GetCallbackResult返回结果,最后前台脚本responseBack(ret)根据返回的结果进行处理

      整个调用过程:checkInput()-》callServer(action)-》RaiseCallbackEvent(string eventArgument)-》GetCallbackResult()-》responseBack(ret)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值