Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.08.2012, 09:25
Аспирант
Отправить личное сообщение для gJam Посмотреть профиль Найти все сообщения от gJam
 
Регистрация: 21.07.2011
Сообщений: 92

Защита значения переменной..
Добрый день!
У меня вопрос, как можно "защитить" значение переменной?
Суть: есть таймер, в который передается значение с помощью php..
Это значение используется в методе таймера..
Но банальный: javascript: param = n; где n-временное значение.
Отбрасывают таймер на необходимое значение..
Как "защитить" эту переменную от такого шага?
(переприсваивание в теле тоже не выход.. так как и те "переприсвоенные" можно поменять..)
OnChange вешать тоже на мой взгляд бессмысленно, ведь переменная таймера всегда меняется..

Последний раз редактировалось gJam, 10.08.2012 в 09:28.
Ответить с цитированием
  #2 (permalink)  
Старый 10.08.2012, 09:39
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

gJam,
код таймера в студию
Ответить с цитированием
  #3 (permalink)  
Старый 10.08.2012, 09:40
Аспирант
Отправить личное сообщение для gJam Посмотреть профиль Найти все сообщения от gJam
 
Регистрация: 21.07.2011
Сообщений: 92

function processTimer(){
           
  if (limit > 0) {
    setTimeout("processTimer()",1000);
    limit--;
  } else {
    timer_hour = '00'
    timer_min = '00'
    timer_sec = '00'
    /*document.testCheck.submit();*/
  }  
  var timer_hour = parseInt(limit/3600);
  var temp_min = limit - timer_hour*3600;
  var timer_min = parseInt(temp_min/60); 
  var timer_sec = temp_min - timer_min*60;
  
  if (timer_hour < 10) timer_hour = '0'+timer_hour;
  if (timer_min < 10) timer_min = '0'+timer_min;
  if (timer_sec < 10) timer_sec = '0'+timer_sec;
  
  // вывод времени
  document.getElementById('hour_timer').innerHTML=timer_hour;
  document.getElementById('minute_timer').innerHTML=timer_min;
  document.getElementById('second_timer').innerHTML=timer_sec;
}

Limit получает значение "снаружи", при генерации страницы..
т.е.
<script type='text/javascript'>Var limit = (предположим) 500;</script>
<script type='text/javascript' src='путь до файла с методом'></script>

Последний раз редактировалось gJam, 10.08.2012 в 09:42.
Ответить с цитированием
  #4 (permalink)  
Старый 10.08.2012, 09:42
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

gJam,
Какую переменную защищаем ?
Ответить с цитированием
  #5 (permalink)  
Старый 10.08.2012, 09:45
Аспирант
Отправить личное сообщение для gJam Посмотреть профиль Найти все сообщения от gJam
 
Регистрация: 21.07.2011
Сообщений: 92

которая является носителем времени, т.e. limit
Ответить с цитированием
  #6 (permalink)  
Старый 10.08.2012, 10:02
Аспирант
Отправить личное сообщение для gJam Посмотреть профиль Найти все сообщения от gJam
 
Регистрация: 21.07.2011
Сообщений: 92

Дзен-трансгуманист,
Но и таймер перестаёт работать..
После функции таймера еще есть:
processTimer;
var saveOnLoad = window.onload;
window.onload = function(){
    saveOnLoad();
    processTimer();
}

Вызов функции и помещение в onload с сохранением предыдущих функций
т.е. похоже ошибка в работе связана с обращение к processTimer

Последний раз редактировалось gJam, 10.08.2012 в 10:08.
Ответить с цитированием
  #7 (permalink)  
Старый 10.08.2012, 10:13
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от gJam
переприсваивание в теле тоже не выход.. так как и те "переприсвоенные" можно поменять.
переприсвоенные будут уже локальными переменными и защищены от случайного изменения на глобальном уровне
Ответить с цитированием
  #8 (permalink)  
Старый 10.08.2012, 10:16
Аспирант
Отправить личное сообщение для gJam Посмотреть профиль Найти все сообщения от gJam
 
Регистрация: 21.07.2011
Сообщений: 92

Сообщение от vadim5june Посмотреть сообщение
переприсвоенные будут уже локальными переменными и защищены от случайного изменения на глобальном уровне
Как сейчас обратиться к функции представленной Дзен-трансгуманистом?
Ответить с цитированием
  #9 (permalink)  
Старый 10.08.2012, 10:28
Аспирант
Отправить личное сообщение для gJam Посмотреть профиль Найти все сообщения от gJam
 
Регистрация: 21.07.2011
Сообщений: 92

Большое спасибо всем участникам обсуждения!
Ответить с цитированием
  #10 (permalink)  
Старый 10.08.2012, 10:32
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

gJam,
<script type="text/javascript">
var limit = 10
var DecrTimer = (function( limit ){
    var Lm2 = limit+1;
    return LIM=function () {
	Lm2--;
         return Lm2;
    }
})(limit)

alert(LIM())
alert(LIM())
alert(LIM())
</script>


Внутри функции processTimer() пользуетесь не limit - а такой конструкцией Tim=LIM()
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
событие при изменении значения переменной Раед Общие вопросы Javascript 13 24.07.2018 18:11
Преобразование значения переменной в строку leny Общие вопросы Javascript 3 01.10.2011 22:34
изменение значения глобальной переменной внутри функции mgmarket Серверные языки и технологии 14 13.09.2011 00:56
Показать картинку в зависимости от значения переменной arahmanov Общие вопросы Javascript 1 29.01.2011 16:07
Изменение и отображение значения переменной по клику Allan Stark Общие вопросы Javascript 1 25.04.2010 15:50