我有这段代码:
var httpPage = new XMLHttpRequest();
function getContent(url){
if($(".bd").css("height").replace("px", "") < $(window).height())
$("#td_1").css("height", ($(window).height() - 167)+"px");
httpPage.open("GET", "js_api.php?key="+(readCookie("user") || $("input[name='key']").val())+url, true);
httpPage.send(null);
}
httpPage.onload = function(){
//DO THINGS
}
现在,此代码适用于单个请求。但是如果我发送2个请求(调用该函数两次,但具有不同的url
),则第一个请求不会执行第二个请求覆盖它的httpPage.onload = function()
原因。我该如何解决?
答案 0 :(得分:2)
重新安排事情,以便每次调用你的函数都有自己的本地变量:
function getContent(url){
var httpPage = new XMLHttpRequest();
if($(".bd").css("height").replace("px", "") < $(window).height())
$("#td_1").css("height", ($(window).height() - 167)+"px");
httpPage.open("GET", "js_api.php?key="+(readCookie("user") || $("input[name='key']").val())+url, true);
httpPage.send(null);
httpPage.onload = function(){
//DO THINGS
}
}
然后这是一个更新的函数,它将起作用,传递一个函数
function getContent(url, onload){
var httpPage = new XMLHttpRequest();
if($(".bd").css("height").replace("px", "") < $(window).height())
$("#td_1").css("height", ($(window).height() - 167)+"px");
httpPage.open("GET", "js_api.php?key="+(readCookie("user") || $("input[name='key']").val())+url, true);
httpPage.send(null);
httpPage.onload = onload
}
function getContent("http://invalid.com", function(data) {
alert("DO THINGS with" + data);
});