<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セッション履歴イベントループ<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">session history event loop</rt></rubyb></dfn>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セッション履歴</anchor>を扱う特別な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントループ</anchor>です。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="127" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[127]</anchor-end> <cite xml:lang="en-US-x-hixie">HTML Standard</cite> (<time>2013-09-25 20:51:31 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.whatwg.org/specs/web-apps/current-work/#session-history-traversal-queue">http://www.whatwg.org/specs/web-apps/current-work/#session-history-traversal-queue</anchor-external></li></ul></refs></section><section><h1>セッション履歴探索キュー</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="129" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[129]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">最上位閲覧文脈</anchor>はそれぞれ<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>セッション履歴探索キュー</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">session history traversal queue</rt></rubyb></dfn>を持ちます
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="127" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;127</anchor-internal></src>。これは通常の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントループ</anchor>における<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タスクキュー</anchor>の役割を果たしますが、
ここに追加され得る<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タスク</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">traverse the history by a delta</anchor> のもの (つまり履歴移動が発生した時のもの)
だけです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="130" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[130]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">最上位閲覧文脈</anchor>が作られた時点では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セッション履歴探索キュー</anchor>は空です <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="127" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;127</anchor-internal></src>。</p></section><section><h1>セッション履歴イベントループ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">最上位閲覧文脈</anchor>が作成されたら、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">並列</anchor>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セッション履歴イベントループ</anchor>を実行しなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="127" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;127</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セッション履歴イベントループ</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セッション履歴探索キュー</anchor>が空で無くなると、
先頭の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タスク</anchor>を取り出して実行する、という処理を繰り返さなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="127" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;127</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セッション履歴イベントループ</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">最上位閲覧文脈</anchor>が破棄された時停止します。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="134" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[134]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントループ</anchor>は複数存在することがあり、その場合履歴の操作が発生すると<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントループ</anchor>間で同期操作が必要になってしまいます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セッション履歴イベントループ</anchor>はこれを避けるために導入されました <src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="137" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;137</anchor-internal></src>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントループ</anchor>が全体で1つしかない実装では、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セッション履歴イベントループ</anchor>も必要なく単一の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントループ</anchor>で処理できます。</comment-p></section><section><h1>歴史</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="137" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[137]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セッション履歴イベントループ</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントループ</anchor>が複数ある環境での履歴操作を記述するために2013年9月に導入されました。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="125" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[125]</anchor-end> <cite>IRC logs: freenode / #whatwg / 20130923</cite>
( (<time>2013-09-24 20:37:19 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://krijnhoetmer.nl/irc-logs/whatwg/20130923">http://krijnhoetmer.nl/irc-logs/whatwg/20130923</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="135" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[135]</anchor-end> <cite>IRC logs: freenode / #whatwg / 20130924</cite> (<time>2013-09-26 00:00:06 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://krijnhoetmer.nl/irc-logs/whatwg/20130924#l-748">http://krijnhoetmer.nl/irc-logs/whatwg/20130924#l-748</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="136" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[136]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r8199     Session history traversal in a multi-process world. I have no idea what I'm doing.</cite> (<time>2013-09-26 05:51:00 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=8198&amp;to=8199">http://html5.org/tools/web-apps-tracker?from=8198&amp;to=8199</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="138" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[138]</anchor-end> <cite><strong>[</strong>whatwg<strong>]</strong> Navigation and history traversal issues</cite> (<time>2013-09-25 23:23:38 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-September/040888.html">http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-September/040888.html</anchor-external></li></ul></refs></section></body></html>