LSO/Flash Cookie

4920 단어 cookie
Sharedobject 클래스에서 만든 로컬 공유 객체(LSO: local shared object)는 브라우저 쿠키와 유사하기 때문에 Flash 쿠키라고도 합니다.유사성은 단지 작용상 유사할 뿐, 모두 데이터를 클라이언트에 저장하여 읽기와 쓰기를 할 수 있도록 하는 데 쓰인다.
다른 점은 더 많은 것 같다.
  • 브라우저 쿠키는 만료 시간이 있고 Flash 쿠키는 기본적으로 만료되지 않습니다. 간접적으로 expires
  • 를 실현할 수 있지만
  • 브라우저 쿠키 파일 크기는 4k를 초과할 수 없고 같은 필드에 최대 20개의 쿠키만 저장할 수 있으며 Flash 쿠키의 기본 크기는 100k이다. 부족하면 사용자에게 더 많은 공간을 요청하여 Flash 쿠키를 저장할 수 있다
  • 브라우저 쿠키가 저장한 데이터는 모두 문자열로 저장되며, Flash 쿠키는 AS에서 볼 수 있는 대상과sharedObject 대상 자체의 모든 데이터 형식을 저장할 수 있음
  • 브라우저 쿠키는 브라우저 간에 읽기와 쓰기를 할 수 없지만 Flash 쿠키는 브라우저 간에 사용할 수 있으며 모든 브라우저가 액세스하는 Flash 쿠키는 동일할 수 있습니다.sol 파일
  • 브라우저 쿠키는 처음에 서버 사이드 프로그래밍을 위해 설계되었고 HTTP 프로토콜의 확장으로 웹 브라우저와 서버 사이를 자동으로 전달할 수 있으며 Flash 쿠키는 기본적으로 브라우저와 서버 사이를 전달하지 않는다
  • 브라우저 쿠키 기본 필드는 쿠키 페이지를 만드는 필드이고, Flash 쿠키 기본 필드는 Flash 쿠키를 만드는 swf 파일을 만드는 필드이며, 현재 페이지가 있는 필드가 아니다
  • 정적 getLocal () 방법은 LSO가 읽기 위한 메커니즘을 만들고 여는 것입니다.getLocal () 방법은shareObject 실례를 되돌려줍니다. new 연산자를 대체하여 새로운 LSO 실례를 실례화합니다.getLocal () 방법을 호출할 때 최소한 LSO의 이름인 매개 변수를 입력해야 합니다.두 번째 파라미터는 LSO에 저장 경로를 지정하여 다른 swf가 이 LSO 데이터를 공유할 수 있도록 하는 것이다. 기본 저장 경로는 LSO를 만드는 swf 파일이 있는 유일한 영역, 경로와 파일 이름으로 구성된다.세 번째 파라미터는 이 공유 대상에 대한 접근이 HTTPS 연결을 통해 전달되는 swf 파일에만 한정되는지 확인하는 데 사용됩니다. 기본적으로false입니다.예: var user: SharedObject = SharedObject.getLocal(‘user’,'/’);
    LSO는 특수한 내장 속성 데이터를 통해 다음과 같은 모든 데이터를 저장합니다.data.name = ‘xxxx’;
    Flash Player를 제거할 때 SharedObject 인스턴스가 스팸으로 취급될 때 SharedObject를 호출합니다.clear () 방법에서는 LSO 데이터가 자동으로 로컬 디스크에 저장됩니다.그러나 이런 방법들은 신뢰할 만한 것이 아니라 추천하는 방법은Shared Object를 사용하는 것이다.flush () 방법으로 LSO 데이터를 저장합니다.flush () 방법에는 데이터를 쓸 때 사용할 최소 디스크 공간을 지정하는 선택할 수 있는 파라미터가 있습니다. 기본값은 0입니다. 필요한 최소 공간만 사용합니다.
    flush() 메서드를 호출하여 다음 세 가지 결과를 반환합니다.
  • Error 사용자가 이 영역의 LSO 데이터 저장을 거부하거나 Flash Player가 어떤 이유로 데이터를 저장하지 못하면 Error
  • 를 던집니다.
  • SharedObjectFlushStatus.FLUSHED 데이터가 성공적으로 저장되었습니다
  • .
  • SharedObjectFlushStatus.PENDING은 LSO 데이터를 저장할 충분한 디스크 공간을 할당하지 않았습니다.
  • LSO 데이터의 읽기는 쓰기와 같이 간단합니다. 공유 대상의 데이터 속성 내의 대응하는 속성을 읽기만 하면 됩니다. 예를 들어 var name:String =user.data.name;
    LSO 객체의 데이터를 삭제하려면 delete 연산자를 사용해야 합니다. 예를 들어 delete user.data.name;전체 LSO 대상을 삭제하려면clear () 방법을 호출하면 됩니다:user.clear();
    다음 코드는 세 가지 함수인 setCookie, getCookie, delCookie를 정의하여 LSO 데이터를 생성/수정, 검색, 삭제합니다.
    //LSO/FlashCookie [email protected] import flash.events.NetStatusEvent; function setCookie(lsoname:String,cname:String,cvalue:*,path:String=null):Boolean{ 	var lso:SharedObject = (path!=null&&path.length) ? SharedObject.getLocal(lsoname,path) : SharedObject.getLocal(lsoname); 	lso.data[cname] = cvalue; 	try{ 		var flushResult:String = lso.flush(); 		if(flushResult == SharedObjectFlushStatus.FLUSHED) return true;//       		else if(flushResult == SharedObjectFlushStatus.PENDING) lso.addEventListener(NetStatusEvent.NET_STATUS,onStatus);//      	}catch(e:Error){ 		Security.showSettings(SecurityPanel.LOCAL_STORAGE);//        ,  Player “settings”    	} 	function onStatus(evt:NetStatusEvent):Boolean{ 		lso.removeEventListener(NetStatusEvent.NET_STATUS,onStatus); 		if(evt.info.code == 'SharedObject.Flush.Success') return setCookie(lsoname,cname,cvalue);//              		return false; 	} 	return false; } function getCookie(lsoname:String,cname:String,path:String=null):*{ 	var lso:SharedObject = (path!=null&&path.length) ? SharedObject.getLocal(lsoname,path) : SharedObject.getLocal(lsoname); 	return lso.data[cname]; } function delCookie(lsoname:String,cname:String=null,path:String=null):Boolean{ 	var lso:SharedObject = (path!=null&&path.length) ? SharedObject.getLocal(lsoname,path) : SharedObject.getLocal(lsoname); 	if(lso){ 		if(cname && cname != null){ 			delete lso.data[cname]; 			lso.flush(); 		}else lso.clear(); 		return true; 	} 	return false; }

    물론 자바스크립트를 사용하여 일정한 봉인을 하고 크로스 브라우저 조작을 편리하게 할 수 있다. (플래시 불러오기 완료addCallback 등록 함수에 대해 오랫동안 고민을 했지만 만족스러운 방법을 찾지 못했다. 지금 이 방법은 사용할 것이다): demo
    ———————————————
    update 2011/7/27
    위에서 언급한 간접적으로expires를 실현하다
    글을 오랫동안 썼지만 잊어버렸습니다. 쿠키를 쓸 때마다expires를 데이터 필드로 저장할 수 있을 것 같습니다. 즉user입니다.data.expires = ****, 쿠키를 읽을 때마다 이 expires를 읽어서 현재 시간과 비교하면 됩니다.

    좋은 웹페이지 즐겨찾기