1. JavaScript / Говнокод #3590

    +173

    1. 1
    javascript:for(i=0; i<=document.images.length; i++){document.images[i].width=height=0}

    Безумное решение которое я нашел на форуме в локалке под лозунгом "Сэкономить на трафике" была ссылка с данным кодом.

    Запостил: pbg, 29 Июня 2010

    Комментарии (27) RSS

    • из хрестоматийной серии "помните, что уменьшая значения аттрибутов width и height, вы не уменьшите размер загружаемой картинки" - фраза, которая кочует из книги в книгу, и из туториала в туториал
      Ответить
      • Особенно если это делать после загрузки картинки ))
        Ответить
        • судя по префиксу javascript: - оно активизируется линком или прямо из адресной строки - тогда да.
          если оно вешается на онЛоад - тогда некоторые картинки не успеют загрузиться.

          но баннероубивалка для текстового контента - отличная
          Ответить
          • >>>но баннероубивалка для текстового контента - отличная

            Если бы она ещё не кидала бы TypeError, то вообще было бы просто супер.
            Ответить
          • window.onload срабатывает после загрузки всех элементов страницы (картинки, скрипты, CSS, флэшки, апплеты...), так что картинки загрузиться как раз успеют. Вот если вешать на DOMContentLoaded, тогда да.
            Ответить
            • эм, а уже изменилось, что срабатывает сразу после загрузки хтмл?
              Ответить
              • https://developer.mozilla.org/en/dom/window.onload

                The load event fires at the end of the document loading process. At this point, all of the objects in the document are in the DOM, and all the images and sub-frames have finished loading.
                Ответить
          • >>> если оно вешается на онЛоад - тогда некоторые картинки не успеют загрузиться.
            от размера картинки не зависит ее загрузка
            чтоб загрузку обломать на лету нужно было document.images[i].src=""
            Ответить
            • а я не говорил, что загрузка обломается.
              Ответить
              • да ты вобще нечего пока еще не сказал =/
                у меня и колонок нет...
                Ответить
    • хм, я так и не нашел нафига там переменная height 0_о
      видать автор думал что если так написать то она будет принадлежать объекту image =)
      Ответить
    • Ходят слухи, будто бы Уебкил вот так однажды уронил Яндекс:
      with (new Image()) {
          src = 'http://ya.ru/logo.png';
          width = height = 9999999999999999999999999999999;
      }
      Ответить
      • После его попыток ДоСить хакера, подставляющего нецелые числа в GET-параметры, с помощью бесконечного цикла из fsockopen'ов на 80-й порт его IP, я уже ничему не удивляюсь...
        Ответить
      • Да, я слышал эту историю.
        Лого яндекса увеличилось до неимоверных размеров, место на диске на серверах яндекса кончилось, и сервера повисли.
        Ответить
      • Смех смехом, а сервисы, умеющие растягивать изображения, есть:
        http://www.gravatar.com/avatar/59a05be6ab620880b73019587791411d?size=99 9
        Жалко, что граватар больше, чем 512 на 512, не умеет.
        Ответить
        • кэп
          Ответить
        • Да ну, он не круто растягивает. Надо, чтобы при увеличении становились видны новые подробности, а не появлялись квадраты.
          Ответить
          • для того чтобы круто растянуть нужно перевести изображение в вектор
            для новых подробностей нужно сравнить с другим изображением имеющим их и по хитрым алгоритмам получить к-во подробностей * к-во подробностей (:
            Ответить
          • При растягивании практически любого изображения там появляется новая подробность: http://lurkmore.ru/Свидетель
            Ответить
            • Я понимаю, что так, как в фильмах про спецслужбы, не бывает (ну неоткуда лишней информации взяться), но есть же наверное алгоритмы растяжения, не сильно портящие качество.
              Ответить
              • >>там появляется новая подробность: http://lurkmore.ru/Свидетель
                xD

                >>>но есть же наверное алгоритмы растяжения, не сильно портящие качество.

                конечно, они давно уже придуманы, особенно хороши алгоритмы использующие нейронные сети - типа nnedi
                только скорость у них крайне низкая и чудес не ждите, но линии они равняют отлично
                Ответить
                • Да мне чудес и не надо, просто чтобы смотрелось пристойно.

                  > но линии они равняют отлично

                  Векторизация какая-нибудь?
                  Ответить
                  • да, банальный перевод в вектор, нейронные сети нужны чтоб избежать математики, типа random
                    По формулам нужна трассировка и куча времени, но гарантируется отличный результат и неограниченное увеличение.
                    Ответить
                    • >>да, банальный перевод в вектор
                      >>По формулам нужна трассировка
                      не правда

                      интересующимся предметом - ознакомится обязательно
                      http://neuron2.net/library/nedi.pdf
                      http://www.cs.ucdavis.edu/~bai/ECS231/finaltzeng.pdf
                      Ответить
    • >на форуме
      смехуёчки смехуёчками, но этот букмарклет эффективно уничтожит все уёбищные аватары
      так что надо признать полезным =)
      Ответить

    Добавить комментарий