Javascript 从成功函数ajax获取变量
我在ajax的成功部分有一个变量,我想在另一个函数中重用它(每3秒执行一次),我试图将它声明为全局变量,但它不起作用;Tdata是未知的。 我知道$.ajax是一个异步函数,我看到了一些与我类似的帖子,但它对我没有帮助 请帮帮我。多谢各位 这是我代码的一部分:Javascript 从成功函数ajax获取变量,javascript,jquery,ajax,json,variables,Javascript,Jquery,Ajax,Json,Variables,我在ajax的成功部分有一个变量,我想在另一个函数中重用它(每3秒执行一次),我试图将它声明为全局变量,但它不起作用;Tdata是未知的。 我知道$.ajax是一个异步函数,我看到了一些与我类似的帖子,但它对我没有帮助 请帮帮我。多谢各位 这是我代码的一部分: <script language='Javascript'> var Tdata; $.ajax({ method : "GET", url: "load-data.php
<script language='Javascript'>
var Tdata;
$.ajax({
method : "GET",
url: "load-data.php",
success : function(data){
Tdata=jQuery.parseJSON(data);
////
}
});
window.setInterval(function() {
$(window).load(function() {
$.each(Tdata, function(variable) {
/////////////
});
});
}, 3000);
</script>
var-Tdata;
$.ajax({
方法:“获取”,
url:“load data.php”,
成功:功能(数据){
Tdata=jQuery.parseJSON(数据);
////
}
});
setInterval(函数(){
$(窗口)。加载(函数(){
$.each(Tdata,函数(变量){
/////////////
});
});
}, 3000);
使用来自AJAX调用的变量的函数应该从AJAX success内部调用,如下所示:
$.ajax({
method : "GET",
url: "load-data.php",
success : function(data){
Tdata=jQuery.parseJSON(data);
myFunction();
}
});
function myFunction(){
var interval = setInterval(function() {
$.each(Tdata, function(variable) {
/////////////
});
}, 3000);
}
使用来自AJAX调用的变量的函数应该从AJAX success内部调用,如下所示:
$.ajax({
method : "GET",
url: "load-data.php",
success : function(data){
Tdata=jQuery.parseJSON(data);
myFunction();
}
});
function myFunction(){
var interval = setInterval(function() {
$.each(Tdata, function(variable) {
/////////////
});
}, 3000);
}
为什么不等到AJAX请求成功返回数据后再开始间隔呢?因为在这一点之前,间隔函数的任何执行都不会做任何事情(因为没有数据),所以等待不会以任何方式改变页面的运行方式
$.ajax({
method: "GET",
url: "load-data.php",
dataType: "json"
success: function(data) {
var Tdata = data;
// do some more stuff with the response of the AJAX request
var interval = setInterval(function() {
$.each(Tdata, function(variable) {
// do something with variable
});
}, 3000);
}
});
请注意,每次间隔运行时,我都会将
load
事件绑定到窗口,因为这样做似乎没有任何意义。我还向传递给$.ajax()
的options对象添加了一个值为json
的dataType
属性,这样您就不必自己将响应解析为json。为什么不等到ajax请求成功返回数据后再开始间隔呢?因为在这一点之前,间隔函数的任何执行都不会做任何事情(因为没有数据),所以等待不会以任何方式改变页面的运行方式
$.ajax({
method: "GET",
url: "load-data.php",
dataType: "json"
success: function(data) {
var Tdata = data;
// do some more stuff with the response of the AJAX request
var interval = setInterval(function() {
$.each(Tdata, function(variable) {
// do something with variable
});
}, 3000);
}
});
请注意,每次间隔运行时,我都会将load
事件绑定到窗口,因为这样做似乎没有任何意义。我还向传递给$.ajax()
的options对象添加了一个值为json
的dataType
属性,这样您就不必自己将响应解析为json了。试试这个
<script language='Javascript'>
var Tdata;
$.ajax({
method : "GET",
url: "load-data.php",
success : function(data){
Tdata=jQuery.parseJSON(data);
////
}
});
$(window).load(function() {
window.setInterval(function() {
$.each(Tdata, function(variable) {
/////////////
});
}, 3000);
});
</script>
var-Tdata;
$.ajax({
方法:“获取”,
url:“load data.php”,
成功:功能(数据){
Tdata=jQuery.parseJSON(数据);
////
}
});
$(窗口)。加载(函数(){
setInterval(函数(){
$.each(Tdata,函数(变量){
/////////////
});
}, 3000);
});
试试这个
<script language='Javascript'>
var Tdata;
$.ajax({
method : "GET",
url: "load-data.php",
success : function(data){
Tdata=jQuery.parseJSON(data);
////
}
});
$(window).load(function() {
window.setInterval(function() {
$.each(Tdata, function(variable) {
/////////////
});
}, 3000);
});
</script>
var-Tdata;
$.ajax({
方法:“获取”,
url:“load data.php”,
成功:功能(数据){
Tdata=jQuery.parseJSON(数据);
////
}
});
$(窗口)。加载(函数(){
setInterval(函数(){
$.each(Tdata,函数(变量){
/////////////
});
}, 3000);
});
是回调tdataAjax函数ajax成功方法运行@param parseJSON
var tdataAjax = function(callback) {
$.ajax({
method : "GET",
url: "load-data.php",
success : function(data){
var Tdata=jQuery.parseJSON(data);
setInterval(function() {
callback(Tdata);
}, 3000);
}
});
};
是tdataAjax函数中的回调函数@param data
tdataAjax(function(data) {
$.each(data, function(variable) {
// code
});
});
tdataAjax++:)
回调tdataAjax函数是否运行ajax成功方法@param parseJSON
var tdataAjax = function(callback) {
$.ajax({
method : "GET",
url: "load-data.php",
success : function(data){
var Tdata=jQuery.parseJSON(data);
setInterval(function() {
callback(Tdata);
}, 3000);
}
});
};
是tdataAjax函数中的回调函数@param data
tdataAjax(function(data) {
$.each(data, function(variable) {
// code
});
});
tdataAjax++:)
当前代码有什么问题?你每次都得到相同的数据吗?或者还有其他问题吗?不,我不能,Tdata不知道。当前代码有什么问题?你每次都得到相同的数据吗?或者还有其他问题吗?不,我不能,Tdata不知道。