@BartGTO

Таймер в расширении для Chrome?

Всем привет.
Имеется расширение (дополнение, приложение) для браузера Google Chrome. При выборе нескольких ссылок происходит скачивание файлов, но т.к. файлы качаются по одному и не успев загрузится предыдущий файл в очередь становиться загрузка нового файла (фото по 300кб - штук 150), и соответственно некоторые из файлов уходят в отмену (сбой при загрузке). В результате приходится просматривать историю загрузки и искать файлы которые не загрузились.
Вариант решения вопроса я вижу следующий: поставить таймер, после вызова ссылки, на загрузку каждого файла по 2 секунде (компьютер и интернет слабые). Т.е. ссылку выбрал, скачивание началось, задержка на 2 секунды, ссылку выбрал, скачивание началось, задержка на 2 секунды, и т.д.
Расширение из браузера я выгрузил, но в программировании я 0.
Помогите пожалуйста дописать программу.

файлы:
background.js
chrome.browserAction.onClicked.addListener(function(tab) {
	var startLink = "https://"+cleanUp(tab.url);
	chrome.tabs.sendMessage(tab.id, {greeting: 'test'}, function(response){
		var length = response.links.length;
		for ( var i = 0; i < length; i++) {
			chrome.downloads.download({
				url: startLink + response.links[i],
				//saveAs: true
				conflictAction: "uniquify"
			}); //Здесь нужно вставить паузу
		}
	});
});

function cleanUp(url) {
	if(url.search(/^https?\:\/\//) != -1)
		url = url.match(/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i, "");
	else
		url = url.match(/^([^\/?#]+)(?:[\/?#]|$)/i, "");
	return url[1];
}


content.js
chrome.extension.onMessage.addListener(function(request, sender, sendResponse){
	var links = [];


	$('.main-grid-table tbody tr.main-grid-row-checked').each(function(){
		console.log($(this));
		$(this).find('a').each(function(){
			var link = /download=y/i.exec( $(this).attr('href') );
			if ( link ) {
				links.push( $(this).attr('href') );
			}
		});
	});

	if ( links.length < 1 ) {
		alert('Вы не выбрали ни одной строки для массового скачивания!');
	} else {
		sendResponse({links: links});
	}
});

5b24c87863b1f604849762.jpeg
  • Вопрос задан
  • 409 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы