Ред на зареждане на структурата на сайта

В днешно време с все по-широкото използване на готовите безлатни CMS, frameworks, уеб базирани приложения, социялни мрежи, форуми и пр. все по-малко хора са запалени по изучаване на програмни езици и създаване на собствен уникален сайт.

Предимствата на този вид разработване са много и твърде съществени и на тази тема ще отделим достатъчно време в друга статия.

Затова тук ще дам пример, който може да послужи за отговор на многото въпроси от рода защо сайта ми работи бавно? и напълно незаслужено се хвърля вината върху хостинг компанията, докато отговора трябва да се търси на съвсем друго място.

Какво представлява един сайт от гледна точка на кода?

С инструментите на програмен език HTML и CSS по определен начин се подреждат визуалните елементи на сайта по начин, по който уеб дизайнера желае.

Поради голямата свобода, гъвкавост и разнообразие от инструменти, това позициониране може да се дефинира по много различни начини.

Това естествено води въпросът, кой начин на писане е доказано най-ефективен и защо.

Ще се опитам да отговоря на тези въпроси в следващите редове.

Нека разгледаме класически сайт с главно изображение (header 1), лява навигационна лента (2), основна статия (3) , дясна навигационна лента (4) и спомагателна навигацинна секция (footer 5).

website template

Кода се чете отляво надясно и отгоре надолу.

При класическа структура елементите ще се заредят в следния ред:
1 > 2 > 3 > 4 > 5 (графиката по-долу) като важното поле 3, което съдържа най-важният таг h1 се зарежда по средата на кода.

table-type

На следващата графика съм премахнал реалният код и съм го заменил със структурни коментари за по-лесна ориентация.

структурен код

Има CSS позициониране, при което обаче елементите в кода може да се подредят по начина, показан на следващата графика – при него главното съдържание се зарежда почти в края на кода под номер 4.

css bad

При тази структура основното заглавие на страницата, което се съдържа в h1 тага и инструктира търсещите машини за главната тема на страницата, ще се появи много, много назад в кода на сайта.

И ако допуснем, че индексиращия скрипт е ограничен да търси h1 заглавието в първите хиляда думи от кода, при описаната структура той никога няма да достигне до този таг и уеб страницата никога няма да види бял свят (предно класиране) в резултатите на търсещите машини.

Написаното по-горе е само предположение, но неслучайно многократно в блоговете на Google полу-несериозно се споменава, че googlebot е един вечно бързащ робот.

Прибавете към това и сериозната работа на инженерите от Google по Page Speed модул и сървис и трябва да ви светне сигналната лампичка, че бързината в работата на един сайт е твърде важен параметър и на всяко нещо, от което зависи тази скорост трябва да се гледа много сериозно.

За да придобиете представа какво е CSS позициониране, на следващата графика съм копирал част от CSS файла, който по дефиниция се зарежда от head секцията на сайта и който в нашият случай дефинира лявата навигационна лента:

css primeren kod

Тук се дефинира позицията на целият елемент – отляво, 23% от общата ширина, разстоянието между отделните блок елементи в ul (unordered list) списъка – 2 пиксела, цвят на линка и на фона, широчина на лявата лента 4 пиксела, промяната на цвета при посочване на линка a:hover и т.н.

Има начин на писане на код с CSS структурно позициониране, при който първият видим за посетителя текст в body тага на сайта е вашето h1 заглавие тъй като header секцията е дефинирана като бекграунд изображиение и структурните елементи се зареждат в реда, показан на следващата графика.

css good code

Познайте от първи опит при един и същ текст на страницата, коя структура ще бъде предпочетена от търсещата машина и ще получи по-предно класиране – тази от последната графика, разбира се, в която h1 заглавието е първият видим текст в кода.

Защо сайта ми работи бавно?

Поради много причини един сайт може да работи бавно и тези са най-често срещаните:

Зареждане на твърде много вмъкнати файлове с функцията include(); - до зареждането на всички файлове съдържанието на сайта не може да се визуализира.

Ако някой от тези файлове трябва да се свърже с URL от друг сървър, вероятността от забавяне нараства много кратно.

Друга причина са неграмотно написани заявки към базата данни (select * или вмъкнати заявки) при които при всеки клик се проверяват всички записи без да се ползват индекси или разделяне на продуктите на подкатегории, същото се отнася и за събиране на тонове ненужна информация.

Нямам логично обяснение защо базовата инсталция на Magento съдържа 250 MySQL таблици или защо базовата инсталация на Joomla е над 5000 файла?

Много разпространен недостатък при изграждане на сайтове са неоптимизираните и голям брой изображения. На тази тема ще отделим няколко допълнителни статии, но просто погледнете началната страница на yahoo.com – компания, която може да си позволи всякакъв ресурс и технология е избрала пестелив дизайн с малки оптимизирани изображения и много текстови линкове.

Неслучайно в библията е записано, че мъдрият човек приема съвети и ако човек има силно желание да се усъвършенства има достатъчно добри образци наоколо.