Статьи

Трон: HTML5 игра в 219 байт

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

Я уже упоминал ряд 1KB конкурсов JavaScript и CSS . Было несколько замечательных записей, но лишь немногие из них столь же дружественны к полосе пропускания, как 219 байт Tron . Да, 219 байт, включая весь код HTML5 и JavaScript.

Проект начался как вызов, и несколько сотрудников внесли свой вклад в упражнение по бритью памяти. Вы можете играть здесь — используйте клавиши i, j, k и l, чтобы начать и управлять. Я обнаружил, что игра работает лучше всего в Opera, но в Chrome и Safari все хорошо. Firefox и IE9 не совместимы.

Хотя он никогда не выиграет игровых наград и не заменит ваши сеансы Call of Duty , это впечатляющее упражнение в умственной ловкости. Разработчики задокументировали каждую «строку» кода, и есть несколько полезных советов и приемов, которые вы можете применить к своему программированию на JavaScript.

  • Во всех браузерах, кроме Firefox, назначение идентификатора элементу предоставляет объект узла как переменную в JavaScript, например
    
    <div id="test">Hello</div>
    <script>test.textContent = "Goodbye";</script>
    
  • Браузеры с радостью примут атрибуты тега без кавычек, если они не содержат символов>, пробела или табуляции.
  • Переменные могут быть инициализированы в вызовах функций, например
     
    myFunction(a=1, b=2, c=3);
    
  • Двоичный код & может использоваться вместо &&, если обе стороны оператора являются логическими значениями.
  • body

Помните, что Tron выводит сохранение байтов на экстремальный уровень. Некоторые из этих советов полезны, но вы всегда должны взвесить это:

  1. Функциональность. Например, только потому, что onkeyup короче, чем onkeydown, это не обязательно делает его наиболее подходящим событием для использования.
  2. Читаемость. Без документации код Трона был бы невозможен для понимания. Немногие разработчики будут настойчиво пытаться понять это.
  3. Совместимость. Я выступаю за кросс-браузерную работу и подозреваю, что IE9 и Firefox могут быть исправлены с помощью нескольких дополнительных байтов.

219 Байт Трон поражает. Хотя вы, возможно, никогда не примете многие из этих методов, вам следует подумать о том, что возможно, прежде чем добавлять на свои страницы еще один мегабайт лишнего объема.