Войти

Показать полную графическую версию : Нужно ускорить загрузку странички :)


Vampire
04-11-2005, 21:27
Есть такая проблема, при загрузке странички браузер долго думает прежде чем подгрузить баннеры, а потом загружает все содержимое странички вместе с баннерами (табличками сделан сайтец). Так вот мона как-нить вначале подгрузить содержимое странички, оставив в нужных местах места под баннеры, а только после полной загрузки инфы подгрузить уже и баннеры?

elfoflorien
05-11-2005, 13:57
Vampire
с помощью js-скриптов, например; все картанки баннеров обозначаете какими-то именами (b1, b2, b3...), но не пишите им src, и делаете их невидимыми (visibility: hidden); потом специальной функцией пробегаетесь по массиву этих баннеров, созданному вначале программы, и добавляете им какой-нибудь src, при этом убирая невидимость... и конечно, функция должна вызываться через <body onload="">.

Vampire
05-11-2005, 14:22
Ну а если это не просто картинки, а коды баннерных сетей (которые вроде как редактировать запрещается)? т.е. мне надо оставить при загрузке странички в определенных местах пустые места, а потом туда подгрузить сам код баннера

elfoflorien
05-11-2005, 14:46
Vampire
почти так же как и с картинками, только создаем не img, а div или span без содержания, и во время обхода добавляем obj.innerHTML= код_баннера

vadimiron
05-11-2005, 18:02
Vampire
Браузеры (не знаю все ли) загружают по таблицам, то есть браузер пробегается по коду, если находит начало таблицы, то читает всю эту таблицу до конца и потом её грузит, поэтому имеет смысл таблицы с баннерами напечатать в коде настолько низко, насколько это возможно. И не делать весь сайт в одной таблице, тогда пока всё в данной таблице не загрузится, то содержимое не отобразиться

E-mail
06-11-2005, 02:09
Vampire

<script defer>
</script>

и ваш скрипт будет работать только после загрузки нескриптовой части сайта

Vampire
06-11-2005, 15:17
Посчет таблиц это я знаю, но дизайн менять уже не хочется, а вот посчет <script defer></script> мона поподробнее? как оно работает и каков синтаксис?

elfoflorien а можешь простенький примерчик привести?

ЗЫ: баннеры от TBN, у них там три строчки с <script>...</script>, насколько я понимаю скрипты друг в друга вкладывать нельзя, а может и ошибаюсь (это я про применение <script defer></script>). Поправте, если неправ.

elfoflorien
08-11-2005, 22:25
Vampire
правда не уверен, что работает - не проверял
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>

<script language="JavaScript">
<!--

function load_banners()
{
b_codes= new Array( "<a href=....>...</a>" /* a list of banners codes */ );
banners= new Array( "b1", "b2" /* a list of banner id's here */ );
for( i= 0; i < banners.length; i++ )
{
banner= document.getElementById( banners[i] );
banners.innerHTML= b_codes[i];
}
}

//-->
</script>

</head>

<body onload="load_banners();">

<!-- all html page -->

<!-- banners -->

<div id="b1"></div>
<div id="b2"></div>

</body>
</html>

E-mail
10-11-2005, 06:42
да зачем все это??

везде в тег script добавляйте атрибут defer и эти скрипты будут грузится после onload body

archy
10-11-2005, 07:53
Vampire
В данном случае поможет определение размеров, чтобы браузер однозначно знал, где какой элемент должен располагаться, либо избавляться от таблиц и переходить на <div>.
E-mail
Иногда нужно выполнение скриптов до загрузки страницы, ла и во всех ли браузерах это работает?

vadimiron
10-11-2005, 14:10
Иногда нужно выполнение скриптов до загрузки страницы, ла и во всех ли браузерах это работает?

В этом случае по-моему достаточно скрипт JavaScript-a разместить в теге head

archy
10-11-2005, 16:19
Ладно, скажу по другому. Выполение жабаскрипт не тормозит отображение страницы (если это не вражеский скрипт, который чего то ждет), просто IE не отображает ссодержимое страницы, пока не будет иметь однозначное представление как ее рендерить, движок такой.
Лисица и Опера умеют отображать страницу сразу, во время загрузки, подгоняя ее походу.

Vampire
11-11-2005, 18:03
archy а как заставить ие не ждать просчета явы? Да и по статистике большинство народу используют ИЕ.

E-mail
12-11-2005, 00:04
Vampire


епт,

ТАК, КАК Я НАПИСАЛ! )))

Vampire
12-11-2005, 00:37
А нифига неполучается. Ты хоть видел скрипт от ТВН. Вот тебе пример
<script language="JavaScript"> var loc = ''; </script>
<script language="JavaScript1.4">try{ var loc = escape(top.location.href); }catch(e){;}</script>
<script language="JavaScript">
var userid = 69976357; var page = 1;
var rndnum = Math.round(Math.random() * 999111);
document.write('<iframe src="http://ad.100.tbn.ru/bb.cgi?cmd=ad&hreftarget=_blank&pubid=' + userid + '&pg=' + page + '&vbn=334&w=100&h=100&num=1&r=ssi&ssi=nofillers&r=ssi&nocache=' + rndnum + '&ref=' + escape(document.referrer) + '&loc=' + loc + '" frameborder=0 vspace=0 hspace=0 width=100 height=100 marginwidth=0 marginheight=0 scrolling=no>');
document.write('<a href="http://ad.100.tbn.ru/bb.cgi?cmd=go&pubid=' + userid + '&pg=' + page + '&vbn=334&num=1&w=100&h=100&nocache=' + rndnum + '&loc=' + loc + '&ref=' + escape(document.referrer) + '" target="_blank">');
document.write('<img src="http://ad.100.tbn.ru/bb.cgi?cmd=ad&pubid=' + userid + '&pg=' + page + '&vbn=334&num=1&w=100&h=100&nocache=' + rndnum + '&ref=' + escape(document.referrer) + '&loc=' + loc + '" width=100 height=100 Alt="TBN 100x100, (095)428-4200, http://tbn.ru" border=0></a></iframe>');
</script>

А можно как нить это дело с помощью пхп организовать?

archy
15-11-2005, 09:15
ИЕ не ждет просчета жабаскрипта, оно ждет загрузки img/iframe для дальнейшего правильного рендеринга страницы. Заставить осла этого не делать... не знаю таких возможностей.
Хотя может я и отстал, грят 7ой осел довольно выкрутастый :)

elfoflorien
15-11-2005, 14:21
Vampire
если вы используете PHP в своих страницах, можно использовать функции буфера вывода (ob_start(), ob_get_contents(), flush(), ob_end_clear()), можеть быть что-то ускорится... Да и PHP лучше оптимизировать - например, убирать из операторов echo и print максимум статической информации:
вместо <?php ... print "<img src=$img_src title=$img_title ...>"; ... ?>
написать ?> <img src="<? echo $img_src ?>" ...>и т. д.

Vlad Drakula
15-11-2005, 16:15
Vampire
давайте начнем сначала с определенея что за баннеры...
это баннеры грузятся с вашего сайта или это внешние баннерные сети?

Vampire
15-11-2005, 19:10
Банерная сеть ТВН, примерный код баннера приведен в моем сообщении чуть выше




© OSzone.net 2001-2012