スキップしてメイン コンテンツに移動

投稿

2009の投稿を表示しています

ページング処理を改修

かねてから懸案だった、データのページング処理を改修する。
GAEのデータストアは、fetchするデータ数が最大1000までしかない。これは連続するエンティティをカウントするのに負荷がかかるため、1000以上できない仕様にしているためだ。もちろん、1000以上あってもエンティティの検索などは問題なく行える。「連続する1000以上のエンティティをまとめて取得できない」というだけだ。
だが、この制限のおかげで、ページングをする場合、表示するデータのオフセット値を指定して値を取り出す、というような手法がとれないことになる。limitも当然だが1000までしか扱えないからだ。そこで別の方法を考えないといけなくなる。
Googleのドキュメントで推奨しているのは、現在表示しているデータのキーを引数として送り、そのキーのデータから表示する個数を取得する、という方法だ。そして、次のページを表示するためのリンクなどでは、自ページ冒頭に表示されるデータのキーをクエリー文字などを使って渡し、そのキーを使ってデータを取得するようにしなさい、ということらしい。
で、libroではユーザー・ホームで自分の投稿した記事を一覧で見られるようにしているので、その投稿記事の表示に、このページング処理を本日導入してみた。とりあえずは問題なく動いている。ただ、実際にデータ数を1000以上追加して正しく取得できるか確認してみないといけないだろう。年末なので、とりあえず細かいチェックは来年に持ち越し。

libro公開

というわけで、本日、「libro」を公開しました。
libroは、FinQのコードを半分以上流用しているので、割と短期間に作れた。機能もかなり少ないし、メインの処理はほんの数日程度だ。後は細かい調整とかに時間をかけただけ。実は、本当に作りたかったのは、FinQよりこっちのほうだったりする。自分のサイト(Tya's Google website)に入門を少し書いたりしたのだけど、もっと手軽にアップ出来る仕組みを作っておきたかったのだ。が、それはブログではないし、Googleサイトも微妙に違う気がする。で、こういう形になったというわけ。
まあ、こっちは「気軽に投稿ください」といっても、まず投稿してくれる人はいないだろう(笑)。でもまあ、それでいい。もともと自分で書いた入門記事をアップするためのサイトとして作ったものだから、自分専用の投稿サイトで当面はいい。――その分、機能もかなり荒削りで、まだ未実装なものもぎょうさんとある。が、なにしろ自分専用だからね。こっちはのんびりやっていくつもりだ。