Javascript ajax函数的问题

Javascript ajax函数的问题,javascript,jquery,html,ajax,http,Javascript,Jquery,Html,Ajax,Http,我编写了一个名为getContent()的ajax函数,其结构如下 $(document).ready(function (){ getContent(1,1); getContent(2,1); } getContent(whichcontent){//code在此获取内容} 具体代码如下: function getXmlHttpRequestObject() { if (window.XMLHttpRequest) { return new XMLHttpReq

我编写了一个名为getContent()的ajax函数,其结构如下

$(document).ready(function (){
    getContent(1,1);
    getContent(2,1);
}
getContent(whichcontent){//code在此获取内容}

具体代码如下:

function getXmlHttpRequestObject() {
  if (window.XMLHttpRequest) {
    return new XMLHttpRequest(); //Not IE
  } else if(window.ActiveXObject) {
    return new ActiveXObject("Microsoft.XMLHTTP"); //IE
  } else {
    alert("Your browser doesn't support the XmlHttpRequest object.  Better upgrade to Firefox.");
  }
}

var receiveReq = getXmlHttpRequestObject();

var page_id = 1;

function getContent(which_page,append){
  if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {    

    receiveReq.open("GET", 'spt/page_'+which_page, true);//get the text file

    receiveReq.onreadystatechange = function(){
        handleGetContent(which_page,append);
    }
    receiveReq.send(null);
  }     
}

function handleGetContent(which_page,append){
    if (receiveReq.readyState == 4) {        
        if(append == 1){
            $('#container').append("<div class='page' id='page_"+which_page+"'><div class='title'>围城</div><p>" + receiveReq.responseText + "</p><div class='pagenum'>"+which_page+"</div></div>");

        }
        if(append == 0){
          $('#container').prepend("<div class='page' id='page_"+which_page+"'><div class='title'>围城</div><p>" + receiveReq.responseText + "</p><div class='pagenum'>"+which_page+"</div></div>");          
        }
    }
}

问题是我只有一个。。。而另一个id为page_2的没有出现。我想知道ajax函数在js函数中只能调用一次,还是我把ajax函数弄错了。谁来帮帮我!!提前感谢。

XMLHttpRequest调用是异步的,因此如果您只使用一个请求对象,那么对
getContent
的第二个调用将被忽略,因为
receiveReq.readyState
既不是0也不是4。

我认为代码是可以的,但是如果您对ajax有疑问,可以使用
jquery
,如果没有,则可以使用ajax的单个函数,例如:

或者试试这个代码

// change the function like
function getContent(which_page,append){
    var receiveReq = getXmlHttpRequestObject();// Create object here

    receiveReq.open("GET", 'spt/page_'+which_page+'.txt', true);//get the text file
    //write the extension of the file
    receiveReq.onreadystatechange = function(){
        if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {    
            handleGetContent(receiveReq,which_page,append);
        }

    }    
    receiveReq.send(null); 
}
// add an extra parameter in this function
function handleGetContent(receiveReq,which_page,append){
    if (receiveReq.readyState == 4) {        
        if(append == 1){
            $('#container').append("<div class='page' id='page_"+which_page+"'><div class='title'>围城</div><p>" + receiveReq.responseText + "</p><div class='pagenum'>"+which_page+"</div></div>");

        }
        if(append == 0){
          $('#container').prepend("<div class='page' id='page_"+which_page+"'><div class='title'>围城</div><p>" + receiveReq.responseText + "</p><div class='pagenum'>"+which_page+"</div></div>");          
        }
    }
}
$(document).ready(function (){
    getContent(1,1);
    getContent(2,1);
});// change this line also
//将函数更改为
函数getContent(哪个页面,追加){
var receiveReq=getXmlHttpRequestObject();//在此处创建对象
receiveReq.open(“GET”,“spt/page”+哪个页面+'.txt',true);//获取文本文件
//写入文件的扩展名
receiveReq.onreadystatechange=函数(){
如果(receiveReq.readyState==4 | | receiveReq.readyState==0){
handleGetContent(接收方,附页);
}
}    
接收方发送(空);
}
//在此函数中添加一个额外参数
函数handleGetContent(receiveReq,附页){
如果(receiveReq.readyState==4){
if(append==1){
$('#容器')。追加(“围城 “+receiveReq.responseText+”

“+which_page+”); } if(append==0){ $('#容器')。前置(“围城 “+receiveReq.responseText+”

“+which_page+”); } } } $(文档).ready(函数(){ getContent(1,1); getContent(2,1); });// 把这行也改一下
如果使用的是
jQuery
,为什么要使用
XMLHttpRequest
?为什么不使用jQuery库中的jQuery.ajax?如果要使用jQuery,不妨使用内置的
ajax()
函数。它使用起来非常简单,而且您不必担心代码开始时的大问题。正如@ArunPJohny所说的,为什么在Jquery中使用XML请求?O.O