Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.03.2018, 13:29
Интересующийся
Отправить личное сообщение для geekvar Посмотреть профиль Найти все сообщения от geekvar
 
Регистрация: 06.03.2018
Сообщений: 12

Вывод или отправка значений
Хочу доработать скрипт, который ранее решали в теме - Рутинная автоматизация

По мере работы с получившимся скриптом понял что во время обработки 9000 ссылок, компьютер временами жестко подтормаживает. Для решения этой проблемы хочу создать массив (или может есть что лучше?), в котором будут храниться id всех пользователей, которые удовлетворяют условию:
if (document.getElementsByClassName("xp_share available").length)

т.е. у них есть активная кнопка.

Из 9000 игроков, таких на сайте не больше 1000. Остальные игроки либо забанены и удалены, либо долгое время не заходили на сайт и поэтому кнопка не активна.
Обработать ~1000 ссылок мой компьютер уже в состоянии

Какие были мои действия чтобы записать id этих игроков:
  • Создал массив arr
  • Внутри условия выполнял arr.push(id-1);
но как уже понятно, ничего не вышло, потому что arr.length=0 т.к. на каждой странице массив перезаписывался.

Подумав какой же я дуб дубом, сообразил что массив на этом шаге вообще не нужен, достаточно лишь выполнить после условия которое было написано выше, код который выводил бы значения id в файл, ну или в что нибудь другое. От туда позднее я и записал бы эти данные в массив.

В общем прошу советов в реализации 2-х задач:
  • Запись id игрока;
  • Доработка скрипта с использованием массива.
По второй задаче у меня чувство что будет та же самая ситуация что я описывал выше, когда создавал массив arr.
Ответить с цитированием
  #2 (permalink)  
Старый 09.03.2018, 05:21
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,390

if(document.location.host =='pokeliga.com'){
			if(document.location.href !== 'http://pokeliga.com/entlink/adopts/player_profile.php'){
				var id = document.location.search.split('player=')[1];
				if (id == 1) localStorage.setItem('data', JSON.stringify([]));
				if (id<9000){
					if (document.getElementsByClassName("xp_share available").length) {
						var data1 = JSON.parse(localStorage.getItem('data'));
						data1.push(id);
						localStorage.setItem('data', JSON.stringify(data1));
						console.log(localStorage.getItem('data')); 

					}
					id++;
					document.location.href = "http://pokeliga.com/entlink/adopts/xp_share.php?player="+id;
				}
				else {
					console.log(localStorage.getItem('data')); 
					alert('Конец');
				}
			}
			else { // если нет такого ид прибавляем 1;
				localStorage.setItem('id', (localStorage.getItem('id')*1+1));
				document.location.href = "http://pokeliga.com/entlink/adopts/xp_share.php?player="+localStorage.getItem('id');
			}
		}


только эти телодвижения не ускорят процесс. (картинки лучше отключите в браузере)
Ответить с цитированием
  #3 (permalink)  
Старый 09.03.2018, 15:16
Интересующийся
Отправить личное сообщение для geekvar Посмотреть профиль Найти все сообщения от geekvar
 
Регистрация: 06.03.2018
Сообщений: 12

j0hnik, спасибо еще раз. Буду смотреть.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перебор объектов и вывод значений SeeJ jQuery 6 01.12.2015 10:27
Некорректный вывод значений массива running Общие вопросы Javascript 9 28.10.2014 03:47
Отправка значений в БД через AJAX Batyabest AJAX и COMET 1 13.10.2014 09:25
Восторг в античной ForYourself ювелирные изделия тибетской или дать как подарок whistle123 Events/DOM/Window 0 03.12.2012 09:09
Пошаговый вывод скрипта для IE всех версий. Zidky Элементы интерфейса 10 17.06.2009 18:27