http://blog.urbantastic.com/post/81336210/tech-tuesday-the-fiddly-bitsКаковы преимущества обслуживания статического HTML и создания контента с помощью AJAX/JSON?
Хит из Urbantastic пишет о своей системе генерации HTML:
Все HTML в Urbantastic полностью статичным. Все динамические данные отправляются через AJAX в формате JSON, а затем объединены с HTML с помощью Javascript. Иными словами, серверное программное обеспечение для Urbantastic производит и потребляет исключительно JSON. HTML, CSS, Javascript и изображения отправляются через другую службу (ванильный сервер Nginx).
Я думаю, что это интересная модель, поскольку она отделяет представление от данных физически. Я не эксперт в области архитектуры, но кажется, что будет скачок эффективности и стабильности.
Однако следующие проблемы со мной:
[субъективное] Clojure является чрезвычайно мощным; Javascript нет. Написание всего контента на языке, создаваемом для других целей, создаст некоторую боль (представьте себе, что код Javascript-типа в CSS). Если у него нет макросистемы для генерации Javascript, Heath, вероятно, до постоянного переключения между JavaScript и Clojure. У него также будет много JS-кода; вероятно, намного больше, чем Clojure. Это может быть не очень хорошо с точки зрения силы, быстрого развития, лаконичности и всего, что мы смотрим при переключении на Lang-based langauges.
[performance] Я не уверен в этом, но рендеринг всего на машине пользователя может отставать.
[accessibility] Если у вас отключен JS, вы не можете использовать сайт вообще.
[accessibility # 2] Я подозреваю, что много динамических данных, заполняемых JavaScript, создаст проблемы с несколькими браузерами.
Отзывы могут комментировать? Мне было бы интересно узнать ваше мнение об этом типе архитектуры.
Ссылки:
Javascript IS чрезвычайно мощный. Я имею в виду, что вы не должны понимать Javascript. Он предоставляет больше парадигм и вариантов, чем C++ или Lisp. Ему не хватает скорости, но для объема работы это не имеет значения. –
Любое из недостатков скорости в любом случае компенсирует накладные расходы данных при передаче полных страниц. (по крайней мере, по крайней мере). Javascript дает вам возможность сделать массивный перекрестный кластер с 0 усилиями (зрители выполняют работу;)) –
Скорость относительно восприятия не является проблемой. Это граница IO, которая все еще проблема. – annakata