Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вывод или отправка значений (https://javascript.ru/forum/misc/72939-vyvod-ili-otpravka-znachenijj.html)

geekvar 08.03.2018 12:29

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

По мере работы с получившимся скриптом понял что во время обработки 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.

j0hnik 09.03.2018 04:21

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');
			}
		}


только эти телодвижения не ускорят процесс. (картинки лучше отключите в браузере)

geekvar 09.03.2018 14:16

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


Часовой пояс GMT +3, время: 18:48.