Спряхме да събираме размерите на екрана
Тази услуга някога записваше резолюцията на екрана. Скриптът в браузъра четеше window.screen и я изпращаше като res=1920x1080, а статистическата страница имаше панел за нея.
Вече не го прави. Таблицата, в която се пазеше, днес има нула реда, а панелът показва празното си състояние. Редът в скрипта, където ставаше четенето, сега е коментар, който казва какво е имало там.
Защо отпадна
Резолюцията на екрана е добър признак за създаване на цифров отпечатък на браузъра — не сама по себе си, а в комбинация с другото, което носи една заявка. Тази услуга се стреми да пази възможно най-малко за посетителя, а едно число, описващо хардуера му, не си заслужаваше. Никой никога не беше направил нищо с този панел.
Това е лесната половина на решението. Трудната половина беше то да стане вярно.
Изключването в браузъра не беше достатъчно
Премахването на реда от скрипта спира изпращането ѝ от новите копия на скрипта. Това не променя нищо за копията, които вече са в обращение, а те са два вида:
- Браузърите пазят скрипта седем дни. Една седмица след всяка промяна част от посетителите изпълняват предишната версия.
- Някои клиентски страници изобщо не зареждат скрипта оттук — те вграждат копие, взето преди години, поставено в шаблон и оттогава недокосвано.
Вторият вид няма срок на годност. Тези страници щяха да продължат да изпращат res= безкрайно, сървърът щеше да продължи да го записва, а промяната щеше да изглежда завършена, докато всъщност не е вярна точно за посетителите, които никой не наблюдава.
Затова и сървърът спря да го приема. Пристига, пренебрегва се, нищо не се записва. Това е половината от промяната, която наистина държи.
Видът грешка, която това предотвратява
„Премахнахме събирането“ е твърдение за кода. „Вече не пазим това“ е твърдение за данните. Това са различни твърдения и в уеб първото не означава второто, защото клиентският код работи на машини извън чийто и да е контрол, във версии, които никой не е избрал, толкова дълго, колкото нечий кеш или копиране и поставяне го поддържа жив.
Всичко, изключено при клиента, трябва да бъде изключено и на сървъра. Промяната при клиента спира изпращането. Промяната на сървъра прави твърдението вярно.
Старите редове все още са там и намаляват: изтриват се на порции от малък инструмент, написан точно за това. Когато той приключи, панелът пак ще е празен и това най-сетне ще бъде цялата история, а не по-голямата част от нея.