AJAX实现loading….效果

本文介绍了一种利用XMLHttpRequest改善绿色通道文件查询体验的方法。通过在数据加载过程中展示加载图标,并在数据返回后更新显示内容,避免了重复提交数据的问题,提高了用户体验及资源利用率。

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

绿色通道文件都是走批,一个文件走完流程后,再查询,速度真是慢,要分别从5个表查,并且需要设置关联查询,因此在提交数据后,我希望查询这部分可以用AJAX实现,当数据未返回时,DIV里显示一个加载GIF,等数据返回后再显示提交的数据。而重复查询时也不会再提交数据和刷新,节省了很多资源.

 

   虽然我会用DWR框架,但是我却不会用DWR实现这个功能,因为一直没弄清楚DWR是怎么封装XMLHTTP的,因此还是直接用XMLHTTP的请求状态来做比较直观。

 

[code]

<script type="text/javascript">

var xmlHttp;

 

//创建一个xmlHttpRequest对象

function createXMLHttpRequest() {

    if (window.ActiveXObject) {

        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

    }

    else if (window.XMLHttpRequest) {

        xmlHttp = new XMLHttpRequest();

    }

}

 

function handleStateChange(){

       var img = "<img src='/images/green/loading.gif' style='margin-top:130px; margin-left:250px'>";

    if(xmlHttp.readystate == 4){   //表示请求状态 4为完成

           if(xmlHttp.status == 200){ //http状态指示码,200表示ok

                     //将服务器返回信息作为文本插入到DIV容器中。

               document.getElementById("data").innerHTML = xmlHttp.responseText;

          }

    }

else document.getElementById("data").innerHTML = img;

//若响应未完成的话,则显示loading..

}

 

       function showData(entityName){

         var url = "/greengate.action?doing=listResult&entity_name="+entityName;

      createXMLHttpRequest();

         //请求状态改变事件触发handleStateChange功能

      xmlHttp.onreadystatechange = handleStateChange;

        xmlHttp.open("GET",url);

      xmlHttp.send(null);   

       }

</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值