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

    +159

    1. 1
    window.setTimeout(function(){window.location.reload();}, 34740000);

    Для терпеливых.

    Запостил: Stallman, 08 Сентября 2013

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

    • > 34740000
      9 часов 39 минут. Странный интервал. Некруглый. Почему?
      Ответить
    • window.setTimeout(window.location.reload, 34740000);

      Так можно?
      Ответить
      • нельзя. надо, чтобы у reload было в this window.location.

        если есть Function.prototype.bind, можно
        window.setTimeout(window.location.reload.bind(window.location), 34740000);
        Ответить
        • Просто аноним привык, что python делает bind за него
          http://ideone.com/7EWGWL
          Ответить
          • о_О

            Да, я в метапрограммировании не силен.
            Ответить
            • Это ещё не мета, всего лишь твои любимые лямбды (точнее, замыкания), о которых всё время говоришь.
              Ответить
              • Метапрограммирование: Класс объекта это объект класса class.

                UPD: На инглише будет лучше: "Objects's class is an object of class class"
                Ответить
              • Биндинг - это метапрограммирование, не?
                Ответить
                • Вроде нет, обыденная функциональщина.
                  Ответить
                  • Если this по-сути неявный аргумент, является ли биндинг частным случаем каррирования?
                    Ответить
                    • Да. А в питоне self явный, так что там тем более. Только, имхо, не частным случаем каррирования, а просто каррированием.

                      Ибо в общем случае наоборот - каррирование это частный случай биндинга произвольных аргументов (например как в бусте).
                      Ответить
                  • Метопрограммирование - это обращение к классу как к обьекту. Короче, биндинг не виден для юзера, будем считать, что это метапрограммирование.
                    Ответить
                    • >Метопрограммирование - это обращение к классу как к обьекту

                      А что, теперь Static - это метопрограммирование?
                      Ответить
                • Смысл приставики "мета-":
                  В русском языке можно дословно переводить либо как "около-", либо как "меняющий".
                  Меняющий - дословный перевод с греческого (например в "метаморфоза", "метаболизм"), "около-" в словах заимствованых из английского.
                  Например, metagame в онлайн играх - форумы, сборники информации об игре и т.п.
                  Metadata - данные про (другие) данные, например, описание их структуры, авторства и т.д.
                  Метапрограммирование - любые инструменты, которые напрямую не относятся к написанию программ. Например параметры компилятора. Говнопрепроцессор ЦПП. Даже просто комментарии в коде - тоже метапрограммирование.
                  Ответить
    • Сдаётся мне setTimeout обрабатывает значения лишь до 32765 мс, не?
      Ответить
      • не
        Ответить
        • Какие ваши доказательства?
          Ответить
          • setTimeout('alert("прошло джве минуты")', 120000)
            Ответить
            • setTimeout('alert("прошло много времени")', 4294967296)
              Ответить
              • Мда. Знаковый инт? ;)

                Но один хрен, предел не жалкие 32765мс, указанные bot'ом, а все-таки 2147483648 = 2^31мс. А это в районе 24 суток.
                Ответить
                • Черт возьми, надо же было встретиться такому глупому ограничению в хрен-вспомнишь-каком-браузере. Теперь весь код придётся рефакторить.
                  Ответить
                  • > Теперь весь код придётся рефакторить.
                    Ну для корявых браузеров можно написать заглушку, которая спит урывками, и засунуть ее вместо настоящего setTimeout, если задетектили такой браузер. Если я конечно не туплю, и так можно сделать. Все-таки многие багофичи говнобраузеров фиксят подобным образом...
                    Ответить
                    • Вот именно так. Именно такое заблуждение у меня повсеместно намазано.
                      Весь код - в смысле - во всех моих двух проектах.
                      Ответить
          • кокаинум!
            Ответить

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