そずべねぐ/華和梨と栞ロードとゴーストキャッシュ
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
*華和梨と栞ロードとゴーストキャッシュ [#i1a3a6ac]
アリス「おかしいわ。おかしいわ。何だかとってもおかしいわ...
ボブ「HI! どうしたんだい、海老名グリーンみたいなこと...
アリス「誰が海老名パーキングエリアよ。~
それより、ゴーストを作ってるんだけど、ゴーストを切り替...
いったい、何がおこってるの?」~
ボブ「HAHAHA! そいつはゴーストキャッシュという名...
アリス「どーにかする方法はないわけ?」~
ボブ「HAHAHA! まぁ、落ち着けよアリス。~
この問題を理解するにはゴーストキャッシュの挙動と栞ロー...
*目次 [#v35704f4]
#contents
*栞ロード/アンロードとゴーストキャッシュ [#ycc19f44]
通常、ゴーストが起動/終了するとき、栞ロードと栞アンロード...
ところが、SSPのゴーストキャッシュが有効である場合、ゴース...
これが華和梨的には由々しき問題なのです。
*栞ロード時とゴーストキャッシュからの起動時での挙動の差 [...
栞ロードが発生したとき、華和梨は「エントリの初期化」と「...
ところが、ゴーストキャッシュからの起動ではこれらの処理が...
この挙動の差が問題なのです。~
どういうこと?~
**ちょっとテスト [#r9104b77]
kawarirc.kis に以下のようにだけ書いてゴーストを起動します...
ほげ: 0
System.Callback.OnGET: $(.entry ev.${System.Request.ID})
ev.OnBoot: $(inc ほげ)\1\s[10]\0\s[0]${ほげ}\e
ev.OnClose : \-
ev.OnGhostChanging: \e
まずはゴーストキャッシュを無効にして、このゴーストを起動...
普通にゴーストが起動すれば起動時に「1」と喋ります。起動時...
もちろん、このゴーストを他のゴーストに切り替えて戻したり...
ところがゴーストキャッシュを有効にしてこのゴーストを起動...
最初の起動時こそ「1」と話しますが、他のゴーストに切り替え...
***どうしてこうなった?(AA略) [#adfb1227]
ゴーストキャッシュからゴーストが起動される時、「各エント...
そのため、OnBoot受信の契機で「1」である「ほげ」エントリは...
**倍増するエントリ [#raf0085b]
次はこんな感じで。
System.Callback.OnGET: $(.entry ev.${System.Request.ID})
ev.OnBoot: $(
load sav.txt;
inc 起動回数;
)\1\s[10]\0\s[0]起動回数:$(join 起動回数 ",")\e
ev.OnClose : $(save sav.txt 起動回数)\-
ev.OnGhostChanging: $(save sav.txt 起動回数)\e
まずはゴーストキャッシュを無効にして、このゴーストを起動...
ゴーストが起動すれば起動時に「1」と喋り、起動するごとに「...
ゴースト終了時(OnCloseやOnGhostChanging)の契機で「起動回...
ところがゴーストキャッシュを有効にすると……。~
ゴーストを切り替えたりするごとに、起動時のトーク、つまり...
***どうしてこうなった?(AA略) [#kfc4dc99]
ゴーストキャッシュからゴーストが起動される時、「各エント...
そのため、OnBootイベントを受信したときには既に「起動回数...
ところが、OnBootイベントでさらにセーブデータのロードを実...
で、OnBootイベントでの$(inc 起動回数)により、コレが「2,1...
もちろん、この状態でゴーストを終了すればセーブデータには...
*ゴーストキャッシュ対策 [#y4bfb14d]
**セーブデータのロードはスクリプト記述ゾーンで [#g01e0713]
一番簡単な対策はスクリプト記述ゾーンにセーブデータのロー...
ゴーストキャッシュから起動するときにはエントリの内容は前...
これはこんな感じ。
=kis
load sav.txt;
=end
System.Callback.OnGET: $(.entry ev.${System.Request.ID})
ev.OnBoot: $(inc 起動回数;)\1\s[10]\0\s[0]起動回数:$(jo...
ev.OnClose: $(save sav.txt 起動回数)\-
ev.OnGhostChanging: $(save sav.txt 起動回数)\e
**エントリの状態の初期化はOnCacheRestoreにも [#oc0d0a33]
セーブデータが増えるのはこれでいいとして、前の方に出てき...
実は、ゴーストキャッシュからゴーストが起動されるとき、SSP...
こんな感じ。
ほげ: 0
System.Callback.OnGET: $(.entry ev.${System.Request.ID})
System.Callback.OnNOTIFY: $(.entry ev.${System.Request.I...
ev.OnBoot: $(inc ほげ)\1\s[10]\0\s[0]${ほげ}\e
ev.OnClose: \-
ev.OnGhostChanging: \e
ev.OnCacheRestore: $(setstr ほげ 0)
どうせなら処理を共通化。
=kis
function 初期化処理 $(.setstr ほげ 0);
初期化処理;
=end
System.Callback.OnGET, System.Callback.OnNOTIFY: $(get e...
ev.OnBoot: $(inc ほげ)\1\s[10]\0\s[0]${ほげ}\e
ev.OnClose: \-
ev.OnGhostChanging: \e
ev.OnCacheRestore: $(初期化処理)
これでめでたしめでたし……と思いきや。
続きは[[そずべねぐ/セーブとロードのおはなし]]で。
*コメント [#jb6b4e1f]
#comment
終了行:
*華和梨と栞ロードとゴーストキャッシュ [#i1a3a6ac]
アリス「おかしいわ。おかしいわ。何だかとってもおかしいわ...
ボブ「HI! どうしたんだい、海老名グリーンみたいなこと...
アリス「誰が海老名パーキングエリアよ。~
それより、ゴーストを作ってるんだけど、ゴーストを切り替...
いったい、何がおこってるの?」~
ボブ「HAHAHA! そいつはゴーストキャッシュという名...
アリス「どーにかする方法はないわけ?」~
ボブ「HAHAHA! まぁ、落ち着けよアリス。~
この問題を理解するにはゴーストキャッシュの挙動と栞ロー...
*目次 [#v35704f4]
#contents
*栞ロード/アンロードとゴーストキャッシュ [#ycc19f44]
通常、ゴーストが起動/終了するとき、栞ロードと栞アンロード...
ところが、SSPのゴーストキャッシュが有効である場合、ゴース...
これが華和梨的には由々しき問題なのです。
*栞ロード時とゴーストキャッシュからの起動時での挙動の差 [...
栞ロードが発生したとき、華和梨は「エントリの初期化」と「...
ところが、ゴーストキャッシュからの起動ではこれらの処理が...
この挙動の差が問題なのです。~
どういうこと?~
**ちょっとテスト [#r9104b77]
kawarirc.kis に以下のようにだけ書いてゴーストを起動します...
ほげ: 0
System.Callback.OnGET: $(.entry ev.${System.Request.ID})
ev.OnBoot: $(inc ほげ)\1\s[10]\0\s[0]${ほげ}\e
ev.OnClose : \-
ev.OnGhostChanging: \e
まずはゴーストキャッシュを無効にして、このゴーストを起動...
普通にゴーストが起動すれば起動時に「1」と喋ります。起動時...
もちろん、このゴーストを他のゴーストに切り替えて戻したり...
ところがゴーストキャッシュを有効にしてこのゴーストを起動...
最初の起動時こそ「1」と話しますが、他のゴーストに切り替え...
***どうしてこうなった?(AA略) [#adfb1227]
ゴーストキャッシュからゴーストが起動される時、「各エント...
そのため、OnBoot受信の契機で「1」である「ほげ」エントリは...
**倍増するエントリ [#raf0085b]
次はこんな感じで。
System.Callback.OnGET: $(.entry ev.${System.Request.ID})
ev.OnBoot: $(
load sav.txt;
inc 起動回数;
)\1\s[10]\0\s[0]起動回数:$(join 起動回数 ",")\e
ev.OnClose : $(save sav.txt 起動回数)\-
ev.OnGhostChanging: $(save sav.txt 起動回数)\e
まずはゴーストキャッシュを無効にして、このゴーストを起動...
ゴーストが起動すれば起動時に「1」と喋り、起動するごとに「...
ゴースト終了時(OnCloseやOnGhostChanging)の契機で「起動回...
ところがゴーストキャッシュを有効にすると……。~
ゴーストを切り替えたりするごとに、起動時のトーク、つまり...
***どうしてこうなった?(AA略) [#kfc4dc99]
ゴーストキャッシュからゴーストが起動される時、「各エント...
そのため、OnBootイベントを受信したときには既に「起動回数...
ところが、OnBootイベントでさらにセーブデータのロードを実...
で、OnBootイベントでの$(inc 起動回数)により、コレが「2,1...
もちろん、この状態でゴーストを終了すればセーブデータには...
*ゴーストキャッシュ対策 [#y4bfb14d]
**セーブデータのロードはスクリプト記述ゾーンで [#g01e0713]
一番簡単な対策はスクリプト記述ゾーンにセーブデータのロー...
ゴーストキャッシュから起動するときにはエントリの内容は前...
これはこんな感じ。
=kis
load sav.txt;
=end
System.Callback.OnGET: $(.entry ev.${System.Request.ID})
ev.OnBoot: $(inc 起動回数;)\1\s[10]\0\s[0]起動回数:$(jo...
ev.OnClose: $(save sav.txt 起動回数)\-
ev.OnGhostChanging: $(save sav.txt 起動回数)\e
**エントリの状態の初期化はOnCacheRestoreにも [#oc0d0a33]
セーブデータが増えるのはこれでいいとして、前の方に出てき...
実は、ゴーストキャッシュからゴーストが起動されるとき、SSP...
こんな感じ。
ほげ: 0
System.Callback.OnGET: $(.entry ev.${System.Request.ID})
System.Callback.OnNOTIFY: $(.entry ev.${System.Request.I...
ev.OnBoot: $(inc ほげ)\1\s[10]\0\s[0]${ほげ}\e
ev.OnClose: \-
ev.OnGhostChanging: \e
ev.OnCacheRestore: $(setstr ほげ 0)
どうせなら処理を共通化。
=kis
function 初期化処理 $(.setstr ほげ 0);
初期化処理;
=end
System.Callback.OnGET, System.Callback.OnNOTIFY: $(get e...
ev.OnBoot: $(inc ほげ)\1\s[10]\0\s[0]${ほげ}\e
ev.OnClose: \-
ev.OnGhostChanging: \e
ev.OnCacheRestore: $(初期化処理)
これでめでたしめでたし……と思いきや。
続きは[[そずべねぐ/セーブとロードのおはなし]]で。
*コメント [#jb6b4e1f]
#comment
ページ名: