Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> предварительная загрузка 
:(
    Опции темы
6o6pbI
Дата 26.9.2007, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.9.2007

Репутация: нет
Всего: нет



Здравствуйте.
Нужна такая вещь,когда человек заходит на сайт должна появляться страничка

...подождите идет загрузка...

а когда нужная страница полностью загрузилась,то осуществляется переход на нее.

пример можно посмотреть на woweb и вообще много таких сайтов.
Научите пожалуйста!!
Заранее спасибо!!!
PM MAIL   Вверх
Aoli
Дата 26.9.2007, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 24.1.2007

Репутация: нет
Всего: 0



Внутри html кода пишется джава скрипт, на событие onload.
Примеры посмотри в коде страниц этих же сайтов.
PM WWW ICQ   Вверх
6o6pbI
  Дата 26.9.2007, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.9.2007

Репутация: нет
Всего: нет



в том то и дело что они прячут javascript в отдельном файле!!! :(
PM MAIL   Вверх
nornad
Дата 27.9.2007, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: нет
Всего: 31



6o6pbI, а самому написать не судьба?
Или ты хочешь чтобы тебе просто код дали готовый?

Добавлено через 3 минуты и 12 секунд
Да и отдельный файлик скрипта посмотреть тоже за нефиг делать - сохрани страницу полностью или открой свойства страницы и глянь на скрипты.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
6o6pbI
Дата 27.9.2007, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.9.2007

Репутация: нет
Всего: нет



Я бы с радостью написал сам,но я новичек в этом нелегком деле!!!
Нет,я не прошу готовый скрипт,я прошу объяснить мне как это работает.А ответ типа пользуйся функцией onLoad(); и все будет ок,для меня не нисут никакой информации в силу моего малого знания о javascript.
Про наличие этой функции я знаю,а как ей пользоваться нет,вот и прошу помощи.
PM MAIL   Вверх
dsCode
Дата 27.9.2007, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



Aoli
Цитата(Aoli @  26.9.2007,  22:40 Найти цитируемый пост)
на событие onload

а разве onLoad наступает не тогда, когда страница полностью загружена уже (включая картинки)? ;)

6o6pbI, примерно, суть в следующем:

1. страница разбивается на равные части (исходя из контента; контент скрыт в div'e) (допустим 10 частей)

2. после каждой части вставляется вызов функции js, которая "продвигает" индикатор загрузки (который находится в отдельном, абсолютно-спозиционированном div'e) на 10%.

3. После последней части функция скрывает div загрузки и показывает основной div с контентом.

Это сообщение отредактировал(а) dsCode - 27.9.2007, 10:48


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
InfMag
Дата 27.9.2007, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 2
Всего: 4



Вот тебе пример smile все очень просто
Код

<html>
<head>
<title>page</title>
</head>
<body onload="pageloading.style.display='none';pageload.style.display='block';">
<div id='pageloading'>...LOADING...</div>
<div id='pageload' style="display:none">OK...</div>
</body>
</html>

PM   Вверх
6o6pbI
Дата 27.9.2007, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.9.2007

Репутация: нет
Всего: нет



Вот оно!!!
Спасибо за хорошие ответы!!
Но я уже разобрался почти. реализовал я так...
Код

<script>
var shag=8;
var url_text='Группа ТМ-1-05';
var url_text_style='style="color:#00000"';
var ok_log='Загрузка завершена'; 
var text_log='Загружаюсь...';
var log_color='#ffffff';
var log_win_color='white';
var border_log='#4D5764'; //цвет оконтовки
var bar_color='#4D5764'; //цвет полосы загрузки
var text_style='style="color:#005A89"'; // стиль для всего текста


var var_log=0;
document.write('<div id="log_bar"><table width="100%" height="100%"><tr><th align="center"><table cellspacing="0" style="border:solid 1px '+border_log+'" bgcolor="'+log_win_color+'"  align="center" width="333"><tr ><th bgcolor="'+border_log+'" colspan="3" '+url_text_style+' >'+url_text+'</th></tr><tr><th '+text_style+' colspan="3">'+text_log+'</th></tr><tr><td '+text_style+'><b>0%</b></td><td width="100%"><hr width="1" id="log_hr" align="left" size="10" noshade color="'+bar_color+'"></td><td '+text_style+'><b>100%</b></td></tr><tr><th colspan="3" id="procent" '+text_style+'>0%</th></tr></table></th></tr></table></div><div id="temp_loading" style="display:none">');

function vis_log()

    document.getElementById('log_bar').style.display='none';
    document.getElementById('temp_loading').style.display='block';
    clearTimeout(tim);}

function lo()

    var_log+=shag;
    if(var_log<=100)
{
    document.getElementById('log_hr').width=var_log+"%";
    document.getElementById('procent').innerHTML=var_log+" %" 

else

    document.getElementById('procent').innerHTML=ok_log;
    tim=setTimeout("vis_log();",0)
}
}
</script>




каждой картинке написал onload="lo();";
и все работает(почти!!!!)
Вот она проблемма!!! В опере не работает!!!!Почему???????
Не исчезает див загрузки!!!!к стати та же проблемма и с этим простым кодом
Код

<html>
<head>
<title>page</title>
</head>
<body onload="pageloading.style.display='none';pageload.style.display='block';">
<div id='pageloading'>...LOADING...</div>
<div id='pageload' style="display:none">OK...</div>
</body>
</html>

Подскажите кто знает пожалуйста.
PM MAIL   Вверх
dsCode
Дата 27.9.2007, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



InfMag
Цитата(InfMag @  27.9.2007,  11:00 Найти цитируемый пост)
все очень просто

еще раз повторю - onload для body наступит, когда документ загрузится полностью


6o6pbI, все должно сработать. document.getElementById('log_bar').style.display='none'; - у Вас определен элемент с id log_bar (это скрипт с woweb - у них-то, может и определен этот элемент, а Вы не забыли написать?)? Потмоу что функция vis_log() должна вызваться после отработки последней lo(...) - tim=setTimeout("vis_log();",0).

Это сообщение отредактировал(а) dsCode - 27.9.2007, 12:34


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
6o6pbI
Дата 27.9.2007, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.9.2007

Репутация: нет
Всего: нет



6o6pbI, все должно сработать. document.getElementById('log_bar').style.display='none'; - у Вас определен элемент с id log_bar (это скрипт с woweb - у них-то, может и определен этот элемент, а Вы не забыли написать?)? Потмоу что функция vis_log() должна вызваться после отработки последней lo(...) - tim=setTimeout("vis_log();",0).

Все правильно сделал.В других браузерах работает ведь!!!!А в опере нет.

У меня 12 картинок у каждой onload="lo();"
шаг=8

функция lo(); повторяется 12 раз,при этом var_log становится > 100 и запускается function vis_log();

Проблемма в том что в опере даже первый шаг не делается.

Вот ссылка где пытаюсь реализовать http://www.tm-1-05.jino-net.ru/
PM MAIL   Вверх
dsCode
Дата 27.9.2007, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



6o6pbI, не знаю, сходу так не сказать. Что написано в описании к скрипту? Он поддерживает Оперу вообще? На самом деле, когда происходит document.write(...) в самом конце создается невидимый див, но вот закрывающего тега для него нет. Может из-за этого - хотя вряд ли, конечно. В общем, надо пошагово отлаживать и искать причину.

P.S.: вообще, пощелкайте по своим же ссылкам (форум, вход и т.д.) - переодически файрбаг говорит "lo() is not defined, tim is not defined.. и т.д.". Так что там ошибки есть - надо искать и фиксить.

Это сообщение отредактировал(а) dsCode - 27.9.2007, 16:05


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
SelenIT
Дата 27.9.2007, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



6o6pbI, просто не все браузеры делают из id-ов глобальные переменные. Если пользоваться стандартным методом document.getElementById, будет работать везде:
Код

<html>
<head>
<title>page</title>
</head>
<body onload="var d=document;d.getElementById('pageloading').style.display='none';d.getElementById('pageload').style.display='block';">
<div id='pageloading'>...LOADING...</div>
<div id='pageload' style="display:none">OK...</div>
</body>
</html>



--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
6o6pbI
Дата 27.9.2007, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.9.2007

Репутация: нет
Всего: нет



dsCode не поверишь!!!Реально из за незакрытого дива нничего не работало!!!!!!!!! smile 

У меня там все через getElementById.
Спасибо всем кто потратил на меня время!!! smile 
PM MAIL   Вверх
Astraller
Дата 29.9.2007, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 1.8.2007
Где: $Украина[Кры м]->Феодосия

Репутация: 2
Всего: 5



Ужос.... решение елементарное и лежит на поверхности.
Код

window.onload=show;
function show (){
[создали и показали DIV]
time();
}

function time(){
if (document.body){
[скрыли див]
}else{
setTimeout("time();",1);
}
}



--------------------
A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair
PM MAIL WWW ICQ   Вверх
SelenIT
Дата 30.9.2007, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Astraller, и чем это элементарнее, чем пример InfMagа выше? smile

К тому, же, не поздновато ли только создавать див-прелоудер в момент onload-а - т.е. тогда, когда по логике должна открыться основная страница?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
AKS
Дата 30.9.2007, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Цитата(SelenIT @  30.9.2007,  16:27 Найти цитируемый пост)
Astraller, и чем это элементарнее, чем пример InfMagа выше? 

Своя рубашка ближе к телу. smile

PM MAIL   Вверх
dsCode
Дата 30.9.2007, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



AstrallerAKS, да это не индикатор загрузки получится, а просто эффект "Загрузка данных..." "моргнет" и исчезнет, когда страница уже будет загружена полностью. onLoad наступит, когда ВСЕ загрузится (попробуйте картинку в метров 5 запихнуть в код и поставить alert(...) в onLoad - этот алерт появится, когда картинка загружена будет уже).


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
6o6pbI
Дата 30.9.2007, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.9.2007

Репутация: нет
Всего: нет



 smile 
PM MAIL   Вверх
AKS
Дата 1.10.2007, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Цитата(dsCode @  30.9.2007,  20:54 Найти цитируемый пост)
AKS, да это не индикатор загрузки получится...

А я тут при чем? ))))))))))))))))))))))))))))))))
Я тут, грубо говоря, только offtop'ил (да и то один только раз)...

