Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.11.2010, 15:54
Новичок на форуме
Отправить личное сообщение для infernaL_wizarD Посмотреть профиль Найти все сообщения от infernaL_wizarD
 
Регистрация: 18.11.2010
Сообщений: 4

Вывод массива в файл и reload отдельной переменной. Как реализовать?
Имеется массив из дат, при совпадении текущей даты с любым элементом массива выводится сообщение. Загвоздка в том, что добавление пользователем элемента в массив бессмысленна, при работе ONLOAD="setTimeout( 'window.location.reload();', 1000 );", т.к. переменные обнуляются, в то же время без обновления страницы не будет выводиться сообщение. Решение сей проблемы вижу в:
1) выводе массива в отдельный динамический файл, данные в который будут попадать при добавлении их пользователем с помощью кнопки и функции addelement(), соответственно эти данные нужно как-то выпихивать для проверки на равенство с текущей датой.
2) в обновлении не всей страницы, а только текущей даты.
Как реализовать первое, либо второе не имею представления. Вся надежда на вас, профи яваскрипта!
<script type="text/javascript">
var array = new Array();
	array[0]= new Date(2010,10,18,01,25);
	array[1]= new Date(2010,10,18,01,26);
	array[2]= new Date(2010,10,18,01,27);
function addelement()
	{
	var y = prompt('Введите год:','2010');
	var m = prompt('Введите месяц:','10');
	var d = prompt('Введите день:','18');
	var h = prompt('Введите час:','00');
	var min = prompt('Введите минуту:','30');
	array.push(new Date(y,m,d,h,min));
	alert(array);
	}
for (var i=0;i<array.length;i++){
	if (array[i]==Date())
		{
		alert('YEAH BABY!!1');
		}
	}
</script>

<body ONLOAD="setTimeout( 'window.location.reload();', 1000 );">
<input type="button" value="Добавить элемент" onclick="addelement()"><br>
Массив:
<script type="text/javascript">
document.write(array.join(", "));
document.write("<br>Текущая дата: "+Date());
</script>
</body>


P.S. В довесок ко всему, меня мучает ещё один небольшой вопрос: как сделать вывод массива в реальном времени, т.е. чтобы он отображал своё содержимое в соответствии со всеми манипуляциями над ним, можно конечно прописать в функцию addelement() строку document.write(array.join(", "));, но это совершенно неприемлемо, т.к. результат должен быть на той же странице, а не в новой.
Буду бесконечно благодарен любым подсказкам и помощи!
Ответить с цитированием
  #2 (permalink)  
Старый 19.11.2010, 08:45
Новичок на форуме
Отправить личное сообщение для infernaL_wizarD Посмотреть профиль Найти все сообщения от infernaL_wizarD
 
Регистрация: 18.11.2010
Сообщений: 4

UPD
Со вторым пунктом и послесловием разобрался, т.е. наша дата обновляется каждую секунду внутри функции, а массив отображается в актуальном виде независимо от манипуляций:
<script type="text/javascript">
var array = new Array();
	array[0]= new Date(2010,10,19,08,32);
	array[1]= new Date(2010,10,19,08,33);
	array[2]= new Date(2010,10,19,08,44);
	
function addelement()
	{
	var y = prompt('Введите год:','2010');
	var m = prompt('Введите месяц:','10');
	var d = prompt('Введите день:','18');
	var h = prompt('Введите час:','00');
	var min = prompt('Введите минуту:','30');
	array.push(new Date(y,m,d,h,min));
	document.getElementById('array').innerHTML = array;
	alert(array);
	}
	
function clockTick()
    {
	var currentTime = new Date();
	setTimeout("clockTick()", 1000);
	document.getElementById('time').innerHTML = currentTime;
	}
	
for (var i=0;i<array.length;i++){
	if (array[i]==currentTime)
		{
		alert('YEAH BABY!!1');
		}
	}
	
</script>

<body onload="clockTick()">
<input type="button" value="Добавить элемент" onclick="addelement()">

<br>Массив:<div id="array">
<script type="text/javascript">
	document.write(array.join(", "));
</script>
</div>
Текущая дата:<div id="time"></div>

</body>

Итого мне всё ещё непонятна реализация первого вопроса:
1) вывод массива в отдельный динамический файл, данные в который будут попадать при добавлении их пользователем с помощью кнопки и функции addelement(), соответственно эти данные нужно как-то выпихивать для проверки на равенство с текущей датой.
а так же возник ещё один вопрос: как впихнуть локальную переменную currentTime из функции clockTick() в цикл
for (var i=0;i<array.length;i++){
	if (array[i]==currentTime)
		{
		alert('YEAH BABY!!1');
		}
	}
Ответить с цитированием
  #3 (permalink)  
Старый 19.11.2010, 15:50
Новичок на форуме
Отправить личное сообщение для infernaL_wizarD Посмотреть профиль Найти все сообщения от infernaL_wizarD
 
Регистрация: 18.11.2010
Сообщений: 4

UPD
Во всём разобрался без сопливых Помощнички итить.

Но вопрос по поводу вывода массива в файл мне крайне интересен, если есть тут мастера яваскрипта, отпишитесь по этому поводу, буду крайне признателен!
Ответить с цитированием
  #4 (permalink)  
Старый 19.11.2010, 18:32
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от infernaL_wizarD
Но вопрос по поводу вывода массива в файл мне крайне интересен
Нативных методов для решения подобных задач в JavaScript пока нет.
Ответить с цитированием
  #5 (permalink)  
Старый 19.11.2010, 19:37
Новичок на форуме
Отправить личное сообщение для infernaL_wizarD Посмотреть профиль Найти все сообщения от infernaL_wizarD
 
Регистрация: 18.11.2010
Сообщений: 4

Сообщение от monolithed Посмотреть сообщение
Нативных методов для решения подобных задач в JavaScript пока нет.
Жаль, спасибо за отклик.
Любопытство удовлетворено)
Ответить с цитированием
  #6 (permalink)  
Старый 19.11.2010, 19:48
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от monolithed
Нативных методов для решения подобных задач в JavaScript пока нет.
Что значит пока? И не будет.
Ответить с цитированием
  #7 (permalink)  
Старый 19.11.2010, 19:55
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Kolyaj
Что значит пока? И не будет.
Ну кто же знает, что как будет развиваться язык в будущем
Ответить с цитированием
  #8 (permalink)  
Старый 19.11.2010, 21:35
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Язык здесь не причём. Развиваются среды выполнения в первую очередь. Браузер, например. А браузер не позволит писать в файлы, это не секьюрно.
Ответить с цитированием
  #9 (permalink)  
Старый 19.11.2010, 22:14
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Kolyaj
это не секьюрно.
Бесспорно. Однако IE так не считали когда включали эту возможность в ActiveXObject))
Ответить с цитированием
  #10 (permalink)  
Старый 20.11.2010, 03:48
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от monolithed
Бесспорно. Однако IE так не считали когда включали эту возможность в ActiveXObject))
деградация, как способ эволюции?)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в ajax запросе передать файл методом POST mcpro jQuery 1 16.12.2009 11:41
Как реализовать? Fliand Элементы интерфейса 4 22.08.2009 19:47
Можно ли как для произвольного массива создавать вызовы функций , имеющих на входе kefi Общие вопросы Javascript 3 17.04.2009 16:53
Переменная от переменной или как к имени переменной конкатенировать значение другой Aderba jQuery 5 12.11.2008 15:25
Как получить файл с сервера AJlekceu AJAX и COMET 1 02.11.2008 13:41