[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 12/29 21:07 / Filesize : 308 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【CSS】Mozilla広告ブロック【Adblock】



1 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/08/01(火) 12:41:46 ID:IsoaU6wd0]
フィルタをアップするときに書き込む項目(推奨)
・フィルタを適用したブラウザ
・ブロックに使用した手段
・ブロックされる広告の説明
・フィルタ

過去のスレッド
Mozilla Firefox Adblockフィルター スレッド Part1
pc7.2ch.net/test/read.cgi/software/1131101772/

704 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 17:26:20 ID:NrgQlk+w0]
>>699
Adblock Plus の内部機構においても『/ad.*banner\.gif$/』より
『/ad.*?banner\.gif$/』の方が速いと俺に分かるように説明してくれたら伝えるけど、
個人的にそこは今の Adblock Plus にはあまり重要ではないことのような気がする。

それはそうと、実はそこの部分は思いっきり誤訳しててさw
正しくはこう↓


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

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

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

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

まとめ:どんなフィルタが速いのか?
・可能な限り正規表現は使わない(正規表現は問答無用に遅い)。
・8文字の直列した文字列(中にワイルドカード『*』のような特殊な文字が含まれない)を内包する
 シンプルなフィルタを使うように心掛ける。そうでないフィルタは正規表現と同様に遅い。
・上記の『速い』フィルタはいくつあっても良い。数に関係なく処理時間は一定である。
 つまり1個の正規表現よりも20個のシンプルなフィルタを使う方がマシである。
・というわけで、Deregifier(adblockplus.org/en/deregifier)マジお勧め。


706 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 17:29:06 ID:NrgQlk+w0]
ちなみに Deregifier とは正規表現を単発フィルタに分解してくれるツール。

adblockplus.org/en/deregifier

例えば>>699の中にある『/(\/|www\.|page)ad(\/|click\/|server\.|justnetwork\.|\.watch\.)/』なら↓
/ad.watch.
*/ad/
*/adclick/
/adjustnetwork.
/adserver.
pagead.watch.
pagead/
pageadclick/
pageadjustnetwork.
pageadserver.
www.ad.watch.
www.ad/
www.adclick/
www.adjustnetwork.
www.adserver.
↑といった感じに分解してくれる。







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<308KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef