实现web页面无刷新操作的几种方法

本文介绍了三种实现web页面无刷新操作的方法。第一种利用AJAX基础调用,通过XMLHttpRequest对象发送POST请求,服务器端处理请求并返回XML数据填充页面。第二种方法是使页面实现ICallbackEventHandler接口,通过RaiseCallbackEvent和GetCallbackResult方法配合JavaScript处理数据。第三种方法是在服务器端一次性获取大量数据,缓存于客户端,通过JavaScript操作实现无刷新更新。

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

第一种方法:

如果要是使用的最基础的ajax调用方式,应该做这几个步骤:1)   在客户端使用XMLhttp,通过javascript类似的代码
objXMLHttp.onreadystatechange     =   函数名,执行填充市区的方法;
                                        objXMLHttp.open(   'POST',   要处理postback的页面,   true   );
                                        objXMLHttp.setRequestHeader(   'Content-Type',   'text/xml'   );
                                        objXMLHttp.send(   xml格式的参数,是选择的省的index);
2)在Page_laod中,通过类似的代码,不要使用IsPostback.
if   (   (Request.ContentType.ToLower()   ==   "text/xml")   &&   (Request.RequestType.ToLower()   ==   "post")   )
                        {
                                XmlDocument   objXML   =   new   XmlDocument();
                                try
                                {
                                        objXML.Load(Request.InputStream);
                                        Request.InputStream.Position   =   0;
                                        if   (   (objXML.DocumentElement   !=   null)   &&   (objXML.DocumentElement.Name   !=   null)   &&
                                                (objXML.DocumentElement.Name   ==   "root"))
                                        {
                                                ProcessAjaxCall(objXML);//这个方法的作用是提取从客户断传来的省的index,通过调用Webservice或连接数据库取回来的市区的数据,以xml格式.
                                        }
                                        return;
                                }
                                catch   (Exception   ex)
                                {                                                                     }
                        }

3)   在客户端使用刚才传回来的xml格式的数据,使用javascript添加数据到dropdownlist中,就可以实现
但是需要大约150行的代码


第二种方法:

不使用XMLHttp,你的page页面要实现System.Web.UI.ICallbackEventHandler接口,实现
public   string   GetCallbackResult()
public   void   RaiseCallbackEvent(string   eventArgument)两个基本点方法,同样也要大量使用javascript方法去获得数据和填充数据,调用webservice或中间层通过RaiseCallbackEvent方法来封装.

先提供这两种方法,他们使用的javascript代码行都很大.  

第三种方法:

举例来说,有两个listbox控件1和2,分别显示国家的信息和相应国家中的省或州的信息,当我们选择了控件1中的国家,控件2将无刷新地显示这个国家中的省或洲的信息,对于这样的操作,可以将国家和省或州的信息一次从数据库移到web服务器端,发送到客户端,通过javascript的操作来实现无刷新,但是有个要考虑效率的问题,在客户端要进行缓存数据,服务器端也要进行数据的缓存,这样可以做到操作几万条数据市,响应时间在10秒之内.它与前两种方法区别在于取数据时不需要postback操作.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值