ホームページ >ウェブフロントエンド >jsチュートリアル >javascript globalStorage クラス code_javascript スキル

javascript globalStorage クラス code_javascript スキル

WBOY
WBOYオリジナル
2016-05-16 18:51:461241ブラウズ
globalStorage
これも HTML5 で提案されており、ブラウザを閉じた後も globalStorage を使用して保存された情報が保持され、ストレージ容量は IE のユーザーデータよりもはるかに大きくなります。 sessionStorage と同様、ドメイン内の任意のページに保存されている情報は、すべてのページで共有できます。
スコープ
globalStorage['z.baidu.com'] z.baidu.com のすべてのページがこのスペースを使用できます
globalStorage['baidu.com'] baidu.com のすべてのページ すべてのページが使用できますこのスペース
globalStorage['com']: すべての com ドメイン名がこのスペースを共有できます
globalStorage['']: すべてのページがこのスペースを使用できます
現在、Firefox のみが現在のドメインで globalStorage ストレージをサポートしています。パブリック ドメインが使用されている場合、「セキュリティ エラー」コード「1000」のようなエラーが発生します。
有効期限
HTML5 の説明によると、globalStorage はセキュリティ上の問題がある場合、またはユーザーが削除を要求した場合にのみ有効期限が切れます。ブラウザはスクリプトによってアクセスされているデータの削除を回避する必要があり、ユーザーデータはユーザーデータである必要があります。書き込み可能。
したがって、スクリプトは有効期限を制御できる必要があり、globalStorage の特定の領域に有効期限を保存し、ロード時に有効期限が切れているかどうかを判断できるようにする必要があります。範囲。
保存時に有効期限も保存されます
上記はネットで見つけた情報であり、IE 以外のブラウザの「userdata」と互換性を持たせるために、自分で作成した
「userdata」を改良しました。 (UserData の使用法の概要を参照)、IE および globalStorage をサポートするブラウザーと互換性があるようになりました。
コードをコピー コードは次のとおりです:

function behaviourUserdata(udObj)
{
var me = this;
if(CMInfo.Bs_Name=='IE') //ユーザーデータを使用して IE でクライアント ストレージを実装します
{
varloaded = ''; //現在ロードされているファイル名

this.udObj = getObject(udObj);
this.udObj.style.behavior = 'url(#default #userdata) )';
this.value = this.udObj.value;
this.inhtml = this.udObj.innerHTML;

// ファイルが存在するかどうかを確認し、est=unknown が存在する場合は true を返します。それ以外の場合は false を返します
this.exist = function(filename){
try{
me.udObj.load(filename);// ファイル名 filename を持つ XML を
me.load にロードしますed = ファイル名; > if( me.loaded=='' || me.loaded!=filename){me.exist(filename);}
return me.getAtrib = function(filename,atrib) {
return val==null?"":val
}return ""; me.udObj.removeAttribute(atrib);
me.udObj.save(filename); // オブジェクトを保存しますfilename
という名前の XML ファイルにデータを書き込みます。 true を返します。 指定された属性値を設定します。
this.setAtrib = function(filename,atrib,val,expire){
var etime = typeof(expire)=="unknown "?24*60*60:expire;
me.udobj.expires = me.Setexpire (etime);
me.udobj.setattribute (属性, 値;
me.udobj.save (ファイル名) ; シリーズのオブジェクト データ (XML ファイル全体) の有効期限が切れます。
this.remPartion = function(filename){
if(me.exist(filename))
{
me.udObj.期限切れ = me.setExpire(-1);
me.udObj.save(ファイル名);
//有効期間を設定します
this.setExpire = function(sec){
var oTimeNow = new Date();
oTimeNow.setSeconds(oTimeNow.getSeconds() parseInt(sec));
return oTimeNow.toUTCString();
}
}else // globalStorage を使用して非 IE でクライアント ストレージを実装します
{
var domain = document.domain; > // 指定された属性値を取得します
this.getAtrib = function(filename,atrib){
var oTimeNow = new Date();
var etime = parseInt(window.globalStorage[domain][filename " __expire "]]); '';
>window.globalStorage [domain] [filename" __ "aTrib];> try {window.globalStorage.RemoveItem(filename" __ "aTrib);} catch(e){} //削除
🎜> this.setAtrib = function(filename,atrib,val,expire){
var etime = typeof(expire)=="未定義"?24*60*60 :期限切れ
window.globalStorage[domain] [filename "__expire"] = me.setExpire(etime);
window.globalStorage[domain][filename "__" atrib] = val; データの無効化
this.remPartion; filename){
me.remAtrib(filename,"expire");
return true;
}

/ / 有効期間を設定します
this.setExpire = function(sec){
var oTimeNow = new Date();
oTimeNow.setSeconds(oTimeNow.getSeconds() parseInt(sec));
return
実際のプロジェクトでは使用されていませんので、互換性と安定性はわかりません。ネチズンがバグを見つけたら、指摘してください。ありがとう
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。