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