|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Фоновая работа JS-скрипта в GreaseMonkey |
|
|
Фоновая работа JS-скрипта в GreaseMonkey
|
![]() Старожил Сообщения: 175 |
Доброго времени суток, уважаемые.
Пишу скрипт для GreaseMonkey, который собирает некую информацию со страницы, сохраняет её, обновляет страницу, ищет новую информацию, сохраняет её, обновляет страницу и т.д. Все в принципе не сложно. Однако проблема в том, что для того чтобы скрипт работал - страница всегда должна быть открыта. Хочется сделать чтобы скрипт выполнялся в Background'е, не влияя на работу пользователя на этой же страничке или не требуя отдельно открытого окна пока пользователь и так работает под необходимым доменом. Я без понятия как это можно было бы организовать. Если у кого есть идеи - был бы очень признателен. Желательно с простейшими примерами, чтобы я смог не только слизать готовый материал, а понять как это работает. З.Ы.: с аяксом не знаком, но похоже что в скриптах, в которых подобная технология организована - используется нечто подобное. Решил подробнее объяснить суть того что я хочу: Скрипт должен собирать информацию с некоторой странички http://some_domain/some_page. Пока пользователь и так находится на http://some_domain/ у него появляется небольшое меню с кнопками "Старт" "стоп" "показать инфо". При нажатии на "старт" скрипт начинает работать и раз в "Н"-ое количество минут собирает обновленную информацию с http://some_domain/some_page, причем пока он собирает - это не должно влиять на работу пользователя на http://some_domain/. |
|
Отправлено: 18:30, 22-07-2009 |
Deadooshka Сообщения: 2517
|
Профиль | Отправить PM | Цитировать AJAX + скрипт на стороне сервера. Реализация зависит от инструментов (библиотек) JS которые вы используете, и серверного языка...
Для начала лучше поискать готовые решения... |
Отправлено: 19:15, 22-07-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Старожил Сообщения: 175
|
Профиль | Отправить PM | Цитировать скрипт на стороне сервера отпадает. к нему, к серверу, естественно, доступа нет, иначе не было бы смысла для этого писать ГризМанковый скрипт, а можно было бы все функции встроить непосредственно в сам сайт. в том то и дело, что в аналогичных скриптах это как-то организованно без участия сервера в этом процессе.
|
Отправлено: 19:39, 22-07-2009 | #3 |
Deadooshka Сообщения: 2517
|
Профиль | Отправить PM | Цитировать System Failure, это скрипт, устанавливамый в браузер?
в общем готовых вариантов полно... http://userscripts.org/scripts/search?q=ajax цикличность достигается функцией setInterval фоновая работа - асинхронный XMLHttpRequest, для greasemonkey GM_xmlhttpRequest |
Последний раз редактировалось Sham, 22-07-2009 в 20:32. Отправлено: 20:14, 22-07-2009 | #4 |
![]() Старожил Сообщения: 175
|
Профиль | Отправить PM | Цитировать спасибо за инфо. выглядит просто - как опробую, отпишу результат
![]() |
|
Отправлено: 23:50, 22-07-2009 | #5 |
![]() Старожил Сообщения: 175
|
Профиль | Отправить PM | Цитировать в общем все почти получилось
![]() |
Отправлено: 00:55, 24-07-2009 | #6 |
Deadooshka Сообщения: 2517
|
Профиль | Отправить PM | Цитировать Цитата System Failure:
|
|
Отправлено: 01:24, 24-07-2009 | #7 |
![]() Старожил Сообщения: 175
|
Профиль | Отправить PM | Цитировать Цитата Sham:
|
|
Отправлено: 14:17, 24-07-2009 | #8 |
Deadooshka Сообщения: 2517
|
Профиль | Отправить PM | Цитировать чтобы вытащить содержимое тега body можно сделать так
var bodytext_arr = responseDetails.responseText.match(/<body[^>]*>([\s\S]*?)<\/body>/i); var bodytext = (bodytext_arr) ? bodytext_arr[1] : 'В страничке нет тега body'; div.innerHTML = bodytext; реализация зависит от условий и понимания того, что нужно в конечном итоге... |
Отправлено: 22:02, 24-07-2009 | #9 |
![]() Старожил Сообщения: 175
|
Профиль | Отправить PM | Цитировать Цитата Sham:
я его понял так: /<body - начало тэга, все понятно. [^>] исключаем из искомого символ > - зачем? *> - повторение неких предшествующих элементов ноль или более раз, затем символ ">" (тоже не совсем понятно зачем вначале исключать, потом опять включать символ ">") ([\s\S]*?) - набор любых символов неограниченое количество раз (зачем "?", почему не достаточно одной "*" и для чего заключать всё это в круглые скобки?) <\/body>/i - ищем закрывающий тэг, и чтобы "/" воспринимался литерально - используется перед ним "\". i - для не зависимости от регистра. Заранее огромное спасибо. Объяснять не обязательно, может со временем сам разберусь, но если найдете свободную минуту, был бы очень благодарен. Добавлено: Просмотрев как работает этот код, теперь кажется понял зачем круглые скобки... Таким образом для вывода сохраняются только данные, попадающие под "[\s\S]*?", тогда как сами тэги исключаются. |
|
Отправлено: 00:26, 25-07-2009 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - [решено] Не сохраняется фоновая картинка рабочего стола | lilak | Microsoft Windows 2000/XP | 10 | 01-08-2009 18:21 | |
Интерфейс - Фоновая картинка папки | d_u | Microsoft Windows Vista | 3 | 24-02-2009 18:33 | |
Службы - Проблема: прекращена работа Фоновая интелектуальная служба передачи (BITS) | kamalm902 | Microsoft Windows Vista | 3 | 02-02-2009 22:21 | |
фоновая закачка | bk99 | Программное обеспечение Windows | 11 | 24-12-2004 15:36 | |
Фоновая картинка | Dimson | Вебмастеру | 5 | 09-04-2004 18:38 |
|