2009/09/03 17:12

Web

    

FLASHでもJavascriptでも、クッキーのパス設定は必須です

ということです。

当初、FLASHクッキーを使って制作していたんですが、クライアントの要望もあり、ブラウザを閉じたらクッキーを削除したいと言い出したので、結局皆様お馴染みのExternalInterfaceを使用してJavascriptのクッキーを使用することにしました。

Javascriptのクッキーはブラウザが管理するクッキーなので、ブラウザを閉じると同時にクッキーも削除をするように命令することが出来ます。
以前にも書きましたが、その点FLASHクッキーはFlash Playerのクッキーなのでブラウザと同期するようなことは出来ないと…

ところで、FLASHクッキーことSharedObjectはgetLoacal()の引数としてパスを指定することによって、パスの分類をしますが、Javascriptのクッキーのパス指定は、直接パスと指定した内容を埋め込むことによって指定されます。
具体的には、Javascriptはクッキーにアクセスした瞬間にドメインで分類され(ここまではFLASHクッキーと一緒)、書き込む内容に
“path=○○;”
こんな具合に書き込むことによって、パスを指定出来ます。

従って、直下の複数のディレクトリからアクセスするような場合はルートに置いてしまうのが簡単なので、
“path=/;”
とすると、同じドメインなら全てアクセス可能になるわけです。

なので中身を入れると、
“適当なkeyネーム=value; path=/”
こんな感じで一つの文としてクッキーに書き込む必要性があります。他にもexpiresで日付を入れたりと…面倒なので省略

逆にクッキーにアクセスする際には、まずドメインの場所を探し、そこのクッキーを根こそぎ取って、さらにパスで同じドメインのパスを持っているクッキーを分類して取得するわけです(ブラウザが勝手にやりますよw)。

そういうことなので、何となくパスという点ではSharedObjectの方がイメージしやすいですよね。
最初に引数として渡してやるわけなので、面倒と言えば面倒ですが、きちんと明示しているという意味で言えば理解しやすいと思います。

TrackBack :

Comments






使用可能タグ: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>