11.04.2010, 22:50
|
Новичок на форуме
|
|
Регистрация: 11.04.2010
Сообщений: 5
|
|
Вывод текста по времени
Есть массив, содержащий строковые данные.
Как сделать так, чтоб в определенное время начался вывод этого массива, с определенным промежутком между выводом отдельных его элементов?
|
|
11.04.2010, 22:55
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Здравствуйте!
Судя по вашему сообщению, вы ну совсем не знаете javascript.
Освойте основы языка и вопрос отпадет сам, полностью или частично.
А с чем не справитесь - поможем.
На сайте javascript можно начать изучать с учебника, раздел Основы javascript.
Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/
Задавайте конкретные вопросы по ходу дела.
|
|
11.04.2010, 23:01
|
Новичок на форуме
|
|
Регистрация: 11.04.2010
Сообщений: 5
|
|
Ну я просто больше с PHP знаком. А это понадобилась вот такая штука на стороне клиента. Я начинал читать несколько учебников по javascript, но он до меня что-то не доходит. Вот я и подумал что может кто-то поможет готовым скриптиком.
|
|
11.04.2010, 23:03
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Вы просите готовый скрипт с нуля.
Это работа, и за нее обычно платят деньги.
Для таких сообщений предназначен раздел форума "Работа".
Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела.
|
|
12.04.2010, 00:02
|
|
Пионэр
|
|
Регистрация: 16.11.2009
Сообщений: 1,322
|
|
B~Vladi,
Вы что-то уж слишком жестоки.
Madjahet,
Вам пригодятся эти маны: Array, setTimeout, setInterval. И помните, что такой вещи, как sleep() в javascript нет.
|
|
12.04.2010, 00:12
|
Новичок на форуме
|
|
Регистрация: 11.04.2010
Сообщений: 5
|
|
Моих знаний хватило на это:
<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>
Не работает. Что там не так?
Последний раз редактировалось Madjahet, 12.04.2010 в 00:19.
|
|
12.04.2010, 00:28
|
|
Пионэр
|
|
Регистрация: 16.11.2009
Сообщений: 1,322
|
|
Скрипт выполняется единожды. Чтобы сделать «отсроченное» выполнение, нужно использовать setInterval и setTimeout.
document.write() пишет даные в «поток» документа. При этом этот самый «поток» задерживается до окончания выполнения скрипта, но не функций, вызванных по событию или таймеру — тогда просто непонятно, в какой именно место следует «write», и это грозит открытием нового документа.
Но, в целом, Вы на верном пути.
|
|
12.04.2010, 00:39
|
|
Пионэр
|
|
Регистрация: 16.11.2009
Сообщений: 1,322
|
|
Madjahet,
Да, и добавлю.
Постарайтесь сначала сделать часы на яваскрипте, самые простецкие. Потом сделайте так, чтобы секунды на этих часах сменялись одновременно с системным временем. Потом сделайте так, чтобы все это ело процессора как можно меньше. И после этого Ваша задача покажется Вам не такой уж и сложной.
|
|
12.04.2010, 06:57
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
Сообщение от subzey
|
Потом сделайте так, чтобы все это ело процессора как можно меньше.
|
а где тут можно напортачить?
разве что сделать цикл, а внутри него по сравнению времени выполнять функцию?О_о
|
|
|
|