Javascript ajax函数的问题
我编写了一个名为getContent()的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
$(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