Връзка с поддръжката

Отговаряме по имейл, обикновено до два дни.

Google reCAPTCHA проверява това изпращане срещу злоупотреби; данни се изпращат към Google. Скриптът се зарежда само когато този формуляр бъде отворен.

← Всички публикации

Спряхме да събираме размерите на екрана

Тази услуга някога записваше резолюцията на екрана. Скриптът в браузъра четеше window.screen и я изпращаше като res=1920x1080, а статистическата страница имаше панел за нея.

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

Защо отпадна

Резолюцията на екрана е добър признак за създаване на цифров отпечатък на браузъра — не сама по себе си, а в комбинация с другото, което носи една заявка. Тази услуга се стреми да пази възможно най-малко за посетителя, а едно число, описващо хардуера му, не си заслужаваше. Никой никога не беше направил нищо с този панел.

Това е лесната половина на решението. Трудната половина беше то да стане вярно.

Изключването в браузъра не беше достатъчно

Премахването на реда от скрипта спира изпращането ѝ от новите копия на скрипта. Това не променя нищо за копията, които вече са в обращение, а те са два вида:

  • Браузърите пазят скрипта седем дни. Една седмица след всяка промяна част от посетителите изпълняват предишната версия.
  • Някои клиентски страници изобщо не зареждат скрипта оттук — те вграждат копие, взето преди години, поставено в шаблон и оттогава недокосвано.
кеш на браузъра7копие, поставено преди годинибез сроксървърът спира да го приемакрай веднагадни, докато старият скрипт спре да изпраща

Вторият вид няма срок на годност. Тези страници щяха да продължат да изпращат res= безкрайно, сървърът щеше да продължи да го записва, а промяната щеше да изглежда завършена, докато всъщност не е вярна точно за посетителите, които никой не наблюдава.

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

Видът грешка, която това предотвратява

„Премахнахме събирането“ е твърдение за кода. „Вече не пазим това“ е твърдение за данните. Това са различни твърдения и в уеб първото не означава второто, защото клиентският код работи на машини извън чийто и да е контрол, във версии, които никой не е избрал, толкова дълго, колкото нечий кеш или копиране и поставяне го поддържа жив.

Всичко, изключено при клиента, трябва да бъде изключено и на сървъра. Промяната при клиента спира изпращането. Промяната на сървъра прави твърдението вярно.

Старите редове все още са там и намаляват: изтриват се на порции от малък инструмент, написан точно за това. Когато той приключи, панелът пак ще е празен и това най-сетне ще бъде цялата история, а не по-голямата част от нея.

Реклама