В съвременния Интернет все по-често се налагат така наречените външни модули за сайт (англ. widget). Това са фрагменти от уеб сайтове, които изпълняват определена функционалност и визуализират резултат. Те са външни скриптове, които не са на основния сървър на сайта. Структурата на HTTP (HyperText Transfer Protocol) протоколът позволява една Интернет страница да се съхранява едновременно на няколко сървъра в Интернет.
Това в последните години доведе до създаването на много и различни по функционалност модули за сайтове, които да спомагат социализацията в Интернет пространството. Тези модули изцяло отговарят на Web 2.0 стандартите. В общия случай те се инсталират в страничната лента на сайта (англ. sidebar). Откъм реализация се делят на два вида: реализирани чрез JavaScript и извиквани чрез вътрешни рамки (от англ. iframe) на HTML (HyperText Markup Language).
В обозримото бъдеще, вътрешните рамки и изобщо рамките (от англ. frames), ще отпаднат от HTML стандартите, затова бъдещето е в JavaScript реализираните модули за сайтове. JavaScript дава и повече възможности, защото кодът на модула се вмъква директно в дървото на DOM (Document Object Model) модела на HTML документа. Това е равносилно на генериране на код от сървърен скрипт. При подобна реализация изходът може да се форматира с CSS (Cascading Style Sheets).
Дори чрез специална техника, изходът може и да се валидира. Това е едно изцяло ново и независимо ниво на програмиране. Но си има и своите недостатъци:
- Недостатък 1: Чрез подобно вмъкване на код от външни източници, се отварят дупки в сигурността на сайта. Добавеният скрипт може да съдържа и зловреден код. Той има достъп до всички бисквитки (от англ. cookies) на потребителския сайт. Това означава достъп до активни потребители, дори техните пароли. Затова създателите на модули за сайтове носят огромна отговорност пред потребителите си.
- Недостатък 2: Визуализацията на страница с външен код е възможна само при наличието на този код. Тоест, ако сървърът на модула не е достижим поради някаква причина, това нарушава структурата на текущата страница. Съвременните браузъри решават този проблем чрез изчакване на определено време сървърът да стане достижим. Ако това не се случи, те визуализират страницата, без модула, с известно закъснение.
HTTP протоколът предоставя и опции за кеширане на външния код. Това кеширане отчасти решава и двата недостатъка. То намаля и натоварването на сървъра на модула, тъй като в даден момент към него се обръщат множество други сайтове с инсталиран същия модул. Оптимизацията на скрипта на модула е съществена част от неговото изграждането.
В тази статия ще Ви представим модул за сайт, който показва препращащите към даден сайт връзки и показва от кой домейн колко посетители са били препратени през последните 30 дни. Инструментът се намира на адрес ReferringLinks.com. Това е от части и статистически инструмент, който е предназначен за собствениците на сайтове и най-вече блогове (от англ. web log). Инструментът извършва алгоритмична и автоматична размяна на връзки и посетители между тематични сайтове.
Решението, което предлагаме, е в по-голямата си част написано на JavaScript. Така по-голямата част от изчисленията, се пренасят на клиентската машина. По този начин се пестят сървърни ресурси и време. Използват се и някои функции на PHP (HyperТext Processor). В момента на писане на този текст, в света няма реализиран външен модул за сайт с подобна функционалност. Приложението изисква и специфична база данни.
Целта на модула е да е сигурен, надежден и максимално оптимизиран. Входът и изходът на базата данни да са максимално филтрирани и защитени. Колкото се може повече от функционалността и изчисленията се изнасят на клиентската машина. Базата данни е в трета нормална форма, като таблиците в нея се свързват с подходящите външни ключове. Поставят се необходимите индекси и данните се съхраняват в компресиран формат.