PM MAIL   Вверх
dsCode
Дата 1.10.2007, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



AKS, а-а )) пардон, просто мне показалось, что ты поддержал идею с onLoad'ом, говоря о "рубашке" =))


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
cruelangel
Дата 1.10.2007, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 319
Регистрация: 12.9.2007

Репутация: 4
Всего: 8



> пример можно посмотреть на woweb и вообще много таких
быдло-сайтов. думаешь посетителю интересно смотреть на твоё "пожалуйста, подождите"? 

PM MAIL   Вверх
dsCode
Дата 1.10.2007, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



Цитата(cruelangel @  1.10.2007,  11:52 Найти цитируемый пост)
думаешь посетителю интересно смотреть на твоё "пожалуйста, подождите"?

кстати, да, особенно было на dial-up'e - когда, текст прогрузится, а картинки нафиг не нужны, я останавливал загрузку (можно, конечно, вообще было отключить картинки в браузере, но это уже другой вопрос) - часть информации, которая мне нужна - уже загружена. А с такими "индикаторами загрузки" пользователю придется ждать полной загрузки. Хотя, все это можно гибко настроить, например, скрывать основной див, пока грузятся важные части, потом показать основной див, а "ненужная часть" будет подргужаться дальше сама по себе. Но юзер уже сможет работать. Хотя толку тогда от этого "индикатора загрузки"?


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
Astraller
Дата 1.10.2007, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 1.8.2007
Где: $Украина[Кры м]->Феодосия

