[1] [[RSS]] の [DFN[[CODE(XMLe)@en[[[ttl]]]] [[チャンネル要素]]]]は、
[[チャンネル]]を更新せずに[[キャッシュ]]しておくことができる期間を表します。

:[[要素名]]:[CODE(XMLe)@en[[[ttl]]]]
(time to live ([[寿命]]) より [SRC@en[[[RSS 2.0]]]])
:文脈:[[チャンネル要素]]が認められる文脈
:[[内容モデル]]:[[整数]]
:[[属性]]:

仕様書:
-[CITE@en[RSS 2.0 Specification (version 2.0.10)]]
--<http://www.rssboard.org/rss-specification#optionalChannelElements>
--<http://www.rssboard.org/rss-specification#ltttlgtSubelementOfLtchannelgt>
-[CITE@en[RSS Best Practices Profile]] ([TIME[2008-11-21 15:11:45 +09:00]] 版) <http://www.rssboard.org/rss-profile#element-channel-ttl>

* 内容

[2]
[CODE(XMLe)@en[[[ttl]]]] [[要素]]の[[内容]]は、[[分]]の数を表します [SRC@en[[[RSS 2.0]]]]。

* 処理モデル

[4] この[[要素]]の情報を使うことで、 [[RSS]] 情報源を [[Gnutella]]
のような[[ファイル共有網]]で管理することが可能になります [SRC@en[[[RSS 2.0]]]]。

;; [5] よく意味がわかりませんが、 [[P2P]] [[ネットワーク]]中を [[RSS]]
[[ファイル]]が放浪する期間を定められるという意味でしょうか。

[7] ほとんどの[[集積器]]は、通常1時間に1回更新を調べます [SRC@en[[[RSS Best Practices Profile]]]]。
[CODE(XMLe)@en[[[ttl]]]], [CODE(XMLe)@en[[[skipDays]]]],
[CODE(XMLe)@en[[[skipHours]]]] はその制御に用いることができます。

* 実装

[8] [CODE(XMLe)@en[[[ttl]]]] [[要素]]は 21% の[[フィード]]で使われています
[SRC@en[[[RSS Best Practices Profile]]]]。

[9]
[[BlogBridge]], [[Bloglines]], [[Google Reader]], [[JetBrains Omea]], [[Mozilla Firefox]], 
[[My Yahoo]], [[NewsGator Online]], [[RSSBandit]]
はこの[[要素]]を無視します [SRC@en[[[RSS Best Practices Profile]]。

[10] [[BottomFeeder]], [[CITA RSS Aggregator]], [[GreatNews]], [[Internet Explorer 7]], 
[[NewzCrawler]], [[Opera 9]], [[Snarfer]] はこの[[要素]]の値を更新検査の最大の頻度として使います
[SRC@en[[[RSS Best Practices Profile]]]]。

[11] [[FeedDemon]] は、この[[要素]]の値が30分[[以上]]であって[[利用者]]が特に上書きしていない場合にあっては、
この[[要素]]の値を推奨される更新検査の頻度として使います
[SRC@en[[[RSS Best Practices Profile]]]]。

[12] [[RSS 2.0]] 仕様書の意図通りに最小の頻度として使う[[集積器]]はありませんでした
[SRC@en[[[RSS Best Practices Profile]]]]。

[13] このように実装上の違いがあるため、[[集積器]]はこの[[要素]]に対応する場合は[[フィード]]の更新頻度に関する出版者によるヒントとして扱う[['''べきです''']]。
例えば、利用者に対して更新検査の頻度の既定値として示すために使えます。
[SRC@en[[[RSS Best Practices Profile]]]]

* 例

[3]
[PRE(XML example code)[
<ttl>60</ttl>
]PRE]

;; [[RSS 2.0]] 仕様書より

* メモ

[6] でもこれ、起点はいつなんでしょうか。[[ファイル]]を受け取った[[時刻]]?
[CODE(XMLe)@en[[[pubDate]]]]? [CODE(XMLe)@en[[[lastBuildDate]]]]?
[[HTTP]] [CODE(HTTP)@en[[[Last-Modified]]]]? それらが指定されていない場合は? などなど。。。


[FIG(quote)[
[FIGCAPTION[
[14] ([TIME[2016-03-14 12:53:04 +09:00]] 版)
<http://www.tbsradio.jp/tsutaya/index.xml>
]FIGCAPTION]

> <channel>
> <ttl>60</ttl>

]FIG]


[FIG(quote)[
[FIGCAPTION[
[15] [CITE@en[BitTorrent.org]]
([[Arvid Norberg <arvid@bittorrent.com>]] 著, [TIME[2014-09-29 05:34:53 +09:00]] 版)
<http://www.bittorrent.org/beps/bep_0036.html>
]FIGCAPTION]

> The ttl tag SHOULD be supported and honored. The definition of the value inside the ttl tag is the number of seconds to wait until the client should refresh the feed the next time.

]FIG]


[FIG(quote)[
[FIGCAPTION[
[16] [CITE@en[SmartFormat]]
([TIME[2016-03-18 17:03:22 +09:00]] 版)
<https://www.smartnews.com/smartformat/ja/>
]FIGCAPTION]

> 取得間隔については、SmartFormat ファイル上の "ttl" 要素にて任意に設定が行えます。

]FIG]
