Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.01.2010, 01:01
ffx ffx вне форума
Аспирант
Отправить личное сообщение для ffx Посмотреть профиль Найти все сообщения от ffx
 
Регистрация: 29.09.2008
Сообщений: 48

как сделать "загрузка..."
в общем решил я по маленьку изучить js и начал с написания такого скрипта как "загрузка..."
что мне надо, чтобы изменялось количество точек, то есть
Код:
загрузка
загрузка.
загрузка..
загрузка...
поискал не нашел
вот то что смог накалякать, но почемуто после первого же прохождения цикла он выдает всего лиш то что в document.write
document.write("loading")
            for (i = 1; i < 4; i++) {
                setTimeout('document.write(".")', 1000)                
            }
Ответить с цитированием
  #2 (permalink)  
Старый 27.01.2010, 01:26
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,245

http://javascript.ru/tutorial/dom/modify
http://innerhtml.ru/

document.write() работает так как вы ожидаете только до загрузки страницы. после нее, он просто переписывает заново страницу
Ответить с цитированием
  #3 (permalink)  
Старый 27.01.2010, 01:51
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Важно понять специфику работы setTimeout и document.write.

document.write добавляет в документ текст, будет вставлен после закрывающего </script> в текущем блоке скрипта:
<script type="text/javascript">
document.write("[docwrite]");
</script>
<script type="text/javascript">
alert(document.body.innerHTML);
</script>

Ну если документ уже закрыт (т.е., считывание его кода завершено), он откроет новый, пустой, и запишет туда.

setTimeout не останавливает работу скрипта. Эта функция лишь говорит браузеру запустить что-то, по возможности, через столько-то времени.
Код
for (i = 1; i < 4; i++) { 
	setTimeout('document.write(".")', 1000)                 
}

на самом деле запустит все три функции приблизительно через секунду.

Получить нечто похожее на желаемый результат у Вас получится только если setTimeout сработает раньше, чем завершится обработка тега <script>, т.е., фактически почти никогда и в зависимости от фазы Луны.
(Если точнее, то в Firefox с задержкой выполнения скрипта модальным окном.)

Используйте заместо этого изменение innerHTML у элемента:
<script type="text/javascript">
document.write("Загрузка");
for (var i = 1; i < 4; i++){
setTimeout(function(){document.body.innerHTML += "."}, i * 1000)
}
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 27.01.2010, 13:18
ffx ffx вне форума
Аспирант
Отправить личное сообщение для ffx Посмотреть профиль Найти все сообщения от ffx
 
Регистрация: 29.09.2008
Сообщений: 48

так а чтобы удалить, какую функцию надо вызвать?
<script type="text/javascript">
document.write("Загрузка");
while (true) {
for (var i = 1; i < 4; i++){
setTimeout(function(){document.body.innerHTML += "."}, i * 1000)
}
функция удаления точек
}
	</script>
и так правильно организовывать бесконечный цикл?
Ответить с цитированием
  #5 (permalink)  
Старый 27.01.2010, 14:23
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Я бы советовал Вам подучить сначала язык, прежде чем браться за такие задачи — возьмите пример попроще и двигайтесь к усложнению.

Помните, документ в яваскрипт не очень-то похож на консольное окошко, и некоторые задачи, которые для изучения, скажем, C поставляются в начале учебника, в javascript могут оказаться извратом.
Ответить с цитированием
  #6 (permalink)  
Старый 27.01.2010, 14:27
ffx ffx вне форума
Аспирант
Отправить личное сообщение для ffx Посмотреть профиль Найти все сообщения от ffx
 
Регистрация: 29.09.2008
Сообщений: 48

спасибо. ща учу, вообще запутался в этих методах, объектах, функция О_О
php давался намного легче
Ответить с цитированием
  #7 (permalink)  
Старый 27.01.2010, 15:17
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

Сообщение от ffx
так а чтобы удалить, какую функцию надо вызвать?
показать чистый исходник в новом окнеСкрыть/показать номера строкпечать кода с сохранением подсветки
1 <script type="text/javascript">
2 document.write("Загрузка");
3 while (true) {
4 for (var i = 1; i < 4; i++){
5 setTimeout(function(){document.body.innerHTML += "."}, i * 1000)
6 }
7 функция удаления точек
8 }
9 </script>
и так правильно организовывать бесконечный цикл?
Не нужно бесконечно цыклить браузер, он тупо зависнет
Ответить с цитированием
  #8 (permalink)  
Старый 27.01.2010, 15:17
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

<script type="text/javascript">
	
var points=0;
var timeRset = setTimeout("timeR()",1000);

	function timeR()
{
  points++;
  timeRset=setTimeout("timeR()",1000);
  document.getElementById("load").innerHTML +=".";
if(points==4){document.getElementById("load").innerHTML =""; points=0;}

 }
          

    </script>


<p  >Загрузка<span id="load"></span></p>

Последний раз редактировалось JsLoveR, 27.01.2010 в 15:28.
Ответить с цитированием
  #9 (permalink)  
Старый 27.01.2010, 15:18
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

ffx,
Если будут вопросы, я объясню
Ответить с цитированием
  #10 (permalink)  
Старый 27.01.2010, 15:55
ffx ffx вне форума
Аспирант
Отправить личное сообщение для ffx Посмотреть профиль Найти все сообщения от ffx
 
Регистрация: 29.09.2008
Сообщений: 48

JsLoveR,
спасибо
не понимаю зачем это
var timeRset = setTimeout("timeR()",1000);
почему нельзя просто запустить
timeR()
при такой конструкции се работает но с ошибкой
document.getElementById("load") is null
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать постоянную проверку на javascript alb Общие вопросы Javascript 18 09.01.2010 14:05
Как сделать вкладку с 'плюсами и минусами'??? Monopolist Элементы интерфейса 2 05.08.2009 14:07
Вопрос как сделать эту панельку Определённых размеров и свойств. jei jQuery 3 09.06.2009 19:14
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56
Как сделать, чтобы 2 ссылки отображались как hover при наведении мышкой на любую? Ava Элементы интерфейса 5 19.05.2009 23:24