RSS Мои друзья Контакты

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

Вчера, на одном из старых сайтов я увидел номера телефонов в виде рисунков, и подумал - какая глупость! Но потом нашел оправдание человеку :) Скорее всего он не имел достаточно навыков, чтобы сделать это "правильно". Но позже до меня дошло на сколько это на самом деле гениально!

Как оказалось создание web приложения на Ruby без использования фреймворков, вроде Rails или Sinatra, не так уж просто. Для этого необходимо полностью реализовать поддержку протокола HTTP, т.е. написать парсер заголовков и тела запроса, а также отдавать результат клиенту при помощи обычной функции print. Но все же, не все так плохо и есть дорожка выстеленная благими намерениями - это Rack.

Одним из моих подручных инструментов для реализации single page application-ов стал Knockout. И я хочу поделится некоторыми трюками для написания хорошего кода с использованием этого чудесного фреймворка.

Knockout позволяет расширять свой функционал, а это значит, что конечный пользователь не ограничен использованием только стандартных байндингов, таких как click, value, text, etc. Даже не используя своих сверхспособностей программиста, можно без особых усилий написать байндинг, который реализует стандартное grid поведение (сортировка, удаление, добавление, пейджинг).

Мультиязычность уже давно стала обычным делом для сайтов направленных на международную аудиторию. Благодаря этому, пользователь может выбрать язык (соответственно и локализацию), которая больше подходит ему. В Magento вопрос интернационализации немного не очевиден, поэтому стоит рассмотреть его более детально

Никакое приложение не может быть востребованным и популярным, если оно не отвечает на действия пользователя. KO предоставляет ряд инструментов (байндингов) для обработки разных событий и управления полями формы.

По аналогии большинству языков программирования в Knockout реализованы основные управляющие конструкции: foreach, if, ifnot и with. foreach будет полезен при итерировании по массиву значений, if - для принятия какого-либо решения и with - для создания определенного контекста выполнения. Рассмотрим их более детально.

KO построен по принципам MVVM паттерна, т.е. предоставляет возможность изменять View посредством изменения ViewModel. А делает он это при помощи байндингов. Рассмотрим какие из них отвечают за управление видимостью и содержимым элементов

Теперь уже известно, что нужно использовать метод observable для свойства, чтобы иметь возможность отвечать на его изменения. Если же нужно реагировать на изменения в коллекции (массиве), то используюется observableArray
1 2 3 4 5