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

    +161

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    function UpdateTime() {
    var CurrentTime = new Date();
    var InputTime = document.getElementById('MyTime');
    var InputDate = document.getElementById('MyDate');
    sec=sec+1;
    if(sec >=58)
    {
    	if(min>59)
    	{
    		hour=hour+1;
    		min=0;
    	} else
    	{ min=min+1;
    	};
    	sec=0;
    } else {
    };
    	h = hour;
    	if ( h < 10 ) h = "0" + h;
    	m = min;
    	if ( m < 10 ) m = "0" + m;
    	s = sec;
    	if ( s < 10 ) s = "0" + s;
    	outString = h + ":" + m + ":" + s;
    	InputTime.innerHTML = outString;
    	outString = d + " ";
    	outString += month[mo] + " ";
    	outString += y;
    	InputDate.innerHTML = outString;
    	setTimeout("UpdateTime()",1000);
    }

    Надо было человеку время написать на сайте, текущее...
    И ОНО сделало ЭТО.
    И этот код встречается на каждой странице проекта. Постоянно 1 и тот же. А верстку лучше даже не смотреть....
    Уже около часа не знаю с какой стороны подобраться к этому поделию(в основном к верстке)...

    Запостил: Dart_Sergius, 19 Июля 2014

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

    • эти еще и идут неверно. Капитан
      Ответить
      • Но логика, замечу, была верная.
        "X < Y аналогично X <= Z, где Y и Z различаются на единицу"
        Ответить
        • > где Y и Z различаются на единицу
          Зачем так сложно? :)

          Для целых чисел X < Y эквивалентно X <= Z, где Y = Z + 1
          Ответить
          • > Зачем так сложно? :)
            У меня в голове примерно это и хранится. И у автора кода, видимо.
            А +1 или -1 ставить при замене одного неравенства на другое, определяется подстановкой при написании кода.

            >> if(sec >=58)
            >> if(min>59)
            Но иногда не выходит...
            Ответить
            • А я даже не храню это в памяти... Просто представляю себе последнее число из нужного отрезка (например 59) и пишу <= 59 или < 60. Как-то так.
              Ответить
              • похоже на спор - а с какой ноги вы встаете. Я вообще никогда об этом не думал. Автоматика
                Ответить
                • Ну вот в этом треде заставили задуматься ;)

                  P.S. Как бы не случилось как с бородой из анекдота...
                  Ответить
                  • не поддавайся на провокации! сегодня ты задумываешься о написании циклов, а завтра пишешь системный код на пхп)
                    Ответить
                    • > системный код на пхп
                      Драйверы, обменивающиеся между собой HTTP запросами. Ня ^_^
                      Ответить
                      • Все параметры через get-post строкой передаются. И никакого байтоебства, типизации и секса с памятью.
                        Ответить
                      • Покайтесь, вебсокеты грядут!
                        Ответить
                        • Запасаемся попкорном и ждём статей "Микроядро на вебсокетах в 30 строк JavaScript"
                          Ответить
                          • Вебсокеты не могут цепляться друг к другу, емнип. Тут надо ВебРТЦ...
                            Ответить
                            • Начинаем писать?
                              Ответить
                              • Ну если какой-нибудь v8 сможет работать в bare metal режиме без операционки - why not? :)
                                Ответить
                                • Если нужны добровольцы - энтузиасты - я готов:)
                                  Ответить
                                  • > я готов
                                    Пилите, шура, пилите. Старый я стал ;(
                                    Ответить
                                    • Не, я JS не умею. Начинайте, а я подхвачу
                                      Ответить
                                      • > Не, я JS не умею
                                        Да тут хардкорное сишко- или крестоблядство, а не жс...
                                        Ответить
                                        • тем более. В этих областях я нуб. Есть только энтузиазм.)
                                          Ответить
                                          • > Есть только энтузиазм.

                                            Эта штука очень быстро иссякает. Лучше помоги какому-нибудь опен-сорсному проекту. Больше пользы и тебе и другим будет.
                                            Ответить
                                            • Так если вы начнете пилить микроядро это и будет проект. А если нет - у меня тут аппликативные функторы ждут возможности потрахать мозг)
                                              Ответить
                                              • gnu-шники уже больше 20 лет пилят микроядро, нафига нам этим заниматься? :)
                                                Очевидно, что дело - тухляк.

                                                Читай лучше про функторы.
                                                Ответить
                                                • Придется мне с шарпа на немерле переходить такими темпами)
                                                  Ответить
                                          • Ну я себе это представляю как-то так (в самом простом случае):
                                            - у нас будет только один инстанс какого-нибудь v8 (чтобы не ебаться с планировщиком) и одно адресное пространство
                                            - мапаем всю оперативку большим непрерывным куском, пускай сборщик мусора там резвится в гордом одиночестве
                                            - мутим WebRTC интерфейс для обычных портов, замапаных в память портов и прерываний

                                            А дальше можно кодить на чистом js...
                                            Ответить
                                            • >Ну я себе это представляю как-то так (в самом простом случае):
                                              > у нас будет только один инстанс какого-нибудь v8 (чтобы не ебаться с планировщиком) и одно адресное пространство
                                              Мне нравится путь по которому пошёл bellard.org/jslinux
                                              Ответить
                • Соскакиваю обеими с торца кровати.
                  Ответить
              • > А я даже не храню это в памяти...
                Когда кто-то напишет for(i=0; i<=256; ++i), у Вас возникнет микробатхёрт, доказывающий, что в памяти оно (и не только оно) хранится :)
                Ответить
                • > у Вас возникнет микробатхёрт
                  Ну да, захочется поглядеть на то, что же представляет собой это i.
                  Ответить
                  • Первое, о чём я подумаю, а не однобайтовое ли значение хранится в i.
                    Ответить
      • да, идут неверно. Показывают иногда 48 часов)
        Ответить
    • Раздел VII. Преступления против личности
        Глава 16. Преступления против жизни и здоровья
          Статья 110. Доведение до самоубийства
      Ответить
      • Статья 148.1.
        Публичные действия, выражающие явное неуважение к обществу и совершенные в целях оскорбления чувств верующих.

        До года тюрьмы
        Ответить
    • А как же часы, дни, месяцы, года? Я бы посмотрел на свич выбора дня
      Ответить
      • А где тут switch?
        Ответить
        • ну всмысле было бы
          if (d == 28 && m == "febrary")...

          Свич не тот что слово зарезервированное, а именно как распределитель
          Ответить
          • А че там сложного то?
            if (m in ['jan', 'mar', 'may', 'jul', 'aug', 'oct', 'dec'] && d == 31 ||
                m in ['apr', 'jun', 'sep', 'nov'] && d == 30 ||
                m == 'feb' && (d == (y % 4 == 0 && (y % 100 != 0 || y % 400 == 0) ? 29 : 28)))
            {
                d = 1;
                if (m == 'dec') {
                    m = 'jan';
                    y++;
                } else {
                    m = months[months.indexOf(m) + 1];
                }
            }
            Ответить
            • Тут чувак пишет

              if(sec >=58)

              мне интересна его версия. На твой счет то я не сомневаюсь)
              Ответить
              • Ну там есть глобальный массив month.
                Ну и да, день не меняется. А месяц тем более.
                Заполняются стартовые данные при обновлении с сервера (WARNING: JSP)
                <%
                "hour="HOUR";"
                "min="MINUTE";"
                "sec="SECOND";"
                "y="YEAR";"
                "mo="MONTH-1";"
                "d="DAY";"
                %>

                (/WARNING: JSP)

                И это код взять из электронной очереди, которые ставят в сбербанках всяких...
                Ответить
                • а за окошком месяц май,месяц май,круглый год
                  Ответить
                  • Ну на ночь то эти терминалы отключают. Так что не так страшен черт, как его малюют...
                    Ответить
                    • ну с этим я ещё мог смириться, НО ВЕРСТКА!!! От чуваков, которые совершенно не знают что такое CSS, делают все на таблицах, и используют JS, но не знают про AJAX запросы, и потому используют автообновляющиеся IFRAME.
                      Даже мне, вполне далекому от сайтостроения человеку - это было ужасно.
                      Ответить
                      • >>но не знают про AJAX запросы, и потому используют автообновляющиеся IFRAME

                        //-*)
                        Ответить
                      • > Даже мне, вполне далекому от сайтостроения человеку - это было ужасно.
                        Да скорее всего такие же как мы с вами, далекие от сайтостроения, и верстали этот сайт, ибо начальство решило сэкономить на отдельных верстале и фронтендщике. У нас сейчас похожая ситуация - сайт с горем-пополам мутили DBA и системщик (ваш покорный слуга)... А автор приведенного вами кода, видимо, с хтмл и жс разбирался лет 10 назад, вот и верстал, как умел...
                        Ответить
                        • Это были буйные 2010ые, мы верстали как могли
                          Ответить
                      • 1. Автообновляющиеся IFRAME нужны, когда требуется отправить запрос на другой сервер, потому что политика безопасности браузера зарубит кроссдоменный AJAX.

                        А если нужно отправить POST-запрос на чужой сервер, то даже вставляют невидимые формы с автоматическим кликом.

                        2. Дивная вёрстка ради дивов тоже не нужна. Иногда доходит до маразма, когда даже таблицы чисел а ля эксель перевёрстывают на дивах.

                        Применять или не применять таблицы, зависит от того, какой конечный результат хотим получить. Прелесть блоков в том, что они могут автоматически переноситься на новую строку. Если же нужен жёсткий каркас, таблицей проще.

                        И да, <div style="display:table-cell"> — это тоже таблица, но только несемантическая.

                        3. А вот насчёт CSS согласен. За незнание CSS нужно отлучать от вёрстки!
                        Ответить
                        • > если нужно отправить POST-запрос на чужой сервер

                          Или даже просто отправить файлы без сабмита страницы...
                          Ответить

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