Постоянное обновление страницы. Как?
Подскажите пожлуйста как мне поступить?
Мне нужно, чтобы обратный отсчёт времени шёл в реальном времени. --------------------------------------------------------------------------- Вот скрипт: <SCRIPT LANGUAGE="javascript"> today = new Date(); BigDay = new Date("May 13, 2008") msPerDay = 24 * 60 * 60 * 1000 ; timeLeft = (BigDay.getTime() - today.getTime()); e_daysLeft = timeLeft / msPerDay; daysLeft = Math.floor(e_daysLeft); e_hrsLeft = (e_daysLeft - daysLeft)*24; hrsLeft = Math.floor(e_hrsLeft); minsLeft = Math.floor((e_hrsLeft - hrsLeft)*60); document.write("<h3><center>"); document.write( "осталось <br><b>"+daysLeft+"</b> дней,<br> <b>"+hrsLeft+"</b> часов<br><b>"+minsLeft+"</b> минут."); document.write("</h3></center>"); location.reload() </SCRIPT> ------------------------------------------------------------------ как сделать, чтобы страница постоянно обновлялась? |
ratt, путаница получилась с обозначение "обновление страницы". Под этим термином обычно понимают рефреш адреса страницы. Вы же, как можно понять, хотите обновлять содержимое страницы.
Вместо document.write(...) используйте обновление свойства innerHTML какого-нибудь контейнера. Например: <span id="container"></span> var content = "осталось <br><b>"+daysLeft+"</b> дней,<br> <b>"+hrsLeft+"</b> часов<br><b>"+minsLeft+"</b> минут."; document.getElementById('container').innerHTML = content; |
Как понял, должно получиться нечто подобное:
<HTML><HEAD> <SCRIPT language=javascript> function clockon() { today = new Date(); BigDay = new Date("May 13, 2008") msPerDay = 24 * 60 * 60 * 1000 ; timeLeft = (BigDay.getTime() - today.getTime()); e_daysLeft = timeLeft / msPerDay; daysLeft = Math.floor(e_daysLeft); e_hrsLeft = (e_daysLeft - daysLeft)*24; hrsLeft = Math.floor(e_hrsLeft); minsLeft = Math.floor((e_hrsLeft - hrsLeft)*60); var content = "осталось <br><b>"+daysLeft+"</b> дней,<br> <b>"+hrsLeft+"</b> часов<br><b>"+minsLeft+"</b> минут."; document.getElementById('container').innerHTML = content; </SCRIPT> </HEAD> <BODY onLoad="clockon()"> <SPAN id="container"></SPAN> </BODY></HTML> ---------------------------- подскажите почему это не рабтает. |
ratt, не первый взгляд - синтаксическая ошибка - функция не закрыта (закрывающей скобки нет "}"). Плюс ко всему, если Вам нужно в реальном времени показывать время (масло маслянное =)), то посмотрите функции:
- setTimeout(функция, мс) - выполняет функцию (первый параметр) по истечении времени (второй параметр, миллисекунды). Выполняет единожды (кроме случае, если функция рекурсивная) - setInterval(...) - параметры те же, только выполняет функцию периодически P.S.: на будущее - старайтесь четче задавать вопросы (где именно не работает; работает не правильно или вообще не работает и выдает ошибки и т.д.). Используйте кнопки JS или HTML для подстветки кода. |
Спасибо: всё получилось!
<HTML><HEAD> [JS]<SCRIPT language=javascript> function clockon() { today = new Date(); BigDay = new Date("May 13, 2008") msPerDay = 24 * 60 * 60 * 1000 ; timeLeft = (BigDay.getTime() - today.getTime()); e_daysLeft = timeLeft / msPerDay; daysLeft = Math.floor(e_daysLeft); e_hrsLeft = (e_daysLeft - daysLeft)*24; hrsLeft = Math.floor(e_hrsLeft); e_minsLeft = (e_hrsLeft-hrsLeft)*60; minsLeft = Math.floor(e_minsLeft); e_secLeft = (e_minsLeft-minsLeft)*60; secLeft = Math.floor(e_secLeft); var content = "осталось <br><b>"+daysLeft+"</b> дней,<br> <b>"+hrsLeft+"</b> часов<br><b>"+minsLeft+"</b> минут,<br><b>"+secLeft+"</b> секунд"; document.getElementById('container').innerHTML = content; setTimeout("clockon()", 1000); } </SCRIPT>[/JS]</HEAD> <BODY onLoad="clockon()"> <SPAN id="container"></SPAN> </BODY></HTML> |
Подскажите новичку, как нужно изменить вышеуказанный JS-скрипт, чтобы оставшееся количество дней до указанной даты вычислялось не на локальном компьютере пользователя, а через cgi-запрос на сервере?
|
Цитата:
|
С какого перепугу число дней надо вычислять на сервере?
Оно будет как то отличатся от того которое вы получите на стороне клиента не забрасывая сервер не нужными http запросами? |
Цитата:
|
Тогда все верно ответили: ajax (http://www.w3.org/TR/2010/CR-XMLHttpRequest-20100803/) или websocket (http://www.w3.org/TR/2009/WD-websockets-20091222/) в зависимости от характера данных и частоты их изменения.
p.s. спек не пугайтесь. все что надо для кроссбраузерного использования реализовано в популярных фремворках или в виде отдельных библиотек. |
Часовой пояс GMT +3, время: 02:30. |