零基础学习AJAX之AJAX的简介和基础(8)


    function addTableRow(sName, sClass, sBirth, sConstell, sMobile) {
                //表格添加一行的相关操作
                var oTable = document.getElementById("member");
                var oTr = oTable.insertRow(oTable.rows.length);
                var aText = new Array();
                aText[0] = document.createTextNode(sName);
                aText[1] = document.createTextNode(sClass);
                aText[2] = document.createTextNode(sBirth);
                aText[3] = document.createTextNode(sConstell);
                aText[4] = document.createTextNode(sMobile);
                for (var i = 0; i < aText.length; i++) {
                    var oTd = oTr.insertCell(i);
                    oTd.appendChild(aText[i]);
                }
            }

网站中实际返回xml的工作通常是由asp.net jsp php等服务器脚本动态生成的,换句话说,xmlHttp.open()中的URL地址仍然.aspx等动态页面的后缀,它们返回的XML是用户请求生成的。


4.处理多个异步请求

而实际页面中往往不止一个异步请求,比如在一个表单中,很多单元格都需要发生异步请求来验证,再加上网速的影响,第一个异步请求尚未完成,很可能就已经被第2个请求覆盖。

页面内容不做多介绍,我们发现,发送的第一个请求没有响应,因为它被第二个请求覆盖了。

通常解决的办法是将xmlHttp对象作为局部变量来处理,并且在收到服务器返回值后手动将其删除。如下所示:

复制代码 代码如下:


        function getData(oServer, oText, oSpan) {
                var xmlHttp; //处理为局部变量
                if (window.ActiveXObject)
                    xmlHttp = new ActiveXObject("Microsoft.XMLHttp");
                else if (window.XMLHttpRequest)
                    xmlHttp = new XMLHttpRequest();
                var queryString = oServer + "?";
                queryString += createQueryString(oText) + "&timestamp=" + new Date().getTime();
                xmlHttp.onreadystatechange = function() {
                    if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
                        var responseSpan = document.getElementById(oSpan);
                        responseSpan.innerHTML = xmlHttp.responseText;
                        delete xmlHttp; //收到返回结构后手动删除
                        xmlHttp = null;
                    }
                }
                xmlHttp.open("GET", queryString);
                xmlHttp.send(null);
            }

以上就是本文的全部内容了,虽然有点长,但是还是希望小伙伴们能够好好的读一读,这对于学好ajax非常重要,希望大家能够喜欢。

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wfypdj.html