今回の更新内容は次のとおり。
- クリップ機能を新規に追加しました。(Firefox2とIEから利用できます)
- 人気のRSS・掲示板・スレッドを「人気の一覧」にまとめました。
- プロパティからのタグ選択方法を変更しました。
- RSSの表示モード切替ボタンを各記事に追加しました。
- Amazon商品の表示をトップセラーに変更しました。
- 上記の変更に伴いCSSクラス構造を変更しました。
今回の一番の目玉はクリップ機能です。RSSやスレッドの気になる記事をブラウザに保存することが可能となりました。
クリップ記事にはタグによる分類とコメントを追加して保存できます。 ブックマークと違って、各ブラウザのローカル領域に保存するため、ログインの必要はありません。 (ログインユーザとの結びつきはありません)
Amazonの変更は、これまでタイトルを構文解析して関連する商品を表示するように努力していましたが、ヒット率が悪いのと付加軽減のため、トップセラー商品を表示するように変更しました。
IEで利用できるuserData behaviorは、ユーザのローカル領域に任意のデータを保存する仕組みとしてよく知られています。 WEBの仕様ではuserDataよりも、Firefox2以降でサポートされているDOM:Storageの方がより標準に近い仕様ですが、IEを無視できないので両方に対応するケースがほとんどです。
これまでの実装は、userDataはsetAttribute、DOM StorageはsetItemでテキストデータを保存するのが通例でした。 この方法の問題点は、保存するデータが大量の繰り返しデータのときに、その一部分のみを変更しにくい点にあります。
実際にRSS+リーダーでは、履歴とクリップの処理に利用していましたが、データの追加や削除が発生するたびに、全体のデータを再構築して保存するテキストを作成していました。
ある時、何気なくuserDataの仕様を調べていたときに、XMLDocumentというプロパティがあることに気が付きました。 このプロパティを使うと、userDataの保存データをDOMで操作することができます。
DOMが使えるということは、各繰り返しのデータ一つ一つをエレメントとして設定することが可能ということです。 一部のデータを変更したければ、該当するエレメントのみに変更を加えればよいことになります。
データの詳細を保存する場所は、各エレメントのアトリビュート、テキストノード、CDATAに至るまで自由に使うことができます。 userDataの保存ファイルはXMLテキストですが、このXMLDocumentプロパティを使うことで、userDataの能力を100%発揮することができるのです。
このXMLDocumentがとても便利なので、DOM:Storageの方も同じようにDOM操作で保存できるラッパーを作成しました。 今ではIEとFirefoxの両方で同じ使い方が出来る データ保存クラスとして活躍しています。