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

    +154

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    function updateClock()
    {
        var date = new Date();
        var day = date.getDate();
        var month = date.getMonth() + 1;
        var year = date.getFullYear();
        var hours = date.getHours();
        var minutes = date.getMinutes();
        var seconds = date.getSeconds();
        var dateTimeString = day + "." + month + "." + year + " " + hours + ":" + minutes + ":" + seconds;
        $('#clock').html("Сейчас " + dateTimeString);
    }

    Трибьют классике.

    Запостил: pushistayapodmyshka, 24 Ноября 2014

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

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

          Даже сраные AM/PM и то имеют несколько трактовок.
          Ответить
        • Ради интереса, победите данный пример кроссбраузерно и без какой библиотеки :)
          Ответить
          • Даже если лень подключать какой-нибудь скрипт для форматирования дат, то как минимум говно вот в этом
            $('#clock').html("Сейчас " + dateTimeString);

            Форматирование для форматирования, вьюшки для вьюшек.
            Ответить
            • Попахивает, но до говна, в отличии от вашего примера ниже, не дотягивает. Говном было бы ради такого не лениться подключать библиотеку в десятки кб. Или вы и жуквери ради получения пары элементов по ид тяните? :)
              Ответить
              • Да согласен, что пример ниже плохой. Все зависит от задач, если нужна работа с датами, то есть смысл что-то подтянуть, так как нативные не очень, если это только лишь одно место во всем приложении, то ниразу не говно, да.
                https://github.com/phstc/jquery-dateFormat - 2,5кб, momentjs - 11.3кб, и кто считает эти килобайты во времена, когда для фона сайтика используются fullhd изображения?
                Ответить
                • > и кто считает эти килобайты во времена, когда для фона сайтика используются fullhd изображения?

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

                      *Если он заходил на какой-нибудь сайт, которому нужна такая же версия.
                      Ответить
                      • Звёздочка (с учётом кол-ва версий жуквери и cdn) сводит такую вероятность к минимуму, а ограничение на параллельное кол-во запросов (если у вас не http/2) тормозит загрузку страницы.
                        Ответить
                        • > ограничение на параллельное кол-во запросов
                          Но вроде бы на два сервера браузер может делать вдвое больше запросов, чем на один?
                          Ответить
                          • Точные цифры подзабыл, но со своего сервера мы можем тянуть всё склеенное в 1 файл, а с cdn каждую библиотеку / плагин (коих, обычно, тянут много) - отдельным. HTTP/2 решает проблему мультиплексированием.
                            Ответить
                        • А каково ограничение на параллельное к-во запросов? Две штуки — только в древнем RFC. У современных браузеров 16, а то и 16 в квадрате.
                          Ответить
                          • http://www.browserscope.org/?category=network
                            Ответить
                            • И что я должен увидеть из синтетического теста, в котором используется небольшое количество картинок (на порядок меньше, чем на реальных сайтах)?

                              Но даже этот тест показывает, что в популярных браузерах к-во параллельных соединений с разными хостами может быть втрое больше, чем к-во соединений с одним хостом. Это хорошо или плохо?
                              Ответить
                              • Ну да. 6 подключений на домен и 10 всего - почти 16 в квадрате. Особенно учитывая сколько ресурсов - скриптов, стилей и особенно картинок нужно подгружать.
                                Ответить
                                • Тот тест на маленьком количестве картинок и хостов. Если он грузит 24 картинки в первом тесте и 60 во втором, то не может он показать больше. Тем более, что браузер все доступные соединения не использует: за то время, когда загрузилась первая картинка, может освободиться канал для первой.

                                  Тест нужно доработать, добавив в него реальное количество картинок.

                                  256 подключений в меню настроек Фаерфокса и 128 в меню настроек Оперы (16 на хост и 64 всего по умолчанию) просто так что ли?
                                  Ответить
                                  • Видимо, просто так, если не используются - не зря всего 2 в рекомендации. Больно часто в последнее время последовательную загрузку вижу, если много ресурсов. Нужно доработать тест - доработайте если такой плохой - слишком многие на него ссылаются.
                                    Ответить
                      • С CDN проблемы:
                        1. CDN может лежать, хотя наш сайт работает. Несколько раз нарывался на то, что CDN Гугла не работает.
                        2. CDN могут заблокировать за пропаганду гомосексуализма.

                        Поэтому важно здесь замечание Дефекейта: ставим гигантский срок годности на статику, и она будет браться из кэша*.

                        * Вне зависимости от того, с CDN она или с нашего сервера.
                        Ответить
                        • >> Дефекейта: ставим гигантский срок годности на статику, и она будет браться из кэша*.

                          А обновлять потом как?
                          Изменением урла?

                          Кажется, гугл так делает.
                          Ответить
                          • > Изменением урла?
                            Ну. У тех же js'ок один хер уже есть версии в названиях... К ним даже ничего не придется приклеивать.
                            Ответить
                            • Ну это смотря где:)
                              Ответить
                              • Можно еще давать имена в виде хеша от содержимого, тогда вообще никаких проблем с кешем. Но смотрится как-то страшновато.
                                Ответить
                                • Если это генерируется автоматически, без помощи макак, которые вручную правят HTML, то в этом нет ничего постыдного.

                                  Вообще говоря в Идеальном Мире (тм) все JSы собираются в модули и такой модуль может автоматически получать название вроде common_v912.js.

                                  Ну а модуль, понятное дело, собирается из сотни .jsок)
                                  Ответить
                              • Ну да, некоторые вебмастера вместо номера версии Жуквери указывают latest, а потом глубокой ночью сайт ВНЕЗАПНО перестаёт работать у тех, у кого в кэше браузера не сохранилась старая версия библиотеки, потому что на CDN добавили новую версию Жуквери, а в ней нужные фишки DEPRECATED.
                                Ответить
                                • Я вообще очень люблю когда депендядтся на latest.

                                  Один мой знакомый имел проект на мавене, и он у него депендился на latest версии разных библиотек.

                                  Сколько раз вызвал mvn install, столько раз получил разные сборки
                                  Ответить
                                  • Кто-то взбирается на вершины без страховки, кто-то играет в казино, а кто-то депендится на latest.
                                    Ответить
                                    • ...а у кого-то гента на продакшен-сервере с автоапдейтом по крону каждую ночь:)

                                      (подумалось что описаная мною ситуация это тот редкий случай, когда вопрос "какая версия операционки у тебя?" *ПОЛНОСТЬЮ* лишен смысла)
                                      Ответить
                                      • xxx: какая версия операционки у тебя?
                                        yyy: последняя!
                                        Ответить
                                • Я так с openstreetmap залетел. Теперь только конкретные версии, только хардкор.
                                  Ответить
                    • Вот только не факт, что пользователь, за секунд 30 недождавшись на своём 3г загрузки сайта, зайдёт на него второй раз.
                      Ответить
                      • Смотря какой сайт. Если это сайт очень нужной конторы, пользователь на него зайдёт, каким бы он глючным не был. Видимо поэтому у банков и у госорганизаций такие дерьмовые сайты.
                        Ответить
                      • я по 3g могу через впн по rdp на рабочий десктоп ходить
                        или ютюб смотреть

                        помню, футбольные трансляции в нормальном качестве (1500 кбит/с) смотрел, находясь практически в лесу
                        Ответить
                        • Завидую. А у меня в комнате сейчас вообще нет сигнала. А когда есть - половина пакетов потеряна. К чему вы это?
                          Ответить
                        • > я по 3g могу через впн по rdp на рабочий десктоп ходить или ютюб смотреть
                          Аналогично, только оно довольно быстро кончается (на моей нищебродской опции - 50Мб\день). И исходящий канал очень плохой. Но в качестве бекапа - вполне хватает.

                          Прошли те дни, когда я сидел на едва-едва появившемся в нашем провинциальном городке gprs...
                          Ответить
                        • RDP кстати не показатель: он очень экономный протокол, особенно если вручную исправить качество изображения на 8 bit:)
                          Ответить
              • > ради получения пары элементов по ид
                Ради $.get() и $.post() как минимум.
                Ответить
                • Полноценный и удобный транспорт - чуть большее, чем получение пары элементов по ид :) Светлое будущее обещает нам искаропки такую штуку: https://fetch.spec.whatwg.org/#fetch-api , но до него ещё дожить нужно.
                  Ответить
    • (new Date).toLocaleString()

      Но все равно я всегда не любил работу с датами, особенно с переводами в UTC и обратно.
      Ответить
      • А что toLocaleString? Где-то "25.11.2014, 14:24:57", где-то "25 ноября 2014 г. 14:24:57", а где-то вообще не работает. Полноценная поддержка в сафари, IE10- и на мобильных платформах отсутствует.
        Ответить

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