Liner Note

情報(ユーザー中心デザイン・ユーザビリティ)と技術(ウェブプログラミング・ウェブサービス)についてのメモ書き

要約:ページ分けされている時にページの下部まで来たときに次のページを自動で読み込んで加えるスクリプトを特別な用意無しでも使えるようにして、導入してみました

次のページを自動で読み込んでみた例

このサイトを見ている人なら聞き飽きたことかもしれませんが、Firefox用GreaseMonkeyスクリプトのAutoPagerize*1 は超便利です。

もともとページ分けというのは、

  • ページをコンパクトにして、ブラウザ側の動作速度を優先するため
  • ページをコンパクトにして、人間が読みやすい分量に収めるため
  • ページ全体を一覧し、好みの位置に移動しやすくするため

などの意義があるために、UIとして多く使われているのだと思います。コンテンツをちょっとずつ足していくというAutoPagerizeのアプローチはこの利点を損なわず、かつページ切り替え時のストレスを減らしてくれる点で便利だなと。

ただ、最近はGreaseMonkeyスクリプトが動作する環境も増えてきたとはいえ、事前にインストールする必要があるのは変わらないわけです。こういう有用なテクノロジーを閉じこめておくのはもったいないですから、今回はAutoPagerizeをインストールしていない人にも使えるように工夫してみました(制作者のmalaさんに感謝)

とはいえ、AutoPagerizeはかなりのサイズになっていますし、GreaseMonkey専用の命令も含まれていますので、ウェブサイトで使うのには適していません。ということで、今回はこのネタ元的存在のGoogleAutoPagerを利用してみることにしました。

いかんせん、Javascriptに疎いですので苦労もしましたが、なんとかこのサイトの検索結果画面・タグアーカイブ画面で使えるようにしました。「情報」のサイト内検索結果ページで、動作を確認してみてください。

私の知っている限りでは、AutoPagerize的な動作をしてくれるのはMicrosoft Live 画像検索完璧画像検索くらいしか知らないのですが、そろそろこういったインターフェイスをウェブでも標準的に使っていった方がいいのではないかなと。

あと、動作の細かな話ですが、オリジナルのAutoPagerizeとかぶってしまう(二重に読み込まれてしまう)ため、あえてa要素のrel属性(rel=”next”)を外して対処しています。もっとも、こんなアホでセマンティックレスな解決策では満足できていないので、何か良い方法があったら教えてください。

ダウンロード
cielo.js(最初の無名関数が今回のスクリプトの部分です)
ライセンス
GNU General Public License

作る上で参考にしたページ

反応に対する返信


スクロールが完全に下に行く前に読み込んでおいてもうちょっとスムーズに次ページへ進めると嬉しいなと思いました

id:typewhiteさんのブックマーク

御意。少し反応する位置を上方に修正してみました。


ユーザースクリプトはブラウザの機能を補うものであり、ブラウザがもともと持っている機能と同一視できます。ある機能を (一般の Web ページを対象とした) ユーザースクリプトで実現するということは、それをブラウザの機能として、すなわち統一された操作感の下で提供するということです。同じ機能は同じ操作で実現できることを第一とするなら、ユーザースクリプトと製作者スクリプトとではユーザースクリプトのほうを優先させるべきです。

(略)

ある機能に関するスクリプトにも CSS のように、重要指定付きユーザースクリプト、製作者スクリプト、通常のユーザースクリプトと排他的な優先順位を設定する仕組みが整っていればいいんですけどね。

ユーザースクリプトと製作者スクリプト: Days on the Moon

機能衝突が起こる場合にユーザスクリプトの動作を優先するという前提は私も同じです。というのはまず、現在主流になっているブラウザのほぼ全てに、フォント・色彩設定やユーザスタイルシートなどのコントロール機能が実装されている以上、ウェブではユーザ側にコントロール権を持たせるという考えがあると思います。そして当然、この考えをスクリプトの動作にも適用できるからです。

それで、nanto_viさんに提示していただいた解決策は技術に疎い私からするとなかなかスマートに思えるのですが、

  • AutoPagerize的な機能を持つユーザスクリプトが、単独のアドオンとして提供されているものを除いても複数存在することPagerization, AutoPageLoader, jAutoPagerizeなど)
  • ユーザスクリプト製作者とサイトスクリプト製作者の両者に対応が求められること

の双方を考慮すると、現実的には回避しきれずに衝突してしまうケースを危惧してしまいます*2

ということもあって、やはり個別的にではなく、仰るようにCSSの優先順位付けのようにGM側から構造的に解決できるとよいんですけどね…。

上記、「教えて」と言っておきながら、後出し的に「~はできないですよね」と応答するのはすごく失礼な気がしてきた。nanto_viさん、お気を悪くされたらごめんなさい。

