Перейти к содержимому
RU
Играть

Форум

Удаление снега с форума


WALLE

Рекомендованные сообщения

Приветствую! Видел многочисленные жалобы на падающий снег, решил покопаться в поисках решения - и отключить снег при необходимости, хотя бы через консольку браузера. Плюс, для любопытсвующих (и графоманства ради)- оставлю процесс тоже в теме.

Итак, отправная точка рычага отключения - консоль браузера и большое количество  подобных блоков. Собственно, жалобы на лаги связаны как раз с их количеством.
 

Скрытый текст

rFrajJ3mhpw.jpg?size=1258x433&quality=96

При этом по понятным причинам эти блоки создаются скриптом. 
И тут у нас есть 2 пути. Либо простой и понятный - полностью отключить JS в браузере  и получить поврежденную верстку, либо - найти тот скрипт, который мешает именно нами отключить его. При этом мы полагаем, что положение снежинок изменяет тот же самый скрипт, что их и создает.
Навесим перехват изменений состояния снежинок на произвольный блок. Ввиду того, что при изменении положения снежинки меняется ее артибут, достаточно воспользоваться утилитой Хрома Break on - attribute modification
Затем - снова запустим активацию и нас сразу же перекинет на искомый скрипт. Наведя мышку на заголовок - мы получаемего название
 

Скрытый текст

ZOLK056cLaU.jpg?size=915x137&quality=96&

И тут небольшое лирическое отступление на побомбить.
Я не знаю, откуда взяты исходники данного скрипта, либо же он целенаправленно писался с нуля, во избежание проблем с авторскими правами, но - он конкретно косячный.

  • Использование var и вместо констант и вместо нормальных let ломает читаемость и обособленность пространств имен
  • Практически везде - нестрогие сравнения, что уже кучу времени антипаттерн
  • Часть переменных имеет однобуквенные имена. И это нельзя списать на обфускацию, потому что остальная часть названа нормально
  • И самое вкусное. Параметры в половине случае заданы как paramName = !1 или !0
    Я нормально отношусь к некоторый антипаттернам но - они должны быть как либо обусловлены
    А вот это вот - за гранью добра и зла
    Скрытый текст

    C2teD-cbfqw.jpg?size=181x100&quality=96&

Итак, вернемся к главной мысли - о том, как убить скрипт.
Опять таки, тут есть вариативность, включая любимый многими адблок, но если  говорить о решении на минималках - достаточно перейти в вкладку Network, обновить страницу и в поле поиска слева вбить название найденного скрипта, кликнуть на него правой кнопкой мыши и выбрать заблокировать. 

 

Скрытый текст

FYBjzmYiDrM.jpg?size=658x550&quality=96&

Затем мы должны снова обновить страницу - и на ней больше не будет идти снег

 

Изменено пользователем WALLE
  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

13 минуты назад, WALLE сказал:

Видел многочисленные жалобы на падающий снег

И все жалобы написаны одним человеком! xD

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

37 минут назад, WALLE сказал:

вбить название найденного скрипта, кликнуть на него правой кнопкой мыши и выбрать заблокировать. 

А в том скрипте еще какой-то функционал вроде есть, связанный с цитатами. Ничего не ломается?

 

39 минут назад, WALLE сказал:

Практически везде - нестрогие сравнения, что уже кучу времени антипаттерн

Нафига сравнивать строго то, что заведомо имеет один тип? :heh: "А вдруг там будет другой тип"? Объясните мне как человеку, который на JS ничего серьезного не делал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

12 минуты назад, T_N_T_A_N_master сказал:

а почему снег удалили прикольно было! Все настроение испортили!!!

На месте твой снег - прямо сейчас выжигает мои глаза.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

25 минут назад, Niced сказал:

На месте твой снег - прямо сейчас выжигает мои глаза.

а у меня его нет! СНЕГ УКРАЛИИИИИИ

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, Niced сказал:

А в том скрипте еще какой-то функционал вроде есть, связанный с цитатами. Ничего не ломается?

 

Нафига сравнивать строго то, что заведомо имеет один тип? :heh: "А вдруг там будет другой тип"? Объясните мне как человеку, который на JS ничего серьезного не делал.

Кажется нет.

По крайней мере невскидку нестандартного поведения я не замечал.

Касаемо JS - так в принципе идейно делать не очень хорошо. Во первых, в мире веба слово "заведомо" не совсем уместно (в js динамическая типизация и вполне возможно (по тем или иным причинам) присвоить числовой переменной значение '1')

Во вторых, == не различает null, 0, {}, "" и т.д. Как видно из листинга, разработчик закладывает некоторую разницу между 0, null и !1. Ведь зачем-то в качестве констант инициализации их все и использует.

Ну и наконец - так рекомендуется в стандарте :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

10 минут назад, WALLE сказал:

Касаемо JS - так в принципе идейно делать не очень хорошо. Во первых, в мире веба слово "заведомо" не совсем уместно (в js динамическая типизация и вполне возможно (по тем или иным причинам) присвоить числовой переменной значение '1')

Понимаешь, это все звучит логично, но вот сходу сценария, когда вместо числа ВНЕЗАПНО оказывается строка, я придумать не могу. Тем более зачем заморачиваться по этому поводу в маленьких скриптах? Для единообразия, конечно, лучше придерживаться какого-то конкретного варианта везде.

 

Вот скажи, это "заведомо" или нет: array.length == 5 :heh:

 

На самом деле, наверное, ты прав. Я скорее не поддерживаю "фуууу" в случаях, когда выбор того или иного оператора не играет никакой роли. Это же скрипт снега, камон!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, Niced сказал:

Понимаешь, это все звучит логично, но вот сходу сценария, когда вместо числа ВНЕЗАПНО оказывается строка, я придумать не могу. 

Конкретно в этом скрипте это могла быть тривиально опечатка. У меня на опыте было так, что я тягал конфиги из БД и не приводил к нужному формату, сразу писал в объект.

Ну и предсказуемо, однажды база отдала мне не 0, а '0'. Мой косяк - не тыкнул галочку при введении тестовых даннных, но ошибку я потом искал довольно долго.

 

Ну и не будь тут константных !1, того бугурт-треда вообще не было бы. Это скорее к слову прршлось

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здравствуйте.

У кого не пропал снег - почистите кеш. Его отключили из-за бесконечной прокрутки вниз форума.

W2zvvs0.png

  • Нравится 1
  • Спасибо 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Гость
Эта тема закрыта для публикации сообщений.
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×
×
  • Создать...