jQuery.ajax()访问javascript循环中的beforeEnd局部变量
jQuery .ajax() access to beforeSend local variable in javascript loop
我在for javascript循环中有一个jQuery ajax Get调用
这里的代码:
var number_of_ping_for_average = 4;
var ping_start_time;
for(i = 0; i++; i < number_of_ping_for_average){
$.ajax({
type: 'GET',
url: "http://www.exmple.com/pkt.ext",
timeout: 1000,
cache: false,
beforeSend: function(){
ping_start_time[i][new Date().getTime()];
},
success: function (data) {
var ping_arrive_time = new Date().getTime();
var ping_val = ping_arrive_time - ping_start_time[i];
},
error: function(data){
//timeout or 500 error
//@TODO fare funzionare tutto
}
});
}
正如你所看到的。。。我需要在匿名函数中调用变量"i"。。。但不起作用
请记住,ping_start_time必须包含3个不同的同时值!
为Ajax调用创建一个单独的函数,它应该可以工作,创建一个独立的函数可以确保i的值不会在该范围内更改。
var number_of_ping_for_average = 4;
var ping_start_time=[];
function callsAjax(i){
$.ajax({
type: 'GET',
url: "http://www.exmple.com/pkt.ext",
timeout: 1000,
cache: false,
beforeSend: function(){
ping_start_time[i][new Date().getTime()];
},
success: function (data) {
var ping_arrive_time = new Date().getTime();
var ping_val = ping_arrive_time - ping_start_time[i];
},
error: function(data){
//timeout or 500 error
//@TODO fare funzionare tutto
}
});
}
for(i = 0;i < number_of_ping_for_average;i++){
callsAjax(i)
}
实现这一点的最佳方法是使用包装器
例如
(function (){
console.log("test n." + i);
})(i)
非常感谢!
相关文章:
- Javascript用函数return替换局部变量
- 每次调用函数时,都要修改Javascript中的局部变量
- 局部变量在闭包中丢失
- 试图将一个局部变量传递给我的ngAside控制器
- jQuery.ajax()访问javascript循环中的beforeEnd局部变量
- 如何使用局部变量创建全局变量
- 如何在单击链接后将局部变量发送到部分呈现
- 定义 JavaScript 类的局部变量
- 创建所有原型函数均可访问的局部变量
- 局部变量的声明
- JavaScript:在调用之前将函数重新分配给局部变量,而不是直接调用并对'这'
- 为什么 Javascript 中的类变量在尝试多次调用它们或将它们分配给局部变量时会消失
- 函数中的局部变量
- 局部变量仍可通过函数访问
- JavaScript和局部变量是不好的做法
- 局部变量在应用 function.call() 后变为全局变量
- 如何创建一个只应用了一些过滤器的局部变量
- 我可以't克服这个错误“;未定义的局部变量或方法`f'"任何原因
- 在d3.js中将局部变量转换为全局变量
- 循环和局部变量内部的闭包