我正在制作一个平台,它有一个包含多个对象的脚本,如下所示:
View.VISIBLE
我更新每个via var plano_basicoUS = {
1: null, // monthly
2: null, // quarterly
3: null, // semester
4: null, // yearly
};
var plano_economicoUS = {
1: null, // monthly
2: null, // quarterly
3: null, // semester
4: null, // yearly
};
的值,如下所示:
$.get
$.get("buscar_valor.php?id=3&periodicidade=monthly", function(resultado){
plano_basicoUS[1] = parseFloat(resultado);
});
$.get("buscar_valor.php?id=3&periodicidade=quarterly", function(resultado){
plano_basicoUS[2] = parseFloat(resultado);
});
$.get("buscar_valor.php?id=3&periodicidade=semiannually", function(resultado){
plano_basicoUS[3] = parseFloat(resultado);
});
$.get("buscar_valor.php?id=3&periodicidade=annually", function(resultado){
plano_basicoUS[4] = parseFloat(resultado);
});
$.get("buscar_valor.php?id=4&periodicidade=monthly", function(resultado){
plano_economicoUS[1] = parseFloat(resultado);
});
$.get("buscar_valor.php?id=4&periodicidade=quarterly", function(resultado){
plano_economicoUS[2] = parseFloat(resultado);
});
$.get("buscar_valor.php?id=4&periodicidade=semiannually", function(resultado){
plano_economicoUS[3] = parseFloat(resultado);
});
$.get("buscar_valor.php?id=4&periodicidade=annually", function(resultado){
plano_economicoUS[4] = parseFloat(resultado);
});
的每个查询都会通过PHP文件返回一个值,如: 10.00 。
由于有几个对象,我不想为每个对象重复获取。
如何动态执行此操作,并指出每个$.get
都有不同的网址?或顺序,如果是这样的话。
答案 0 :(得分:0)
理想情况下,您应该避免为每个数据发送1个呼叫。您应该发送1个调用并获取所有数据,然后填充对象中的信息,而不是这个。
如果无法做到这一点,那么您可以采用jQuery.when
的替代方法$.when($.get("buscar_valor.php?id=3&periodicidade=monthly"),
$.get("buscar_valor.php?id=3&periodicidade=quarterly"),
$.get("buscar_valor.php?id=3&periodicidade=semiannually"),
$.get("buscar_valor.php?id=3&periodicidade=annually"),
$.get("buscar_valor.php?id=4&periodicidade=monthly"),
$.get("buscar_valor.php?id=4&periodicidade=quarterly"),
$.get("buscar_valor.php?id=4&periodicidade=semiannually"),
$.get("buscar_valor.php?id=4&periodicidade=annually")).then(function(){
plano_basicoUS[1] = parseFloat(arguments[0]);
plano_basicoUS[2] = parseFloat(arguments[1]);
plano_basicoUS[3] = parseFloat(arguments[2]);
plano_basicoUS[4] = parseFloat(arguments[3]);
plano_economicoUS[1] = parseFloat(arguments[4]);
plano_economicoUS[2] = parseFloat(arguments[5]);
plano_economicoUS[3] = parseFloat(arguments[6]);
plano_economicoUS[4] = parseFloat(arguments[7]);
});
答案 1 :(得分:0)
您可以编写包含公共部分的函数。类似的东西:
const timescales = ["monthly","quarterly","semester","yearly"];
function getNumberByTimescale(timescale, index) {
$.get("buscar_valor.php?id=4&periodicidade=" + timescale, function(resultado){
plano_economicoUS[index] = parseFloat(resultado);
});
}
for (var i = 0; i < timescales.length; i++) {
getNumberByTimescale(timescales[i], i + 1); // Adding one to match timescales array index with your arrays' keys.
}
这只是你可以做到这一点的一种方式,但重要的是将重复的工作抽象为功能。