filter=function(type){
	this.init(type);
}
$.extend(filter.prototype,{
	cache:{},
	type:'',
	init : function ( type ) {
		this.type = type;
		cache = this.cache;
		if ( typeof this.cache[this.type] == 'undefined' ) {
			$.getJSON(
				'page.php',
				function(resp){
					cache[type]=resp;
				}
			)
		}
	},
})
window.onLoad=function() { new filter('one'); }
Возможны ошибки. Писал с головы. Работоспособность не проверял. Но как идея думаю сгодиться.
Функция getJSON возвращает JSON уже в "нужном виде". Т.е. не нужно прогонять через eval()/