Опубликовано: 13 июня 2016
Дублирование загрузки кода Есть решение
Здравствуйте. Если посмотреть исходный код главной страницы вашего демо сайта то можно увидеть что блок Контакты в шапке загружается три раза
<!--contact in header-->
<li class="top-contact phone">+7 (917) 57-07-577
</li>
<li class="top-contact hint">Ежедневно с 9:00 до 21:00</li>
На 544, на 1680 и на 1786 строке.
На моем сайте тоже самое. Однако у меня в этом блоке еще висит кнопка вашего же плагина Перезвонить вам? и еще плагин выбора регионов. Соответственно коды этих плагинов также грузятся по три раза. Можно узнать почему так? И влияет ли это факт на общую скорость загрузки сайта?
Комментарии (5)
1) Почему так: начальное решение для того что бы редактировать контакты в одном месте/файле(в последнем обновлении этой темы оформления дублирования не должно быть, если у вас не создан блок с старым содержимым этого файла).
2) На общую скорость загрузки это влияет незначительно, от слова совсем.
Здравствуйте еще раз. Версия темы оформления у меня по всем признакам последняя.
Последняя версия 2.3.1
Установлена последняя версия темы дизайна Удобная Покупка.
Так как все таки избавится от этого дублирования кода? Можно подробную инструкцию. А то мне это не очень нравится. Да и вдобавок W3 validator как мне кажется именно по этому выдает много ошибок Duplicate ID.
Адрес вашего сайта укажите.
Адрес сайта 747.kz
И обратите внимание у меня 3152 строки кода, что очень много и очень много строк дублируются по три раза. Именно те которые выводятся из блока {$wa->block("comfortbuy.contact")}
Скорее всего вы используете блок для указания контактов, но используете его содержимое прежней версии. Сравните код блока с содержимым файла comfortbuy.contact.html приложения Сайт, там есть конструкция исключающая дублирование верхнего блока телефонов снизу и наоборот.
Скопировал код из файла comfortbuy.contact.html приложения Сайт и заменил им блок {$wa->block("comfortbuy.contact")}
Помогло, но только наполовину. Если раньше дублировалось три раза, то теперь только два раза стало. Количество строк в коде страницы сразу уменьшилось с 3152 до 2769.
Как бы еще чуток убрать этот второй повтор?
Вот содержимое обновленного блока {$wa->block("comfortbuy.contact")}
{$__contact = $wa->globals("_contact")}
{if $wa->shop}{$phone = $wa->shop->settings('phone')}{$email = $wa->shop->settings('email')}{else}{$phone=''}{$email=''}{/if}
<ul>
{if $__contact}
<!--contact in header-->
<li class="top-contact region"> {shopRegionsViewHelper::getWindow()} <p></p> </li>
{if $phone}<li class="top-contact phone">{$phone}</li>{else}
<li class="top-contact phone"> {shopRegionsViewHelper::parseTemplate('{region_phone}')} </li>
<li class="top-contact phone"> 8 (747) 775 47 47</li>
{/if}
{* ссылка в шапке "заказаьть обратный звонок" при включенном плагине "Перезвонить Вам?"
<li class="top-contact"><a href="javascript: void(0);" class="wm-recallback-plugin-button" rel="nofollow">Перезвонить Вам?</a></li>
*}
<li class="top-contact hint">
{if $wh = $wa->shop->settings('workhours')}
{*
{foreach $wh.days as $d}{$d}{if !$d@last}, {/if}{/foreach}
*}
{$wh.days_from_to}
{if $wh.hours_from && $wh.hours_to} {$wh.hours_from}—{$wh.hours_to}{/if}
{else}
Ежедневно с 9:00 до 21:00
{/if}
</li>
{if $wa->shop}{shopRecallbackPlugin::showRecallbackButton()}{/if}
<li class="top-contact messenger"> {shopMessageboxPlugin::display(2)} {shopMessageboxPlugin::display(1)} </li>
{else}
<!--contact in footer-->
{if $phone}<li class="bottom-contact phone"><i class="icon-phone"></i>{$phone}</li>{else}
<li class="bottom-contact phone"><i class="icon-phone"></i>+7 (747) 775-47-47 Tele2</li>
<li class="bottom-contact phone"><i class="icon-phone"></i>+7 (702) 648-66-66 Kcell</li>
<li class="bottom-contact phone"><i class="icon-phone"></i>+7 (777) 186-00-00 Beeline</li>
<li class="bottom-contact messenger"><i class="icon-skype"></i><a href="skype:saltanatcards?chat">Skype chat saltanatcards</a></li>
{/if}
{* ссылка в подвале "заказаьть обратный звонок" при включенном плагине "Перезвонить Вам?"
<li class="bottom-contact phone"><i class="icon-phone-sign"></i><a href="javascript: void(0);" class="wm-recallback-plugin-button" rel="nofollow">Заказать обратный звонок</a></li>
*}
{if $email}<li class="bottom-contact email"><i class="icon-envelope"></i><a href="mailto:{$email}">{$email}</a></li>{else}
<li class="bottom-contact email"><i class="icon-envelope"></i><a href="mailto:info@saltanat-cards.kz">info@saltanat-cards.kz</a></li>
{/if}
{/if}
</ul>
Второй повтор видимо из за кода для устаревших браузеров в файле lt-ie8.html. Попробуйте строки в этом файле:
{$wa->globals("_contact", 1)}
{if $contact=$wa->block("`$themeId`.contact")}
{$contact}
{else}
{include file="comfortbuy.contact.html"}
{/if}
заменить строками:
{*$wa->globals("_contact", 1)}
{if $contact=$wa->block("`$themeId`.contact")}
{$contact}
{else}
{include file="comfortbuy.contact.html"}
{/if*}
или вовсе убрать подключение этого файла в файле index.html удалите строку:
<!--noindex--><div class="wrapper-lt-ie8">{include file="lt-ie8.html" themeId=$them[1]}</div><!--/noindex-->
Заменил строки в файле lt-ie8.html. Все повторы теперь убрались.
Большое спасибо за помощь.