読者です 読者をやめる 読者になる 読者になる

AutoPagerizeの動作の流れ

AutoPagerize

AutoPagerize くらいは - twwp宛て。

本家swdyh版について(oAutoPagerizeも主な流れは同じだけど)、ざっくりと処理の流れを(細かいところやメインでない部分は省いています)。

  1. ページの読み込み→Greasemonkey起動(この辺は省略)、AutoPagerize起動
  2. SITEINFOの読み込み
    1. SITEINFOの期限が切れていた場合、wedataから最新を取得
  3. URLにマッチするSITEINFOがあるかチェック、なければ終了
  4. SITEINFOのXPathが機能しているかチェック、XPathで要素を取れなかったら終了
  5. 初期化処理
    1. 次のページのURL取得
    2. 差込位置の決定、insertBeforeか、pageElementの最後の次の要素
    3. 右上アイコン・ヘルプの設置
    4. スクロール監視の開始
    5. 読み込み開始位置の決定(どこまでスクロールしたら次のページを読み込むかは、ページ全体の高さ、pageElementの位置、BASE_REMAIN_HEIGHTで決まる)
  6. 現在のスクロール位置が、読み込み開始位置を超えていないかチェック。閾値を超えたらリクエストを投げる
  7. GM_xmlhttpRequestで次のページにリクエストを投げる(投げる直前にrequestFilters、返ってきたらresponseFiltersをそれぞれ適用)
  8. レスポンスからHTMLテキストを受け取り、そのテキストからドキュメントを作成する(通常、ドキュメントの作成はブラウザが勝手に行うので、JavaScriptでドキュメントを作成することは滅多にない。そういう意味で、AutoPagerizeの肝になる部分。)
  9. documentFilters適用
  10. 作成したドキュメントからpageElementを切り出す、できなかったら終了
  11. 同じくドキュメントから次のページを取得、できなかったら終了
  12. 切り出した要素をページに継ぎ足す
  13. filters適用
  14. 6に戻る

こんな感じです。というか、こんな感じでよいでしょうか?taizoooさん。

# てか、ソースの要所にコメントつけてみるとかのほうが需要あるかな?

AutoPagerize のコードを読む 1 - digital 千里眼もどうぞ。