Показать сообщение отдельно
  #1 (permalink)  
Старый 07.01.2015, 01:30
Аспирант
Отправить личное сообщение для makar3000 Посмотреть профиль Найти все сообщения от makar3000
 
Регистрация: 04.05.2011
Сообщений: 49

Сделать историю?
Доброй ночи! Мои мозги закипают уже

Имеется набор функций моего редактора, перед выполнением каждой фукции я сохраняю прошлый результат всего редактора в массив. Есть кнопка "Вернуть" при нажатии возвращается преведущий результат...

Дело в том что такой способ полностью работает, но так как я в массив заношу каждый раз огромный код сжатый код, хотелось бы ограничить "Возвращение" до 10 этапов

Как реализовано у меня:

Заход1:
Меняем данные в редакторе и пытаемся вернутся back(); => удивительно но работает сколько бы раз не возвращались (до 10)
Заход2:
Пытаемся после возвращений что-то изменить данные редактора и пытаемся вернутся back(); => не хочет возвращаться вообще

h_i = 1; // указал единицу так как в массиве первый ключ 1
history = [];

addhistory(); // Запускаю первый раз что бы добавить данные "как есть"

function addhistory() {
   content = '';//тут я загоняю сгенерированный код редактором в JSON
  
   if( history.length > 11 ) { // на 10 раз
     h_i = 1;
     history = [];
   }


   history.unshift(content);


}

function back() {
  if( history.length > h_i ) { //смотрим что-бы хватало истории 
     readcontent( history[ h_i ] ); // возвращаем предыдущие данные
     h_i++;
  }
}

Последний раз редактировалось makar3000, 07.01.2015 в 01:46.
Ответить с цитированием