javascript의 로컬 스토리지 역활을 하는 클래스 입니다.
Prototype.js 에서는 Hash를 지원(?) JSON 포맷 자체가 key와 value로 이루어진 경량 데이터 포맷인데요..
이와 동일하게 Javascript에서 { key : value }가 지원을 합니다.

이를 이용해 서버와의 통신에서 얻어진 JSON 데이터를 페이지가 리프래쉬 전까지
임의의 변수에 key를 두어 저장해놓고 사용자의 동일한 액션이 일어 났을때
이미 저장되어진 데이터가 있을 경우 그 데이터를 그대로 보여주고 없는 경우에는 다시 서버에
데이터를 요청할 수 있도록 데이터 저장소 역활을 할 수 있습니다.

또한 String Buffer을 이용해서 자주쓰는 혹은 템플릿 형식의 Design 소스를
배열에 담아 놓고 계속해서 꺼내 쓸 수 있는 스트링 버퍼의 기능까지 포함해 놓았습니다.

당연 protoype.js 를 기반으로 작성되어서 prototype.js 가 필요합니다..

주석은 따로 시간이 되는데로;;;

var THash = Class.create();
	THash.prototype = {

	_localDataSet : new Hash(),
	_temp : [],

	initialize: function() {},

	add : function(h) {
		if(h == undefined) return false;
		typeof h == 'string' ? this._temp.push(h) : this._localDataSet.merge(h);
	},

	text : function() {
		var t = this._temp; this._temp = [];
		return t != [] ? t.join('') : this._localDataSet.values();
	},

	hash : function(key, value) {
		if(typeof key != 'string') return false;

		this._localDataSet.merge({ key : null});
		this._localDataSet[key] = value;
		this._temp = [];

		return this._localDataSet[key];
	},  

	child : function(key) {
		return this._localDataSet[key];
	},     

	free : function() {
		this._temp = [];
	},  

	iskey : function(key) {
		return (this._localDataSet[key] == undefined) ? false : true ;
	}
}

THash.__instance__ = null; // static property
THash.getInstance = function () {
	if (this.__instance__ == null) this.__instance__ = new THash(); 
	return this.__instance__;
}
신고
Posted by Rhio.kim