AJAX请求后的函数调用在javascript中不起作用
Function call after AJAX request does not work in javascript
我有一个警报工作的函数:
function RequestNext() {
var xhr = getXMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
MyCard = GetCard(xhr.responseText);
**alert(MyCard.GetNo());**
return MyCard;
}
};
xhr.open("GET", "../../HttpRequest_Next.php" , true);
xhr.send(null);
}
然后我有另一个函数,其中第一个被调用,相同的警报不起作用:
function Start(){
var MyCard = RequestNext();
alert("Patience.js");
**alert(MyCard.GetNo());**
alert("test2");
//alert(Card.GetKind());
//WriteCard(Card);
alert("test3");
}
对于信息,这些函数在2个文件中
这就是回调的绝妙之处。基本上,您将一个函数作为参数传递,这样您就可以在ajax(异步)完成时运行该函数。这里的语法可能有点不对劲,但您可以这样做:
function RequestNext(callback) {
var xhr = getXMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
MyCard = GetCard(xhr.responseText);
**alert(MyCard.GetNo());**
if (typeof callback=='undefined') return MyCard;
else {
return callback.call(MyCard);
}
}
};
xhr.open("GET", "../../HttpRequest_Next.php" , true);
xhr.send(null);
}
function Start(){
var MyCard = RequestNext(function() {
alert("Patience.js");
alert(this.GetNo());
alert("test2");
//alert(this.GetKind());
//WriteCard(this);
alert("test3");
return this;
});
}
相关文章:
- 幻灯片滚动javascript不起作用
- 当我在浏览器中打开HTML文件时,javascript不起作用
- 来自MDN的循环示例的JavaScript不起作用
- 在IE中切换javascript不起作用的复选框
- 在SVG中创建带有外来对象的文本区域的Javascript不起作用
- 寻呼<李>javascript不起作用
- 想制作一个基于URL的音频播放器,但Javascript不起作用
- 从Android设备浏览时Javascript不起作用
- 在 Javascript 不起作用的情况下为数字添加逗号
- 获取PHP变量的JavaScript不起作用
- 有些JavaScript不起作用
- 保存HTML文件后,Javascript不起作用
- onClick javascript不起作用
- 在Wicket ModalWindow中使用Panel时,HTML中的Javascript不起作用
- Jquery顶部的两行Javascript不起作用
- 当我通过Node服务器提供HTML时,为什么我的页面Javascript不起作用
- Javascript不起作用,但当放置断点并从chrome调试器工具中单击文件时,它可以正常工作
- 为不同的屏幕分辨率加载css样式的Javascript不起作用
- 在IE9中javascript不起作用,但在打开控制台后它就起作用了
- 为什么Javascript不起作用