如何构造ajax调用
问题描述:
目前我有两个javascript值的静态数组(d1和d2),然后将其传递给JavaScript对象(数据)。如何构造ajax调用
$(function() {
var d1, d2, data
d1 = [
[1424131200000,20151],[1424217600000,22448],[1424304000000,27000],[1424390400000,30622],[1424476800000,30844],[1424563200000,23140],[1424649600000,20555]
]
d2 = [
[1424131200000,18664],[1424217600000,19149],[1424304000000,20415],[1424390400000,24617],[1424476800000,30278],[1424563200000,28808],[1424649600000,22032]
]
data = [{
label: "This Year",
data: d1
}, {
label: "Last Year",
data: d2
}]
var holder = $('#line-chart')
if (holder.length) {
$.plot(holder, data, chartOptions)
}
})
我想改变我的代码来实现同样的事情,但加载两个Ajax调用的值,而不是静态定义值。但我有麻烦实现这一点。有人能帮助我,我可以如何修改我下面的内容来实现我上面定义的staticlly。
这里是我迄今为止...
$(function() {
var data
fetchData(function (data) {
console.log(data);
});
var holder = $('#line-chart')
if (holder.length) {
$.plot(holder, data, chartOptions)
}
})
function fetchData(callback) {
$.when(fetchThisYearsData(), fetchLastYearsData()).done(function (dataThisYear, dataLastYear) {
var data = [];
data.push(dataThisYear[0]);
data.push(dataLastYear[0]);
callback(data);
});
}
function fetchThisYearsData() {
return $.ajax({
url: "service/tranAnalysis/tranCounts.json?siteId=1&yearOffset=0",
dataType: 'json',
async: false
});
}
function fetchLastYearsData() {
return $.ajax({
url: "service/tranAnalysis/tranCounts.json?siteId=1&yearOffset=1",
dataType: 'json',
async: false
});
}
两个Ajax调用返回以下JSON ...
{"label":"This Year","data":[[1424131200000,20151],[1424217600000,22448],[1424304000000,27000],[1424390400000,30622],[1424476800000,30844],[1424563200000,23140],[1424649600000,20555]]}
{"label":"Last Year","data":[[1424131200000,18664],[1424217600000,19149],[1424304000000,20415],[1424390400000,24617],[1424476800000,30278],[1424563200000,28808],[1424649600000,22032]]}
当我的萤火调试它看起来像Ajax调用正在发生并且在回调函数内部填充了数据变量。但是当我接到$ plot的调用时,数据变量为空/空。
感谢
答
这些AJAX调用是异步 - 所以你需要做的回调(否则你试图访问data
而AJAX调用仍在进行中)的工作:
$(function() {
fetchData(function (data) {
var holder = $('#line-chart')
if (holder.length) {
$.plot(holder, data, chartOptions)
}
});
})
有什么问题? – 2015-02-23 23:34:37
对不起。我已更新帖子以帮助更多。该promlem是$ plot调用显示数据变量为空/空 – Richie 2015-02-23 23:39:57