スタックの公開(オプション編:Storage)
Mac!ntosh上のファイルはデフォルトでSessionStorageに保存されますが、保存先を変更することができます。
他の保存先はmemoryとLocalStorageです。SessionStorageとLocalStorageはHTML5で規格化されたWebStorageですが、memoryは無理やりJavaScriptの変数上に格納します。ちなみにSessionStorageとLocalStorageはSafariがプライベートブラウズモードの時、I/Oに失敗するため、Mac!ntoshが起動しません。memoryはそれを回避するために作ったモードです。
ただし、LocalStorageモードは、ご自身で使う分には良いですが、他者に公開することは推奨しません。また、LocalStorageに不正なデータが混入した場合、Finber上にファイル表示されなくなる可能性がありますので環境設定で開発メニューを表示させておいて、いざという時にLocalStorageの操作ができるようにしておくことをお勧めします。
それぞれの挙動と特徴
memory
- 画面右上のディスクの名前が「memoryStorage」となる。最大サイズは不明。
- reloadするとreload前のファイルは全て消える。
- アップルメニューから起動するアプリ数が少ない。ControlPanelなどは継続的なstorageとreloadを前提としているため。
SessionStorage
- 画面右上のディスクの名前が「SessionStorage」となる。最大サイズはブラウザに依存する。
- SafariではプライベートブラウズモードではMac!ntoshが起動しない。
- セッションが続いている間はStorage上のファイルが保持される。reloadしてもファイルがきえない。
LocalStorage
- 画面右上のディスクの名前が「LocalStorage」となる。最大サイズは5M。
- SafariではプライベートブラウズモードではMac!ntoshが起動しない。
- 永続的にStorage上のファイルが保存される。とされるのですがSafariでキャッシュクリアしたら消えました(泣)。
- 「Quit HyperCard」時の自動保存がされません。必要であればアップルメニューから「Save Stack」をしてください。
- いくつかの隠し機能が表示される。
スタックの公開(基本編:ファイルの公開)で説明したとおりhtmlファイルの後ろに
Finber上でのファイル名=サーバ上のファイル名
と記載するとサーバ上のファイルをダウンロードしてFinber上に保存すると説明しました。
この書式は「webサーバ上のファイルをMac!ntosh上にロードする際の書式と言って良いです」と書いたとおりですが、例外が一つだけあって、Storage指定の書式がそれです。
Storage指定の書式
htmlファイルの直後に
?storage=(ストレージ名)
と書くとストレージを指定できます。
ストレージ名は「momory」「session」「local」の3つが指定できます。
以下のように指定します。
http://www.eonet.ne.jp/~gregor/hyqercard/index.html?storage=memory&HyqerCard=HyqerCard&Home=MyHome
※htmlファイルの直後以外だとwebサーバ上の(ストレージ名)というファイルをMac!ntosh上にstorageという名前で保存をすると解釈します。