Вывод массива в файл и 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(", "));, но это совершенно неприемлемо, т.к. результат должен быть на той же странице, а не в новой. Буду бесконечно благодарен любым подсказкам и помощи! |
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'); } } |
UPD
Во всём разобрался без сопливых :victory: Помощнички итить. Но вопрос по поводу вывода массива в файл мне крайне интересен, если есть тут мастера яваскрипта, отпишитесь по этому поводу, буду крайне признателен! |
Цитата:
|
Цитата:
Любопытство удовлетворено) |
Цитата:
|
Цитата:
|
Язык здесь не причём. Развиваются среды выполнения в первую очередь. Браузер, например. А браузер не позволит писать в файлы, это не секьюрно.
|
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 08:24. |