Блог на Васил Тошков

Нов код за Referring Links? - търся съвет

Последният месец, моят инструмент за препращащи връзки Referring Links загуби голяма част от потребителите си. Причината е в хостинга - HostBulgaria изглежда имат огромни проблеми със сървъра DAO. Не само че инструментът започва да не отчита правилно, но се получава нещо друго, много по-неприятно - започва да бави зареждането на страниците на потребителите.

Разбирам всеки, който го е махнал. Дори мен самия ме дразни всичко това, но проблемът просто не зависи от мен. Знам какво бихте ме посъветвали - да сменя хостинга. Според мен това не е решение, защото сървърът рано или късно ще се оправи. Но трябва да намеря решение за случаите, когато сървъра го няма.

Много мислих, какви ли не гимнастики правих, но просто JavaScript е така проектиран, че трудно да се реагира на подобни проблеми. Затова мисля да прибегна към нещо, което силно се надявах да не правя - да променя кода за потребителите. Засега още го обмислям, но май натам вървят нещата. Естествено, старият код ще си работи.

Засега съм измислил това:
<script type="text/javascript">
var links = 7;
var banned = "example.com,someword";
var language = "bg";
document.write(unescape("%3Cscript src='http://referringlinks.com/script.js' type='text/javascript'%3E%3C/script%3E"));
</script>

Искам съвет от хората, които повечко разбират от програмиране - това правилно решение ли е? Обяснявам: След приемането на необходимите за скрипта параметри, чрез функцията write генерираме ново извикване на скрипт на следващо ниво. Когато сайта се зарежда, той изисква първо ниво.

То винаги се зарежда, защото не зависи от външния сайт (сайта на скрипта). Така следващото ниво се зарежда след зареждането на сайта или по-точно не зависи от зареждането на сайта и не го бави. На този блог в момента върви този експериментален код и дава доста добри резултати. Скрипта си хваща стиловете и си отчита.

Кодът си остава валиден спрямо W3C, JavaScript конзолата не дава никакви грешки. Ако сървърът липсва, просто нищо не се появява, като отново грешки не се генерират, нито се забава зареждането на сайта. Както казах, това е най-големият и досаден проблем в старата версия на кода.

Много сложно го обясних май, но той целият скрипт е една голяма сложнотия. Постоянно се появяват нови проблеми и предизвикателства. Мечтая си да го изкарам от Beta, но няма да е в следващите 3 месеца. Въпреки всичко съм оптимист за бъдещето на инструмента. Смятам, че ще го довърша все някога :)

Забележете, че има параметър за български език (bg). Скоро не само widget-а, но и сайта ще има и българска версия.