|
建议你使用prototype.js这个框架 他提供下面这个对象 2.3.6 Ajax.Responders对象 Ajax.Responders对象维护了一个正在运行的Ajax对象列表,在需要实现一些全局的功能时就可以使用它。例如,在Ajax请求发出以后需要提示用户操作正在执行中,而操作返回以后则取消提示。利用Ajax.Responders对象就可以实现这样的功能,如例2-15所示。 例2-15 Ajax.Responders对象应用示例 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN " "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd "> <html> <head> <title> chapter 3 </title> <script type= "text/javascript " language= "javascript " src= "prototype.js " > </script> <script type= "text/javascript " language= "javascript "> function test() { var myAjax = new Ajax.Request( 'data.html ', { method: 'get ', onComplete: showResponse } ); } function showResponse(response) { $( 'divResult ').innerHTML = response.responseText; } var handle = { onCreate: function() { Element.show( 'loading '); // 当创建Ajax请求时,显示loading }, onComplete: function() { // 当请求成功返回时,如果当前没有其它正在运行中的Ajax请求,隐藏loading if (Ajax.activeRequestCount == 0) { Element.hide( 'loading '); } } }; // 将handle注册到全局的Ajax.Responders对象中,使其生效 Ajax.Responders.register(handle); </script> </head> <body> <input type= "button " value= "click " onclick= "test() " /> <div id= "divResult " > </div> <div id= 'loading ' style= "display:none "> <img src= "loading.gif "> Loading... </div> </body> </html> 例2-15中定义了一个handle对象,其中包含onCreate和onComplete函数。页面中发出任何一个Ajax请求时都会调用onCreate方法,而请求完成时都会调用onComplete方法。例2-15的运行结果如图2-5所示。
|