異なるブラウザでのキャッシュの実現

3090 ワード

ブラウザのキャッシュデータの方式はクッキーに加えて、他の方法もあり得るが、各ブラウザのサポート方法は違っていて、例えば、ieはlocastorgeをサポートしないで、一つのutilを書いてブラウザのキャッシュの違いをブロックしています.
    /**
     *         ,          
     * @enum {number}
     *

     *[saveType = 1]   localStorage        
     *[saveType = 0]   userdata        ie    
     *
*/
var saveType=2,uniqueinnstance,object,_OTos=Object.prototype.toString、_oAray=「[object Aray]」oObject=「[object Object]」
/**
*ieにデータを する
*@param args{object}

     * {
     *     file : '', IE6                              ,          
     *     key : '',     
     *     content : object            number object array string
     * }
     *
*/
function_saveIEData(args){
var content=args.com nt、key=args.key、vtype;
vtype=_OTos.apply;
if(vtype==_oAray𞓜vtype==_oObject){
content=JSON.encode;
)
object.set Attribute(key,content);
object.save(args.file);
)
function_loadIEData(args){
/**
* しデータの
*{string𞓜oject𞓜ary}
*/
var type=args.type、file=args.file、content;
object.load(file)
content=object.get Attribute(args.key);
if(type==array type==object)
content=JSON.decode;
)
return content;
)
function_deleteIEData(args){
var file=args.file;
object.load(file)
object.expires=new Date(315532799000).toUT CString()
object.save;
)
/**
* しデータをlocastorgeで する
*/
function_saveCommon Data(args){
var content=args.com nt、k=args.key、vtype;
vtype=_OTos.apply;
if(vtype==_oObject𞓜vtype==_oAray){
content=JSON.encode;
)
local Strage[k]=content;
)
function_deleteCommon Data(args){
local Strage.removeItem(args.key);
)
function_loadCommon Data(args){
var type=args.type、key=args.key、avalues=local Strage.getItem;
if(type==array type==object)
avalues=JSON.decode;
)
return avalues;
)
/**
*リアルなlocastorgeの
* にlocastorgeを うと した は、ブラウザのバージョンによって します.
*ブラウザがオブジェクトをサポートしていない は、nullオブジェクトを します.
*/
function constructor(){
if(typeof local Strage!=「undefined」){
saveType=1;
)
else if(typeof MT.DOC.documentElement.style.behavior!=undefined){
saveType=0
if(typeof Object=「undefined」){
object=MT.DOC.documentElement;
object.style.behavior="url('( デfault userdata')";
)
)
else{
return null
)
this.co nstructor=Local Strage;
this.saveData=function{args}
this.saveData=saveType?_saveCommon Data:_saveIEData;
this.saveData(args);

this.loadData=function{args}
this.loadData=saveType?_loadCommondata:_loadIEData;
return this.loadData(args);
)
this.deleteData=function{args}
this.deleteData=saveType?_deleteCommon Data:_deleteIEData;
this.deleteData(args);
)
)
var Local Strage={
/*
*@memberrof Local Strage
* の
*/
get Instance:function(){
if(!uniqueinnstance){
uniqueinnstance=new constructor()
)
return uniqueinnstance;
)
)