ブラウザキャッシュデータ処理について


今日は改めてブラウザキャッシュデータについて振り返ってみましたが、アイテムがあるので、クッキーボスでは許可されていないので、UserData/globalStorage/sessionStorageの方を見るしかありません.
1.IE 6以上(含む)カーネルのブラウザでは、UserData動作(userData Behavior)を使用できます.
説明:
userData動作は、データをUserDataストレージに書き込むことでデータを保存します.userDataは、Windows 2000またはWindows XPを使用している場合、XML形式でクライアントコンピュータにデータを保存できます.C:Documents and SettingsLimingUserDataフォルダに保存されます(オペレーティングシステムがCディスクにインストールされていない場合は、Cはオペレーティングシステムが存在するパーティションである必要があります).このデータは、人為的に削除したり、スクリプトで失効期間を設定したりしない限り、常に存在します.userData挙動はCookieよりもダイナミックで大容量なデータ構造を提供する.各ページのUserDataストレージ領域のデータサイズは64 Kbに達することができ、各ドメイン名は640 Kbに達することができる.userData動作はセッションを介して各オブジェクトにUserDataストレージ領域を割り当てます.UserDataストレージ領域データはsaveメソッドとloadメソッドを使用してキャッシュに保存されます.いったんUserDataストレージ領域が保存されると、IEブラウザが閉じたりリフレッシュされたりしても、次回このページにアクセスすると、データは失われずに再ロードされます.セキュリティ上の理由から、同じプロトコルで同じフォルダを使用してUserDataストレージ領域のデータを保存します.
次の操作を行います.
(1)まず、行内またはドキュメントのhead部分に次のスタイルを宣言する必要があります.
.userData {behavior:url(#default#userdata);}

または、次のjsコードを使用して宣言します.
document.documentElement.addBehavior(”#default#userdata”);

(2)メンバー:
expiresはuserData動作を使用してデータを保存する失効日を設定または取得します.使用方法:オブジェクトID.expires=UTC形式の時間文字列;
getAttribute()指定した属性値を取得します.
load(ストレージ名)userDataストレージから格納されたオブジェクトデータをロードする.
removeAttribute()指定した属性値を削除します.
save(ストレージ名)オブジェクトをuserDataストレージに格納します.
setAttribute()指定した属性値を設定します.
XMLDocumentは、そのオブジェクトデータを格納するXML DOMリファレンスを取得する
(3)例:
document.documentElement.addBehavior("#default#userdata");

document.documentElement.load("t");

document.documentElement.setAttribute("value", "test");

document.documentElement.save("t");

2.Firefox 2(含む)以上のカーネルのブラウザではglobalStorageを使用できます.
説明:
This is a global object (globalStorage) that maintains multiple private storage areas that can be used to hold data over a long period of time (e.g. over multiple pages and browser sessions).
Specifically, the globalStorage object provides access to a number of different storage objects into which data can be stored. For example, if we were to build a web page that used globalStorage on this domain (developer.mozilla.org) we’d have the following storage object available to us:
globalStorage[’developer.mozilla.org’] - All web pages within the developer.mozilla.org sub-domain can both read and write data to this storage object.
次の操作を行います.
globalStorage[location.hostname]["t"] = “test”;//に値を付ける
var ret = globalStorage[location.hostname]["t"];//値をとる
globalStorage.removeItem("t");//削除
コメント:
firefox 2では、tc-eb-test 00.tc.baidu.com上のページでglobalStorage["baidu.com""t"="test"を使用して値を割り当てますが、firefox 3になるとエラーメッセージが表示されます.firefox 3のセキュリティポリシーではglobalStorageを使用する場合、指定したドメイン名と実際のドメイン名が厳密に一致する必要があります.
3.Database Storage、HTML 5の内容は、現在Safariのみサポートされています
説明:
This section is non-normative.
4.一般的なOperaのような他のブラウザではCookieを使用できます.
説明:
A cookie is a small piece of information stored by the browser. Each cookie is stored in a name=value; pair called a crumb—that is, if the cookie name is “id” and you want to save the id’s value as “this”, the cookie would be saved as id=this. You can store up to 20 name=value pairs in a cookie, and the cookie is always returned as a string of all the cookies that apply to the page. This means that you must parse the string returned to find the values of individual cookies.
Cookies accumulate each time the property is set. If you try to set more than one cookie with a single call to the property, only the first cookie in the list will be retained.
You can use the Microsoft® JScript® split method to extract a value stored in a cookie.
コメント:
現代のブラウザでは一般的にデフォルトでクッキーがサポートされていますが、クッキーを使用するにはいくつかの致命的な弱点があります.記憶されている情報量が少なすぎて、ページがサーバに要求を送信すると同時にクッキーも送信され、ユーザーの帯域幅を無形に浪費します.
5.その他のソリューション
Google Gear:Googleが開発したローカルストレージ技術.
Flash:Flashでローカルストレージを実現
この2つの方法の利点は、すべてのOSとブラウザをサポートできることです(Google Gearは現在、IE 5+とFirefox 1.5+しかサポートしていません).欠点は、ユーザーが追加のプラグインをインストールする必要があることであり、前の3つの方法ほど簡単ではありません.