最初から勝手に読み込むんだったらそもそもページングしなくていいのではただの分割読み込みでは。俺はあれ「ユーザスクリプトであることに意味がある」と思うけど。

id:faultierさんのブックマーク

ページングして分割読み込みする意味は上記に記しました。その「ユーザスクリプトであることに意味がある」理由を教えてもらえれば、どこで食い違ってるのかわかると思うんですが。

  1. ページの下まで来ると、次のページの内容を自動で読み込んで加えてくれるスクリプトです[戻る]
  2. nanto_viさんは双方がどうあったらよいかという話をしているので、こういう答え方はかみあってないかもしれませんが[戻る]
キーワード:

似たもの記事

読者の皆さんの反応サイト内コメントの更新情報(RSSフィード)

読者のコメント

5

ブックマークコメント

11

他サイトの関連記事

1

読者のコメント

  1. お名前

    もぎゃ

    投稿日時
    2008年08月01日
    14時ごろ
    Comment No
    #1

    これって、
    http://note.openvista.jp/page/1/?s=%E6%83%85%E5%A0%B1
    を下にスクロールしていったら2ページ目以降も自動で読み込まれる、という意図ですよね。

    どうもうまく動いていない気がします。下までスクロールしてもなんにもおきません。ボクだけ?

    FireFox2.0.0.16 (GreaseMonkey未導入)
    IE7.0.5730.13

    いずれも、WindowsXPです。

  2. お名前

    和歌

    投稿日時
    2008年08月01日
    20時ごろ
    Comment No
    #3

    アドオン版ではAutoPagerというものもあります
    幅広いサイトに対応した設定ファイルは自動的に更新されます
    こちらはGreasemonkey不要です

    AutoPager
    http://autopager.mozdev.org/index.html

  3. お名前

    もぎゃ

    投稿日時
    2008年08月02日
    7時ごろ
    Comment No
    #5

    おお。うごいたっ。
    これだとユーザーに何かインストールさせることがないから、いいかもですね。

はてなブックマークでつけられたコメント

lesson5さんのプロフィール画像  lesson5
AutoPagerize、GoogleAutoPager
denkenさんのプロフィール画像  denken
提供されたHTMLファイルをユーザがどう扱うかは、やっぱりユーザの裁量だろうなあ
faultierさんのプロフィール画像  faultier
最初から勝手に読み込むんだったらそもそもページングしなくていいのではただの分割読み込みでは。
俺はあれユーザスクリプトであることに意味があると思うけど。
asiamothさんのプロフィール画像  asiamoth
自家製AutoPagerize。
本家と被らないようにするための工夫が必要みたい。
hiro_yさんのプロフィール画像  hiro_y
AutoPagerizeをサイト側で実装する提案、そのためのJSライブラリ。
typewhiteさんのプロフィール画像  typewhite
スクロールが完全に下に行く前に読み込んでおいてもうちょっとスムーズに次ページへ進めると嬉しいなと思いました
DocSeriさんのプロフィール画像  DocSeri
AutoPagerizeをWebサイト側で実装。
wackyさんのプロフィール画像  wacky
AutoPagerizeのように、ページの下までスクロールすると次ページの内容を動的に読み込んで自動表示するライブラリ。
GPLライセンス。
funinekoさんのプロフィール画像  funineko
greasemonkeyがよくわからないのでAutoPagerでいいです
snj14さんのプロフィール画像  snj14
ウェブはこうあってほしい論でいくと,ブラウザは対応している機能の名前をUAにつける.ウェブ側はUAをみてJS(script要素)をHTMLに付けたり付けなかったりする.http://snj.tumblr.com/post/43812407
kitsさんのプロフィール画像  kits
記事見出しがそろそろAutoPagerizeを標準的に導入していったらどうか編集となっているのに気付き、気になりました。
→ 修正済

他サイトの関連記事

  1. ウェブサイト

    Days on the Moon

    投稿日時
    2008年08月02日
    2時ごろ
    Comment No
    #1

    ユーザースクリプトと製作者スクリプト

    あと、動作の細かな話ですが、オリジナルのAutoPagerizeとかぶってしまう(二重に読み込まれてしまう)ため、あえてa要素のrel属性(rel=”next”)を外して対処しています。

    そろそ


トラックバックとは
この記事に言及したサイトをこちらに掲載する仕組みをトラックバックと言います。ここでは、このサイトに頂いたトラックバックを一覧表示しています。
トラックバックしてくださる方へ
この記事への言及がない記事など、トラックバック受信方針に沿っていないものは、読者にお見せしても仕方ないこともあり削除させていただいることをご了承ください。
トラックバックを受け取るためのURI

コメント書き込みフォーム

  • メールアドレスはウェブ上で公開したり、連絡以外で使うことはありません
  • コメントを公開したくないが、作者に連絡を取りたい場合は メールで連絡してください
  • 本文中にHTMLコードは使用できません(URLはそのままお書きください)