Суть такова, к примеру есть функция которая делает запрос на сервер для генерации ссылки по последующим запуском этой ссылки в плеере. Ну есть одна проблемка к примеру на сайте в блоке есть плейлист и кнопки в плеере, когда человек быстро клацает эти кнопки вперёд назад или плейлист то генерируется очень много запросов.. и они как то становятся в очередь или что? к примеру в плейлисте 10 названий, он быстро клацнул на все, не дожидаясь ответа от сервера.. к примеру остановился на 10.когда запрос завершился скрипт включает этот фаил к примеру 10 раз... я сделал переменную для ajax запроса и выставил флаги к в примере в низу, по 10 раз файл перестал запускаться. но всё равно запросы проскакивают если быстро переключатся между файлами... как бы это так решить мм? блокировать интерфейс или кнопки до загрузки файла не вариант) надо как то сделать если он быстро переключает то скрипт загружает только последний выбранный файл )
resetnumber = 0;
go = true;
//Генерация ссылки
function player(idurl) {
if (go == true) {
go = false;
ajax = $.ajax({
dataType: 'json',
url: "http://site.ru&sesid=" + coocike + "&hd=720&id=" + idurl,
error: function(XMLHttpRequest) {
if (XMLHttpRequest.statusText != "abort") {
$.ajax({
url: 'http://site.ru&sesid=' + coocike,
cache: false,
dataType: 'json',
timeout: 5000,
error: function() {
alert('не авторизован к примеру');
window.location.href = '/error';
},
success: function() {
go = true;
alert('БЫЛА ОШИБКА переподключаемся');
player(idurl);
resetnumber++;
$('.infoerr').html('Возможно проблемы с интернетом переподключаемся' + resetnumber);
}
});
}
},
success: function(json) {
go = true;
resetnumber = 0;
file = json.get.file;
RUN(file); //включаем плеер
$('#preload').stop().fadeOut();
setInterval(function() {
subtitrs(json.get.subtitrs); //Запускаем субтитры например
}, 100);
}
})
} else {
ajax.abort();
go = true;
player(idurl);
}
}
Перед запросом
ajax = $.ajax({
сделайте "unbind" для кнопки (если JQuery), а в коллбеке ответа
success: function(json) { вот здесь }
обратное назначение
$("#button").on("click", function(){ ... })
В этом случае скрипт не будет реагировать на многократные нажатия, пока не вернется ответ сервера.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Нужна помощь в отрисовке графаМожет быть любое количество элементов с разным весом
При наведении и убирании курсора все ОК, а вот когда нажимаю кнопку не уводя курсор с кнопки, то поповер пропадает, хотя не должен, в чем проблема?