页面有几个模块都是调数据库内容,正常情况下是页面慢慢的显示出来看到好多网站都是这样的效果,整个页面都会显示出来不管数据有没有调出来,如果那个模块的数据还没调出来则那个模块有个“正在下载”的标志
请问一下, 用AJAX实现这样的效果应该怎么弄啊?
哪位高手提供一点这方面的代码啊

解决方案 »

  1.   

    最基本的AJAX的用法
    给个例子供参考
    <script language="javascript">
    var http_request = false;
    var currentPos = null;

    function show(obj,sour,objsrc)
    {
    document.getElementById(obj).parentNode.style.display = "";
    document.getElementById(obj).innerHTML = "正在读取数据..."
    currentPos = obj;
    var GroupName ="null";
    if(objsrc.checked)
    {
    GroupName = document.getElementById(sour).value; 
    }
    send_request("PostMessageAJAX.aspx?GroupName="+GroupName);
    }

    function send_request(url)
    {
    //初始化、指定处理函数、发送请求的函数
    http_request = false;
    //开始初始化XMLHttpRequest对象
    if(window.XMLHttpRequest) { //Mozilla 浏览器
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType) {//设置MiME类别
    http_request.overrideMimeType('text/xml');
    }
    }
    else if (window.ActiveXObject) { // IE浏览器
    try {
    http_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    try {
    http_request = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e) {}
    }
    }
    if (!http_request) { // 异常,创建对象实例失败
    window.alert("不能创建XMLHttpRequest对象实例.");
    return false;
    }
    http_request.onreadystatechange = processRequest;
    // 确定发送请求的方式和URL以及是否同步执行下段代码
    http_request.open("GET", url, true);
    http_request.send(null);
    }

    // 处理返回信息的函数
    function processRequest()
    {
    if (http_request.readyState == 4)

    // 判断对象状态
    if (http_request.status == 200)
    {
    // 信息已经成功返回,开始处理信息
    // alert(http_request.responseText);
    document.getElementById(currentPos).innerHTML = http_request.responseText;
    }
    else
    {
    //页面不正常
    alert("您所请求的页面有异常。");
    }
    }
    }


    function Submit_Click()
    {
    var codes = new String();
    codes = ",";
    var o = document.getElementsByName("subusers");
    for(i=0;i<o.length;i++)
    {
    if(o[i].checked==true)
    {
    codes += o[i].value + ",";
    }
    }
    window.returnValue=codes;
    window.close();
    // document.writeln(codes);
    }
    </script>