Вывод текста по времени
Есть массив, содержащий строковые данные.
Как сделать так, чтоб в определенное время начался вывод этого массива, с определенным промежутком между выводом отдельных его элементов? |
Здравствуйте!
Судя по вашему сообщению, вы ну совсем не знаете javascript. Освойте основы языка и вопрос отпадет сам, полностью или частично. А с чем не справитесь - поможем. На сайте javascript можно начать изучать с учебника, раздел Основы javascript. Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/ Задавайте конкретные вопросы по ходу дела. |
Ну я просто больше с PHP знаком. А это понадобилась вот такая штука на стороне клиента. Я начинал читать несколько учебников по javascript, но он до меня что-то не доходит. Вот я и подумал что может кто-то поможет готовым скриптиком.
|
Вы просите готовый скрипт с нуля.
Это работа, и за нее обычно платят деньги. Для таких сообщений предназначен раздел форума "Работа". Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела. |
B~Vladi,
Вы что-то уж слишком жестоки. Madjahet, Вам пригодятся эти маны: Array, setTimeout, setInterval. И помните, что такой вещи, как sleep() в javascript нет. |
Моих знаний хватило на это:
<script type="text/javascript">
var znach = new Array(5);
znach[0] = "Значение1";
znach[1] = "Значение2";
znach[2] = "Значение3";
znach[3] = "Значение4";
znach[4] = "Значение5";
//Промежуток, через который должны выводиться сообщения
//В данном случае 20 секунд
var pr = 20000;
//Создаем дату, когда должно начаться показ массивов
var start = new Date("04/11/2010 23:10");
//Если наступит дата старта
//то должно вывестись
//сообщение из масива
function pokaz (dataStarta, soobschenie){
//Узнаем текущую дату
var sejchas = new Date();
//сравниваем ее с датой старта
//если дата старта больше - выводим сообщение
if (sejchas < dataStarta){
document.write(soobschenie);
}
}
//Выводим сообщения в цикле
for (var i = 0; i<5; i++){
start = start + pr * i;
pokaz (start, znach[i]);
}
</script>
Не работает. Что там не так? |
document.write можно использовать только до загрузки страницы
после этого события надо использовать нижеприведенные инструменты http://javascript.ru/tutorial/dom http://innerhtml.ru/ |
Скрипт выполняется единожды. Чтобы сделать «отсроченное» выполнение, нужно использовать setInterval и setTimeout.
document.write() пишет даные в «поток» документа. При этом этот самый «поток» задерживается до окончания выполнения скрипта, но не функций, вызванных по событию или таймеру — тогда просто непонятно, в какой именно место следует «write», и это грозит открытием нового документа. Но, в целом, Вы на верном пути. |
Madjahet,
Да, и добавлю. Постарайтесь сначала сделать часы на яваскрипте, самые простецкие. Потом сделайте так, чтобы секунды на этих часах сменялись одновременно с системным временем. Потом сделайте так, чтобы все это ело процессора как можно меньше. И после этого Ваша задача покажется Вам не такой уж и сложной. :) |
Цитата:
разве что сделать цикл, а внутри него по сравнению времени выполнять функцию?О_о |
| Часовой пояс GMT +3, время: 04:50. |