Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Нужно ускорить загрузку странички :) (http://forum.oszone.net/showthread.php?t=56155)

Vampire 04-11-2005 21:27 370459

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

elfoflorien 05-11-2005 13:57 370561

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

Vampire 05-11-2005 14:22 370564

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

elfoflorien 05-11-2005 14:46 370572

Vampire
почти так же как и с картинками, только создаем не img, а div или span без содержания, и во время обхода добавляем obj.innerHTML= код_баннера

vadimiron 05-11-2005 18:02 370596

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

E-mail 06-11-2005 02:09 370667

Vampire

<script defer>
</script>

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

Vampire 06-11-2005 15:17 370763

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

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

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

elfoflorien 08-11-2005 22:25 371677

Vampire
правда не уверен, что работает - не проверял
HTML код:

<!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 372116

да зачем все это??

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

archy 10-11-2005 07:53 372134

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

vadimiron 10-11-2005 14:10 372308

Цитата:

Иногда нужно выполнение скриптов до загрузки страницы, ла и во всех ли браузерах это работает?
В этом случае по-моему достаточно скрипт JavaScript-a разместить в теге head

archy 10-11-2005 16:19 372367

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

Vampire 11-11-2005 18:03 372964

archy а как заставить ие не ждать просчета явы? Да и по статистике большинство народу используют ИЕ.

E-mail 12-11-2005 00:04 373094

Vampire


епт,

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

Vampire 12-11-2005 00:37 373113

А нифига неполучается. Ты хоть видел скрипт от ТВН. Вот тебе пример
HTML код:

<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 374028

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

elfoflorien 15-11-2005 14:21 374136

Vampire
если вы используете PHP в своих страницах, можно использовать функции буфера вывода (ob_start(), ob_get_contents(), flush(), ob_end_clear()), можеть быть что-то ускорится... Да и PHP лучше оптимизировать - например, убирать из операторов echo и print максимум статической информации:
вместо
PHP код:

<?php ... print "<img src=$img_src title=$img_title ...>"; ... ?>

написать
HTML код:

?> <img src="<? echo $img_src ?>" ...>
и т. д.

Vlad Drakula 15-11-2005 16:15 374167

Vampire
давайте начнем сначала с определенея что за баннеры...
это баннеры грузятся с вашего сайта или это внешние баннерные сети?

Vampire 15-11-2005 19:10 374240

Банерная сеть ТВН, примерный код баннера приведен в моем сообщении чуть выше


Время: 23:12.

Время: 23:12.
© OSzone.net 2001-