Создаём локальную переменную, в которую сохраняем данные в success запроса. Если переменная не пуста, вызываем callback без запроса к серверу, иначе запрашиваем данные.
(function () {
var cache
, callback = function (data) {
//тут обрабатываю пришедшие данные
};
$('.knopka').click(
function () {
if (cache) { //data are already cached -
callback(cache); //process them
} else { //no data -
$.ajax({ //request it,
//...
, success: function(data) {
cache = data; //then save
callback(cache); //and process
}
});
}
}
);
}());