Репутация: 2
Всего: 5



Цитата(dsCode @ 30.9.2007,  20:54)
AstrallerAKS, да это не индикатор загрузки получится, а просто эффект "Загрузка данных..." "моргнет" и исчезнет, когда страница уже будет загружена полностью. onLoad наступит, когда ВСЕ загрузится (попробуйте картинку в метров 5 запихнуть в код и поставить alert(...) в onLoad - этот алерт появится, когда картинка загружена будет уже).

А вы проверяли? smile

window.onload наступит сразу же при появлении окна smile

а document.body станет доступно когда догрузится! smile 


--------------------
A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair
PM MAIL WWW ICQ   Вверх
SelenIT
Дата 1.10.2007, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Цитата(Astraller @  1.10.2007,  12:53 Найти цитируемый пост)
window.onload наступит сразу же при появлении окна

Astraller, это в каком браузере и в каком режиме? Можно полный пример?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Astraller
Дата 1.10.2007, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 1.8.2007
Где: $Украина[Кры м]->Феодосия

Репутация: 2
Всего: 5



Цитата(SelenIT @ 1.10.2007,  13:08)
Цитата(Astraller @  1.10.2007,  12:53 Найти цитируемый пост)
window.onload наступит сразу же при появлении окна

Astraller, это в каком браузере и в каком режиме? Можно полный пример?

Всё . Беру свои слова в зад smile Так не получится. 
1) window.onload срабатывает после загрузки <head> только в FF 2.0.0.6+
2) Некуда крепить созданный нами слой т.к. document.body еще не догрузился.

PS Тогда вижу только одно решение. Поверх всех слоёв выводим этот слой загрузки в самом начале а после догрузки его скрываем. ИМХО


--------------------
A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair
PM MAIL WWW ICQ   Вверх
InfMag
Дата 12.12.2007, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 2
Всего: 4



Ну вобще можно очень и очень хитрожопо поступить  smile 
Код

<html>
<head>
<title>page</title>
</head>
<body>
<div id='pageloading'>...LOADING...</div>
<div id='pageload' style="display:none">OK...</div>
</body>
</html>
<script type="text/javascript" language="javascript">pageloading.style.display='none';pageload.style.display='block';</script>

Тогда стопудов пока до последней строчки не дойдет нифига не покажется smile
PM   Вверх
dsCode
Дата 12.12.2007, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



InfMag, ага, можно и так (что то же самое, в принципе). Минус такой реализации, что нельзя сымитировать именно индикатор с процентами =)


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0707 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.