@Fox Привет.Я описывал задачу в этой теме https://community.bablosoft.com/topic/27417/вызов-многопоточной-функции
Дело в том,что я не могу вообще никак перевести свой скрипт на многопоток,у меня тупо,что в вызове функции в многопоток,что просто обычный многопоток,выполняет свою работу с данными по очереди,а не одновременно.И это очень сильно бьет по времени,а нужна именно скорость обработки.Все уже готово и скрипт рабочий полностью,но скорость обработки заставила воспользоваться многопотоком.Ранее,подобных проблем не замечал,а сейчас элементарную задачу не могу уже несколько дней решить.
Скрипт очень простой и работает без браузера вообще,в скрипте используется только одно взаимодействие с гет запросом.Пример скрипта я приложил в этой теме(но без запросов),он точно почти такой же,как и основа.
Логика такова:
1)Запускается скрипт (без всяких ресурсов изначально и данных) и создаются два ресурса.
2)Делается запрос на сайт,который обрабатывается в отдельной функции,т.е. обрабатывает полученные строки и записывает в ресурс.
3)Вызывается функция в несколько потоков,которая работает (должна работать) с каждой строкой из созданного ранее ресурса(уникальной)в отдельном потоке.Данные обрабатываются и записываются во второй ранее созданный ресурс.
4)Как только данные обработаны,ресурс переводится в список и список записывается в файл.Более ничего не делается.
-Сперва я думал,что проблема в создаваемых в ходе работы ресурсах,но нет.Создавал изначально ресурсы и то же самое было.
-Потом пробовал брать из файлов значения\потом создавать файлы по ходу и из них брать данные\сохранять напрямую пытался и.т.д
-Возможно думал стоят какие то ограничения из за слабого пк с 4 гб оперативы и взял сервер с 64 гб,но как обрабатывалась строка за 5 минут на моем пк,так же по скорости и на серваке.Ладно, с этим я уже ничего не поделаю из за регулярок в проекте,согласен.Но вот перевести на поток и хотя бы по 10 строк одновременно обрабатывать,очень бы помогло.А сейчас в любом случае,у меня,сколько бы потоков не выставил - работает все равно как один,просто по очереди разный поток берет свои данные(
Выполнять при каждой загрузке страницы в браузере
-
@DuckDuck said in Выполнять при каждой загрузке страницы в браузере:
@sergerdn ну помнится на страх версиях вроде срабатывала замена ... Если бы в памяти не осталось, то может и не писал бы... Но может ты и прав ...
Описание функции:
This action sets script which must be executed inside every page and every frame immediately after page is created. Unlike javascript action, script defined here is executed at the very beginning of page load, which gives possibility to change browser internals like window.navigator. Action should be called before page load.
-
@DuckDuck said in Выполнять при каждой загрузке страницы в браузере:
after page is created
Иии - в чем проблема то ?
immediately after page is created. Где page - это вкладка в браузере. Создай код с console.log, он выполнится один раз при создании новой вкладки.
-
@sergerdn я не знаю что в твоем понимании - после того как страница создана - но в моем понимании - это до рендеринга - получен весь код страницы и можно с ним манипулировать. Но я допускаю, что это так сейчас работает, как ты сказал.
-
Только не давно делал эксперемент, в многопотоке скажем срабатывала 3-4 раза из 10
-
@biohacker01 очень прикольно, то есть оно должно работать, но не всегда ...
-
@DuckDuck said in Выполнять при каждой загрузке страницы в браузере:
но в моем понимании - это до рендеринга - получен весь код страницы и можно с ним манипулировать.
Именно поэтому я и написал в первом ответе - оно работает не так, как ты ожидаешь. Если прочитать внимательно много раз описание, то становится немного понятнее. В описании нигде не сказано, что оно работает так, как ты написал. Скорее наоборот.
Да, не написано явным образом, что код исполняется один раз при создании вкладки в браузере. Я думаю, это некоторая недоработка описания. Я тоже об это ушатался в свое время.
-
@DuckDuck said in Выполнять при каждой загрузке страницы в браузере:
@sergerdn Иди ты в попу
С тобой все хорошо? Ты написал пост, я пришел и ответил на его, как оно работает и почему у тебя не получается. Если тебе ответ не понравился - я сожалею, но держать свои эмоции в руках, все таки надо.
Выражение работает не так, как ты ожидаешь не несет в себе негативного оттенка. А фиксирует факт неправильной трактовки документации.
-
Это было не оскорбление, а констатация факта - Если кому то хочется вставить свои пять копеек - может пойти в свою тему. Я бы в своей теме его забанил, так как - он не вникает в суть потребностей пользователей, а пытается везде трактовать как ему нравится. Ну нравится ему жить с кастрированной функцией - пусть живет, на кой всем доказывать что это так и иначе не может быть. Кроме одного полезного поста на форуме - только нытье, о том что никто пипитером не умеет пользоваться, в который я же его и ткнул, так как на питоне - кривая библиотека с селениумом. Но в каждую тему лезет даже не вникая в суть. @Fox ну камон.
-
@DuckDuck благодаря таким людям как ты, у многих желание помогать кому-либо отбито напрочь)
человек тебе пару сообщений настрочил в надежде, что ты поймёшь. А ты уперся в "я хочу чтобы была так, меняйте всё, я считаю так правильна". И в ответ на помощь вылил ушат *****. -
@workless_shark Чувак, а ты почитай мои сообщения - скольким людям я тут реально помог ... А не халивар разводил. Может че и поймешь.
Еще раз по теме - я помню что это работало, человек выше подтвердил что это работает но 4 из 10.
И давайте по теме. -
@DuckDuck у меня все же случай немного другой , у тебя как понял работа с dom тебе нужно дождатся загрузки dom.
А оно срабатывает после создания страницы.
Создание страницы не значит что оно имеет код в себе.
В идеале оно должно до появления DOM сработать -
@DrPrime said in Выполнять при каждой загрузке страницы в браузере:
который при событии выполнит очистку body
При каком событии? - моя задача сделать подмену всей страницы на ту что я хочу. То есть до исполнения/рендеринга страницы сделать полную ее замену.
Другие варианты со своим сервером, подменой днс и так далее я нашел. Но я рассчитывал на простой экшен, и пару лет назад когда игрался с яндексом, кажется этот метод работал. -
function ready() { var html = document.documentElement; // Получаем корневой элемент <html> html.innerHTML = 'Изменено'; // Изменяем содержимое корневого элемента console.log('ready'); } document.addEventListener("DOMContentLoaded", ready); -
@biohacker01 это в этом же экшене - при каждой загрузке ? ок - попробую - респект за дело, а не за холивар.