【CSS】Mozilla広告ブロック Part3【Adblock】 at SOFTWARE
[2ch|▼Menu]
392:名無しさん@お腹いっぱい。
07/09/02 09:27:31 e87sRaqh0
表現が悪かったか?

705 :名無しさん@お腹いっぱい。:2007/04/12(木) 17:27:12 ID:NrgQlk+w0
Adblock Plus はどのようにフィルタを処理し、また如何なるフィルタがより高速なのか?

フィルタは内部的には全て正規表現に変換される(正規表現で書かれていないものであっても)。
例えば『ad*banner.gif|』は内部では『/ad.*banner\.gif$/』となる。
しかしながら Adblock Plus はチェックすべきフィルタがある時に
それらを全てひとつひとつチェックしたりはしない……そんなことをしても無駄に重くなるだけだ。

フィルタの正規表現への変換に際し、Adblock Plus はそれらからテキスト情報を抜き出そうとする。
必要なのは8文字のユニークな文字列("shortcut")である。
これはそれぞれのフィルタ内のアドレスから抜き出されたもので、
例えば『|URLリンク(ad.*)<)” か “URLリンク(ad)<)” のどれかを選ぶ
(これらはどれも本来のフィルタがマッチすべきアドレスにマッチする)。
不幸にもワイルドカード等で区切られて8文字も無いとか、正規表現で書かれているとかならこの shortcut は作れない。

全ての shortcut は検索テーブルに放り込まれ、それによって Adblock Plus は必要なフィルタを極めて効率的に呼び出せるようになる。
とあるアドレスをチェックする時には Adblock Plus はまずそれらの shortcut を検索する
(これは非常に速く終わり、また登録された shortcut の数にもほとんど影響を受けない)。
shortcut にヒットした場合にのみ本来のフィルタから変換された正規表現でチェックする。
また、shortcut を作れなかったフィルタに関してはひとつひとつチェックされる。


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4361日前に更新/238 KB
担当:undef