Полезная информация

Пользователи не любят читать документацию. Станьте оригинальным, будьте не как все. Ознакомьтесь с нашей базой знаний.

№312620-04-2011 19:16:59

Йцукен
  
 
Группа: Extensions
Зарегистрирован: 05-06-2008
Сообщений: 4799
UA: Chrome 10.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

vladmir
Первую цитату и я не совсем понял (речь о правилах вроде ##[id*="banner"] без указания сайта, но это надо объяснять понятнее), а вторая цитата значит то, что сейчас для оптимизации правил используются «ключи». Ключ — это последовательность знаков из правила блокировки — три или более знаков (букв, цифр…), разделённых «разделительными символами» (перечисленные на сайте Adblock Plus и ещё, только для ключей, точка). Сначала сверяется с адресами элементов ключ, а при совпадении — всё правило.

Отредактировано Йцукен (31-05-2011 11:24:36)

Отсутствует

 

№312720-04-2011 20:13:11

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Nightly 6.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

vladmir
Радик дал правильный пример: ##[id*="banner"]
Но тоже не объяснил почему. Для начала уточню, что мы говорим не о какой-то фишке адблока. Все правила скрытия это обычные CSS-селекторы позволяющие адресовать объекты на страницах. Данное правило хоть и основано на свойстве ID объекта, но не полном ID, а лишь на его фрагменте. Это означает, что вместо выполнения максимально оптимизированного (в самом движке CSS) поиска по точному ID будет выполняться построчное сравнение его с каждым. Ещё хуже если правило основывается на фрагменте свойства style. Хуже потому, что обычно строка со стилем весьма длинная  и объектов с указанным стилем намного больше. Таким образом поиск идёт ещё дольше.
Если у правила скрытия указать точный ID или Class последнего объекта в строке (например, mail.google.com##.Bu:first-child + .Bu + .Bu ← вот этого), то такой объект будет очень быстро найден, проверены остальные условия и он будет скрыт, но если указать тэг объекта без класса или ID, то будут перебраны все объекты этого типа (snesorama.us##DIV[id^="post_message_"] + DIV ← вот как здесь).
Но если в селекторе не указан ни ID, ни класс, ни тип объекта, то перебираются абсолютно все объекты на страницу. Если приходится ещё и выполнять полнотекстовый поиск ([id*="banner"] ← как здесь), то это работает уже во много раз медленнее. И чем больше на странице объектов, тем хуже.
Так пример Радика можно существенно ускорить если точно указать, что нужно скрывать объекты типа DIV: ##DIV[id*="banner"].
В таком варианте сначала будет выполняться поиск DIV'ов и только после этого для найденных объектов будет проверяться свойство ID.

Оптимизация обычных правил блокировки заключается в том, в нём требуется наличие "ключа". Я и Радик уже писали, что значит "ключ" в данном случае.
Что нам это даёт? Каждому правилу в подписке и частному ставится в соответствие такое слово-ключ. Если ключей несколько (/uploads/smiles/* ← здесь два, а вот тут один → /240x400_, а вот тут → //li.ru/*? ← нет ключей вовсе), то выбирается тот, который реже всего встречается. Таким образом к каждому слову-ключу привязывается от 1 до N правил.
Когда адблок проверяет URL-адрес элемента он разбивает адрес на такие же ключи и выполняет поиск наличия у себя в базе таких слов-ключей. Если ни чего не находит, то пропускает строку. Этот поиск выполняется весьма быстро. Если же находит, то строка сверяется с каждым правилом привязанным к найденному ключу. Если хоть одно правило подходит, то запрос блокируется, а иначе AdBlock переходит к проверке следующего совпавшего ключа и так пока не переберёт все правила привязанные ко всем найденным в строке ключам. Если снова не находит соответствий, то запрос таки пропускается.

Кстати, о правилах без ключей и регулярных выражениях — они все сверяются с _каждым_ запросом. Когда таких правил 1-2 десятка, то это не заметно, но когда их сотни, а может и тысячи, то это становится проблемой и заметно влияет на скорость проверки запросов и создаёт задержки в загрузке страницы. Собственно ради того, что б избежать тотальной проверки всех правил против всех запросов и была придумана оптимизация. Раньше она работала несколько иначе, а до появления оптимизации правил подписки вообще превращали в нагромождения сверхсложных регулярных выражений для того, что б сократить число отдельно проверяемых правил до минимума. Если посмотреть на подписку Хакруса, то там можно найти кошмарики вроде:

Выделить код

Код:

/80x15|88x15|88x31|88x32|100x100|100x35|120x60|120x240|120x120|120x140|120x240|120x600|125x125|160x80|200x100|234x60|240x400|380x60|392x72|400x40|468x60|468x80|470x60|480x60|600x100|728x60|728x90|800x60/
/[-\/\._\(&=\?]ad_?(d?s(?!\.)(c|e)?rvi?(ng)?e?r?|\d\.|(x|sv?)(\d?|\.js)|sc?(?!(_|\/))|vert.*|view|tech|trix|type|_?str(eam|ing)|code|case|cli(ck|ent)s?)[-\/\._\)\?=](?!etr)/$~stylesheet
/[-\/\._\(&=]ad_?(action|butler|brite|bottom|codes?\d*|function|ima?ge?s?|_?id(?!=&)|js(?!\.php)|.php|box_?|farm|v(?!=?(&|off))|x\.js|-.*|l(ink|og|ayer))[-\/\._\)&=\|](?!s(ea)?rch)/$~stylesheet
/[-\/\._\(&=]ad_?(man|mentor|module|mosaic|pops?|parse|revolver|s(dk|end|ize|tome|onar|cripts?)|s?remote|type|-?f(low|rame|etch))[-\/\._\)&=]/
/[-\/\._&=](dime|(euro|pay)s?4?|fine|fast|mega|precision|specific|swf\?|value)[_-]?(stream|xchange|(c|k)lick)(?!\.(jpg|png))/

Это 5 регулярных выражений. Причём первое ещё и довольно не оптимальное. Это отголоски того, что было.
И это лишь часть того, что там творится (← яркий пример того как не нужно делать подписку).
О регулярках говорить не хочу. Это отдельная, сложная и не очень-то нужная тема. АдБлок их поддерживает, но пользоваться ими крайне не рекомендуется именно из-за того, что они не подлежат оптимизации.

Отредактировано Lain_13 (20-04-2011 20:26:43)

Отсутствует

 

№312820-04-2011 22:32:08

vladmir
SeaMonkey - вот это браузер
 
Группа: Extensions
Откуда: НН
Зарегистрирован: 16-10-2004
Сообщений: 4630
UA: Seamonkey 1.1

Re: Adblock Plus для Firefox (автор Владимир Палант)

Я потом ещё под настроение подробнее почитаю. ))) Спасиб.

Отсутствует

 

№312903-05-2011 02:29:41

vn
 
 
Группа: Members
Зарегистрирован: 23-03-2010
Сообщений: 70

Re: Adblock Plus для Firefox (автор Владимир Палант)

А как мне сделать хоткей для скрытия элементов как в 3.6? У меня NoScript по Ctrl+Shift+S, а та новая консоль по Ctrl+Shift+K мне не нужна вообще.

Отсутствует

 

№313003-05-2011 13:36:15

vladmir
SeaMonkey - вот это браузер
 
Группа: Extensions
Откуда: НН
Зарегистрирован: 16-10-2004
Сообщений: 4630

Re: Adblock Plus для Firefox (автор Владимир Палант)

Чёй-то у меня Симанки 2.0.14 с Адблокплюсом 1.3.6 начала тормозить так конкретно.
Раньше такого не былоtm
Отключил в ней Адблокплюс - прекратилось.
В Симанки 1.1.19 с адблокплюсом 1.0.2 - всё как и было - замечательно (а 2.0.14 и 1.1.19 у меня всегда запущены одновременно).
Да, фильтры все ручные, нажитые годами непосильным трудом.
Это из-за фильтров? ... или где

Отсутствует

 

№313103-05-2011 19:37:00

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320

Re: Adblock Plus для Firefox (автор Владимир Палант)

vladmir
Вероятно. Сделай бэкап файла настроек и попробуй с моими подписками, например. ↓

И кинь правила все свои под спойлер в мою тему (в подписи ссылка).
Вдруг что полезное найду для подписки.

Отредактировано Lain_13 (03-05-2011 19:49:12)

Отсутствует

 

№313203-05-2011 22:10:30

vladmir
SeaMonkey - вот это браузер
 
Группа: Extensions
Откуда: НН
Зарегистрирован: 16-10-2004
Сообщений: 4630

Re: Adblock Plus для Firefox (автор Владимир Палант)

Lain_13
Не, я публиковать не буду, там куча просто картинок, которые мне на постоянных сайтах не нужны - не рекламные. И вообще кавардак - эт как в неубранную квартиру гостей звать.)))

Я ещё поэксперементирую, может быть причина комплексная у меня всё же.

Отсутствует

 

№313305-05-2011 23:31:48

vladmir
SeaMonkey - вот это браузер
 
Группа: Extensions
Откуда: НН
Зарегистрирован: 16-10-2004
Сообщений: 4630
UA: Seamonkey 2.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Всё же не из-за адблокплюса тормоз у меня и только в твитере. Там напихано скриптов до-фи-га. И такое впечатление последнее время ещё добавили. Ленту поиска прокручиваешь далеко вниз, открываешь твит вправо - и там зависон. А в самом начале если по твиту жамкнуть, то норм. И это от версии Gecko зависит.
У меня зависает в Firefox 3.5.19 и SeaMonkey 2.0.14 (Gecko 1.9.1.19). На Gecko 2.0.х не висит.

Отсутствует

 

№313406-05-2011 12:21:25

vladmir
SeaMonkey - вот это браузер
 
Группа: Extensions
Откуда: НН
Зарегистрирован: 16-10-2004
Сообщений: 4630
UA: Seamonkey 1.1

Re: Adblock Plus для Firefox (автор Владимир Палант)

Владимиp Палант
Хотя вот ещё такой эффект в SM 2.0.14 + Adblock Plus 1.3.6
Нажимаю на строчку в списке объектов страницы XML request - выделяются рамками все элементы в html страницы (ну не все, если точно, - на части страницы).
Не по всем строчкам XML request-ов срабатывает.
Вижу на сайте твитера. Но на других сайтах мне как-то и не приспичивало особо по строчкам XML щёлкать.

http://forum.mozilla-russia.org/uploaded/2011-05-06_110806.png

В SM 2.1b3 + Adblock Plus 1.3.6 ничего не выделяется из XML request-ов. Те же строчки в твитере перебирал.
В FF 3.5.19 + Adblock Plus 1.3.6 - как в SM 2.0.14  - выделяются-мигают. А и на картинки некоторые так же по всей странице густая сетка выделения и на скрипты.
То есть по версии движка.

Вроде бы что-то такое здесь было в теме, я уж искать не буду - что вижу написал просто.

Отсутствует

 

№313507-05-2011 15:36:27

nevermind1982
Участник
 
Группа: Members
Зарегистрирован: 07-05-2011
Сообщений: 7
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Добрый день всем.
Дня три назад AdBlock перестал блокировать рекламу вконтакте.

Стоит WinXP Pro SP3, Mozilla Firefox 4.0.1, AdBlock 1.3.6 с подписками RuAdlist + EasyList (русский), EasyList English, Fanboy's List.

Пробовал переустанавливать сам плагин, удалять и добавлять подписки заново.

Помогите.

Спасибо.

Отсутствует

 

№313607-05-2011 16:25:33

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Nightly 6.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

nevermind1982
Ты ставил себе расширения для вконтактика? Если да, то какие?

Отсутствует

 

№313707-05-2011 16:49:38

nevermind1982
Участник
 
Группа: Members
Зарегистрирован: 07-05-2011
Сообщений: 7
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Нет, ничего такого не ставил.
С мозиллой и ее плагинами ничего не далал вообще, т.е. какого-то определенного момента, что бы я что-то изменил, что могло вызвать проблему, не помню.

Стоят сейчас
AdBlock Plus
Download Status Bar
Forecast Fox Weather
Russian Spellchecking dictionary
Microsoft .NET Assistant (этот сам когда-то появился и стоит disabled) - зачем он нужен не знаю.

Отсутствует

 

№313807-05-2011 17:11:37

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Nightly 6.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

nevermind1982
Вот это странно. Дело в том, что у меня есть там аккаунт, а вот рекламы я там не вижу. Ну кроме как в некоторых играх.
Давай ты когда наткнёшься на рекламу создашь отчёт и кинешь ссылку на него в тему, указанную у меня в подписи.
В меню адблока "Сообщить о проблеме на сайте" или как-то так.

Отсутствует

 

№313907-05-2011 17:33:22

nevermind1982
Участник
 
Группа: Members
Зарегистрирован: 07-05-2011
Сообщений: 7
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Кинул в теме по ссылке в подписи "тема на форуме".
Спасибо.

Отсутствует

 

№314007-05-2011 19:03:24

CoolCmd
Участник
 
Группа: Members
Зарегистрирован: 29-09-2008
Сообщений: 685
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Lain_13 пишет

Но если в селекторе не указан ни ID, ни класс, ни тип объекта, то перебираются абсолютно все объекты на страницу.

Разве вот такое правило не оптимизируется?

Выделить код

Код:

.classname > *

скрытый текст
какой жуткий грип :D

Отредактировано CoolCmd (07-05-2011 19:05:02)


леса живет в лису?

Отсутствует

 

№314110-05-2011 17:22:12

Владимиp Палант
Участник
 
Группа: Extensions
Зарегистрирован: 06-11-2004
Сообщений: 906
UA: Firefox 4.0
Веб-сайт

Re: Adblock Plus для Firefox (автор Владимир Палант)

Вышел Adblock Plus 1.3.7. Основные изменения:

  • Немного улучшено быстродействие
  • Исправлена потенциальная утечка памяти (возникала только при редком стечении обстоятельств)
  • Восстановлена корректная работа списка элементов и контекстного меню в Firefox 3.5 и SeaMonkey 2.0
  • Разные мелкие исправления

Полный список изменений: http://adblockplus.org/ru/changelog-1.3.7

Отсутствует

 

№314210-05-2011 17:29:59

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Nightly 6.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

CoolCmd
##.classname > *
Это правило скрытия, а не блокировки. Оптимизироваться АдБлоком оно не может.
А с точки зрения CSS это просто отвратительное правило. Мало того, что перебираются все объекты, так ещё для каждого приходится выполнять довольно медленную операцию перехода на уровень выше для проверки объекта—родителя.
Запомни: CSS-селекторы разбираются справа налево по-объектам. Соответственно слева должен быть максимально чётко обозначенный объект.

Отсутствует

 

№314310-05-2011 17:45:00

Владимиp Палант
Участник
 
Группа: Extensions
Зарегистрирован: 06-11-2004
Сообщений: 906
UA: Firefox 4.0
Веб-сайт

Re: Adblock Plus для Firefox (автор Владимир Палант)

Leopold пишет

Т.е. если например страница состоит из 100 картинок и текста, а правилами должно быть убрано 50 картинок, то в первом потоке грузится вся страница (все 100 картинок) независимо от правил адблока, а во втором потоке (либо в остальных N потоках) - картинки постепенно убираются исходя из правил адблока.

Загрузка страницы существенно замедлится, поскольку начнут выполняться скрипты, которые Adblock Plus обычно блокирует. А они еще и запустят загрузку уймы всякого ужаса...

luitzen пишет

Владимир Палант, возможно, стоит сделать короче название вводимого расширением пункта в меню «Вид»

Да, всё никак руки не дойдут сделать это для всех переводов. Давно уже планируется изменить "Adblock Plus" на "ABP" в этом пункте меню и подобных.

Northtech пишет

Владимиp Палант, сделайте пожалуйста кнопки отключения "Установки AdBlock Plus..." в меню Инструменты и "AdBlock Plus: элементы открытой страницы" в меню Вид.

http://adblockplus.org/en/faq_customization#menu_remove (прошу прощения, но на русский пока что никто не перевел)

vladmir пишет

Нажимаю на строчку в списке объектов страницы XML request - выделяются рамками все элементы в html страницы (ну не все, если точно, - на части страницы).

Это в Adblock Plus 1.3.7 исправлено.

Lain_13 пишет

Соответственно слева должен быть максимально чётко обозначенный объект.

Наверное все-таки справа?

Отсутствует

 

№314410-05-2011 18:06:56

CoolCmd
Участник
 
Группа: Members
Зарегистрирован: 29-09-2008
Сообщений: 685
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Lain_13 пишет

А с точки зрения CSS это просто отвратительное правило. Мало того, что перебираются все объекты, так ещё для каждого приходится выполнять довольно медленную операцию перехода на уровень выше для проверки объекта—родителя.

Ты уверен что в лесе нет никаких оптимизаций css? Например в моем примере логично было сделать getElementsByClassName('classname') и перебрать детей. И все бы быстро работало.
Я этого проверить не могу, т.к. querySelectorAll() нихрена не оптимизирован и скорее всего о скорости работы css ничего сказать не может.

Владимиp Палант пишет

Наверное все-таки справа?

Присоединяюсь к вопросу. :)

Отредактировано CoolCmd (10-05-2011 18:08:45)


леса живет в лису?

Отсутствует

 

№314510-05-2011 18:34:52

Владимиp Палант
Участник
 
Группа: Extensions
Зарегистрирован: 06-11-2004
Сообщений: 906
UA: Firefox 4.0
Веб-сайт

Re: Adblock Plus для Firefox (автор Владимир Палант)

CoolCmd
Оптимизации есть - для селекторов по ID и по классу элемента. Подробности здесь: https://developer.mozilla.org/en/CSS/Wr … icient_CSS

CSS не применяется на "готовый" документ после загрузки. Он применяется к каждому новому элементу в процессе загрузки страницы. И к каждому элементу, когда его свойства меняются. Поэтому CSS и работает справа налево - точкой отсчета является элемент и нужно понять, подходит ли он под правило. При этом лучше всего не заставлять браузер переходить к другим элементам.

Отсутствует

 

№314610-05-2011 18:35:20

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Nightly 6.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Владимиp Палант
> Наверное все-таки справа?
Да. :)

Добавлено 10-05-2011 18:37:28
CoolCmd
С другой стороны если такое правило применяется к одному конкретному сайту и на том сайте практически нет динамических изменений на странице (а не как на твиттере), то такое правило будет вполне приемлемо.

Отредактировано Lain_13 (10-05-2011 18:37:28)

Отсутствует

 

№314710-05-2011 19:23:35

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Nightly 6.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Владимиp Палант
> прошу прощения, но на русский пока что никто не перевел
Теперь стало лучше.

Отсутствует

 

№314810-05-2011 19:26:14

aleks_123
Участник
 
Группа: Members
Зарегистрирован: 30-11-2009
Сообщений: 961
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

А можете сказать что эта за опция и на что она влияет ?

скрытый текст
6ac1b22b31e8acf808cd5607030dbe51.png

Отсутствует

 

№314910-05-2011 19:31:44

Владимиp Палант
Участник
 
Группа: Extensions
Зарегистрирован: 06-11-2004
Сообщений: 906
UA: Firefox 4.0
Веб-сайт

Re: Adblock Plus для Firefox (автор Владимир Палант)

aleks_123
Влияет на колонку "Попаданий" - там показывается количество срабатываний для каждого фильтра.

Отсутствует

 

№315010-05-2011 19:35:43

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Nightly 6.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Желающие могут подправить названия пунктов меню в моём переводе — у меня английская локаль и я не знаю точно, что там должно быть.

Отредактировано Lain_13 (10-05-2011 19:36:39)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]