OperaのFast Forwardはどうやって次のページを決定しているのか

Operaはその独特なUIになじめなくてほとんどつかったことがないのですが、先日OperaにはFast Forwardという他のブラウザにはない機能があるのを知りました。

Fast Forwardはおおざっぱにいうと、ページが一番下までスクロールしているときにスペースキーを押すと、自動的にページの中から次のページだと思われるリンクを探してそのリンクの先をロードするという機能です。ひとが各サイトごとに手で記述したSITEINFOを外部から持ってきるAutoPagerizeとは違って、Operaに組み込まれたプログラムとデータを用いて次のページを表示するので、すべてのページで機能します。ただしAutoPagerizeのようにページが継ぎ足されていくのではなく、次のページ全体が今見ているウインドウにロードされます。

Fast Forwardについて詳しいことはFast Forward for quick access to next page and logins - Opera Knowledge Baseに書かれています。
よく読むとページ内にある画像へのリンクが開かれたりと、なんでそんな機能があるのかわからない変な機能がありまが、ここではOperaがどうやって次のページだと思われるリンクを見つけているかに注目します。

<link rel="next">

まず、ひとつめとして<link rel="next">で明示されたURLを見ています。 これはHTML4.0.1のLinks in HTML documentsとBasic HTML data typesで定義されていて、現在のドキュメントの次のドキュメントを明示したいときに使われます。ですが、現実には<link rel="next">が記述されていることはまずありません。データベースに前後のエントリ情報を持っているMovableTypeもWordPressもTypePadのようなブロギングプラットホームもこのタグを出力していません。

そのため、次のページを自動的にロードするには<link rel="next">以外の何らかの方法でページの中から次のページへのリンクを抽出する必要があります。

fastforward.ini

この問題に対してOperaは単純なアプローチを採用しています。 次のページのリンクにはだいたい"次へ"とかなんとか書かれているだろ、というわけでfastforward.iniというファイルに様々な言語で"次"を意味するキーワードを並べてあります。
;Special ones

->
-->
"==>"
»
>>
>
index.html
index.htm
default.htm
..... snip .....
;English
Next page
"[Next]"
..... snip .....
;Chinese (traditional and simplified)
下一頁
..... snip .....
;Japanese
次へ
(一部省略してあります)

そんな単純な仕組みでうまくいくの....という感じがしますが、それでも予想よりかなりうまく機能します。特に英語圏では«と»をナビゲーションのリンクに含まれていることが多く(WordPressやtwitterでも使われています)、意外に»が威力を発揮します。
ただ、"次のページ"が時系列で考えたときに"昔のページ"なので"次のページ"のリンクに含まれているのが«で»でなかったりする問題もありますが、それでもそこそこうまく機能します。
このキーワードは自分でfastforward.iniを編集して増やすこともできるので、必要ならば自分で追加することができます。(参考 はてなブックマーク - はてなアイデア - 「次のx件>」じゃなくて「次へ」にして欲しい。Operaで早送り機能が使えるので。)

感想

定量的な評価がなくて申し訳ないですが(こういうときこそAutoPagerizeのSITEINFOをつかえばいいですね)、キーワードにマッチするものを探すという単純なアプローチでもそこそこうまくいくようです。

tags

  • Opera
  • 「OperaのFast Forwardはどうやって次のページを決定しているのか」のはてなブックマーク数
  • 「OperaのFast Forwardはどうやって次のページを決定しているのか」deliciousブックマーク数
  • 「OperaのFast Forwardはどうやって次のページを決定しているのか」をはてなブックマークに追加
  • save "OperaのFast Forwardはどうやって次のページを決定しているのか" to del.icio.us
  • 「OperaのFast Forwardはどうやって次のページを決定しているのか」をリアルタイムブログ検索
  • permalink
  • tamarinのガベージコレクタMMgc(に挑戦して失敗)
  • HTMLのドキュメントから繰り返し部分をみつける

comments

TypeKey Enabled
スタイル用のHTMLタグが使えます。
*required

trackbacks

トラックバック元エントリにこのエントリへのリンクがない場合はトラックバックを受け付けません。

http://labs.gmo.jp/mt/mt-tb.cgi/176
©2010 Kentaro Kumagai, GMO Internet Labs., GMO Internet, inc.
bits and bytes
2007 .10. 25 19:29

tagcloud

  • API1
  • C/C++2
  • E4X1
  • FUSE2
  • Firefox18
  • HTML4
  • IE1
  • MySQL1
  • OSX4
  • Opera2
  • PHP4
  • XML1
  • XPCOM4
  • XPath3
  • apache2
  • binary2
  • book1
  • data11
  • debug4
  • design1
  • experiments3
  • extension10
  • google gears1
  • google maps API1
  • greasemonkey3
  • httpd5
  • javascript17
  • linux1
  • logging2
  • mobile3
  • perl4
  • tips4
  • tool11
  • vim2
  • visualization2
  • widget1
  • wii1
  • windows7
  • サービス6
  • 和訳1

Archives

  • 2008.02 (6)
  • 2008.01 (3)
  • 2007.12 (4)
  • 2007.11 (5)
  • 2007.10 (4)
  • 2007.09 (4)
  • 2007.08 (4)
  • 2007.07 (8)
  • 2007.06 (7)
  • 2007.05 (4)
  • 2007.04 (5)
  • 2007.03 (6)
  • 2007.02 (4)
  • 2007.01 (6)

about

  • bits and bytesのXML
  • 「bits and bytes」のCreative Commons
  • Powered by Movable Type
  • イベントと地図 - モグ
  • Use ecto to blog!
  • bits and bytesのはてなブックマーク数
  • bits and bytesをMy Yahoo!に追加
  • Subscribe with Bloglines