【Adobe Spry TIPS】RSSの表示する件数を変更してページングをつける。

このエントリーをはてなブックマークに追加

質問があったので解説です。

RSSの表示件数を変更する方法

var RssData = new Spry.Data.XMLDataSet("/atom.xml", "/feed/entry[position() <= 10]");

このようにXPathのオプションとしてposition()<=表示したい数を付加します。

サンプル

ページングをつける

Spry framework for Ajax - SpryDataで紹介されている方法が非常に簡単です。
(ただし不等号が間違っているので注意)

var size=5;  // 表示件数
var start=0; // 表示開始行数
var RssData = new Spry.Data.XMLDataSet("/atom.xml", '/feed/entry[position() > ' +start+ ' and position() <= ' +(start+size)+ ']');
function next(){
    start+=size;
    RssData.setXPath('/feed/entry[position() > ' +start+ ' and position() <= ' +(start+size)+ ']');
    if (RssData.getData().length==0){
        prev();
    }
};
function prev(){
    start-=size;
    if(start<0) start=0;
    RssData.setXPath('/feed/entry[position() > ' +start+ ' and position() <= ' +(start+size)+ ']');
};

setXPathを利用して表示するデータセットの領域を変更しています。

サンプル

【Adobe Spry TIPS】 目次

スポンサードリンク

«macのマウスの速度を変更する。 | メイン | MyMiniCityを楽しむためのGMスクリプト»

このエントリーのトラックバックURL
http://blog.webcreativepark.net/cgi/mt/mt-bt.cgi/1139
コメント

ページングのTips大変参考になりました。
しかし、この方法ではソートと組み合わせたときに問題があるようです。
それは、ソート機能を併用したときに、表示されたものだけでソートしてしまうというものです。ページング機能を実現しながら、XMLのデータ全体をソートする方法があればよいのですが、現在調査中です。もし、いいアイディアがありましたら記載していただきたいと思います。

投稿者:inouehdak | 2008年8月23日 15:28

>inouehdakさん

ソート機能を独自に実装すれば可能だと思います。

ただ、そこまでするとSpryを利用するのは、逆に手間がかかる原因になりますので、Prototype.jsやjQueryなどの汎用的なJavaScriptライブラリを利用したほうがよいかなと思います。

投稿者:西畑一馬 | 2008年8月24日 12:35
コメントを投稿