Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Загрузка скрипта
 
 автор: angelcorpc   (08.06.2009 в 14:55)   письмо автору
 
 

Есть страница, в которой вставлены информеры, проблема в том, что они не всегда доступны (нет соединения с серверами информеров). Вопрос: как сделать чтобы информеры загружались после загрузки страницы. Т.е. они стоят в середине кода и при отсутствии соединения половина страницы зависает, пытаясь загрузить их, а мне хотелось бы чтобы они загружались уже в конце страницы (чтобы скрипт был в конце кода, но вставлялся именно в середину кода).

  Ответить  
 
 автор: PAT   (08.06.2009 в 15:33)   письмо автору
 
   для: angelcorpc   (08.06.2009 в 14:55)
 

window.onload = function ()
{
загрузка и прописывание в нужных местах
}

  Ответить  
 
 автор: angelcorpc   (08.06.2009 в 21:32)   письмо автору
 
   для: PAT   (08.06.2009 в 15:33)
 

Я делаю так:
 <script language="javascript">
  window.onload = function ()
   {
    document.getElementById('bash').innerHTML = "<script language='JavaScript' type='text/javascript' src='http://bash.org.ru/forweb'></script>";
    document.getElementById('gis').innerHTML = "<script>URL='http://img.gismeteo.Ru/flash/mtown.swf?cset=8&tnumber=4&city0=26063&city1=22892&city2=29838&city3=36038';w='160';h='95';value='cset=8&tnumber=4&city0=26063&city1=22892&city2=29838&city3=36038';lang='ru';</script><script src='http://informer.gismeteo.Ru/flash/fcode.js'></script>";
   }
 </script>

Понимаю что это глупость, но по другому не могу.
Здесь кавыски не работают, в том смысле что теги <script> и </script> внутри строки обрабатываются. Подскажите как это обойти пожалуйста.

  Ответить  
 
 автор: PAT   (08.06.2009 в 22:20)   письмо автору
 
   для: angelcorpc   (08.06.2009 в 21:32)
 

Если зайдёте на http://bash.org.ru/webmaster, то там можете прочитать:
Необходимое примечание для людей, знающих, что такое CSS: цитата заключена в div#b_q


Значится, делаете так:
<html>
<head>
<style>
#b_q {display: none}

/* нужный вам стиль,  который увидит клиент */
/* прописываете для #bash, например, такой: */
#bash {background-color: #dfefdf}
</style>
<script>
function myFunc ()
{
if (!document.getElementById ('b_q')) setTimeout (myFunc, 1000);
else document.getElementById ('bash').innerHTML = document.getElementById ('b_q').innerHTML;
}
onload = myFunc;
</script>
</head>
<body>
...ваш контент...
<div id="bash"></div>
...продолжение вашего контента...
</body>
</html>
<script src="http://bash.org.ru/forweb"></script>

Аналогично и для ГИСМЕТЕО.

  Ответить  
 
 автор: angelcorpc   (08.06.2009 в 22:29)   письмо автору
 
   для: PAT   (08.06.2009 в 22:20)
 

Ступил...бывает...спасибо большое:)))

  Ответить  
 
 автор: arfey   (07.07.2009 в 15:23)   письмо автору
 
   для: PAT   (08.06.2009 в 22:20)
 

Может ответ очень прост, но у меня не выходит
У меня вверху пару flash-баннеров 5 и 18 кб, для dial-up - это критично,
а пока они не загрузятся - станица отображается только шапка.
Как, то что здесь написано реализовать в моем случае?
Вот мой код написанный по аналогии с Вашим

<html> 
<head> 
<style> 
#50byr {display: none} 
</style> 
<script> 
function myFunc () 

if (!document.getElementById ('50byr')) setTimeout (myFunc, 1000); 
else document.getElementById ('container').innerHTML = document.getElementById ('50byr').innerHTML; 

onload = myFunc; 
</script> 
</head> 
<body> 
....контент...
<div id="container"></div> 
....контент-продолжение...
</body> 
</html> 
<div id="50byr">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="400" height="200" id="50byr" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="50byr.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="50byr.swf" quality="high" bgcolor="#ffffff" width="400" height="200" name="50byr" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</div>

...он работать не хочет.

и что делает
 
setTimeout (myFunc, 1000); 

  Ответить  
 
 автор: PAT   (07.07.2009 в 17:16)   письмо автору
 
   для: arfey   (07.07.2009 в 15:23)
 

Аналогия ваша "хромает" :-)
Причём на обе ноги :-)

В реализации с bash.org тега <div id="b_q"></div> вместе с его содержимым в HTML-коде страницы
ИЗНАЧАЛЬНО НЕ СУЩЕСТВУЕТ.
Вместо этого тега в конце страницы подключается скрипт <script src="http://bash.org.ru/forweb"></script>.
И вот когда этот скрипт ЗАГРУЗИТСЯ - он и СОЗДАСТ тег <div id="b_q"></div>.

Соответственно, размещённый в заголовке скрипт проверяет - существует ли уже объект с id="b_q" -
и, если ЕЩЁ не существует, возвращается к этой же проверке через 1 секунду (для этого
используется setTimeout).


У вас же <div id="50byr"> есть в HTML-коде ИЗНАЧАЛЬНО.
Проверка поэтому на существование этого тега не нужна СОВЕРШЕННО.

  Ответить  
 
 автор: arfey   (10.07.2009 в 15:09)   письмо автору
 
   для: PAT   (07.07.2009 в 17:16)
 

Чуть подкоректировал свое и о чудо - хромать перестали обе ноги.
Проверил на медленном dial-up - просто чудо.
Вся страница загрузилась и можно просматривать, а через секунд 10 появилась flashka/
Так что мой код не безнадежен.
Можете посмотреть iosTOCHKAby (не сочтите за рекламу)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования