Pause function til ajax request er fuldført
Hejsa derudeJeg sidder og laver en jquery.vimeoplayer, der kan vise en video, flere selvvalgte videoer, hente fra album eller channel udfra id.
Mit problem ligger i min function, hvor timeren får min browser til at fryse.
function er gjort uafhængig af andet end parameter input
var timer_loadVideosInfo;
function loadVideosInfo(opt, num, isBusy, callback) {
if (isBusy) {
timer_loadVideosInfo = setTimeout(loadVideosInfo(opt, num, isBusy, callback), 800);
return true;
} else {
clearTimeout(timer_loadVideosInfo);
}
if (num > opt.vimeoUrls.length - 1) {
clearTimeout(timer_loadVideosInfo);
if (callback && typeof (callback) === "function") {
callback();
}
return true;
}
var _url = 'http://vimeo.com/api/oembed.json?url=' + opt.vimeoUrls[num] + '&portrait=0';
$.ajax({
url: _url,
get: 'GET',
async: false,
dataType: 'jsonp',
beforeSend: function () {
timer_loadVideosInfo = setTimeout(loadVideosInfo(opt, num, true, callback), 1000)
},
success: function (data) {
opt.vimeoList.push(data);
},
complete: function () {
loadVideosInfo(opt, num++, false, callback);
},
error: function (jqXHR, textStatus, errorThrown) {
console.log('AJAX error', jqXHR, textStatus, errorThrown);
return false;
}
});
}