Pull to refresh

Comments 47

UFO just landed and posted this here
Да ладно, а как же корпоративные блоги? А как же баннеры? А что за блог «Я пиарюсь»?
Когда это хабр перестал быть рекламной площадкой?
>И в этой статье мы докажем Вам, что AJAX сайты лучше обычных.
А почему тогда интересно многие сайты неаяксовые?
хабр, контакт, фейсбук итп? м?
«Это все НЕСПРОСТА» (с)
Когда нечего по делу сказать — говорят в стиле «наш отбеливатель лучше обычного на 200%». Маркетинг, аднака!
А мы за аякс будем считать только обмен XMLем? Например, вконтакт общается с помощью JSON. Да и за хабром грешок.
имеется ввиду именно сабж статьи — обмен XMLем.
Если рассматривать смену страниц, то в наших первых проектах мы действительно получали от сервера только HTML (так называемый AHAH подход), но в последних проектах мы перешли на JSON в формате:

{
title: 'заголовок страницы',
data: {… }, // опционально, какая-нибудь дополнительная информация с сервера в формате JSON
content: '...' // здесь как раз HTML загружаемой страницы
}

Это более гибкая схема.
«А почему тогда интересно многие сайты неаяксовые?»

Мы ответили на этот вопрос после предложения «Почему же идея асинхронно работающих сайтов ещё не получила массового распространения среди веб — разработчиков?»

Ребята, кто-нибудь вообще читал статью до конца?
«А почему тогда интересно многие сайты неаяксовые?»

Мы ответили на этот вопрос в статье, после предложения «Почему же идея асинхронно работающих сайтов ещё не получила массового распространения среди веб — разработчиков? „

Ребята, кто-нибудь вообще читал статью до конца?
Вы предусматриваете gracefull degradation?
Вернее, так: в какой степени вы… вопрос выше…
Мы не тестировали наши сайты на совсем старых браузерах и в основном мы ориентируемся на FF2+, IE6+, Opera9+, Safari3+, Chrome (постольку поскольку), но я думаю этого будет достаточно для того, чтоб удовлетворить 98% пользователей сделанных нами сайтов. Если же говорить о просмотре сайта с выключенным js, то мы делаем noscript версию для пользователей (для поисковиков она всегда делается) по запросу клиента. Конечно с выключенным js не все возможности сайта доступны, но по крайней мере просматривать контент можно.
Просмотрев сайты-примеры можно и самому ответить на вопрос ;)
Как мило, сайты не работающие с выключенным javascript'ом вообще. Даже не отображающие сообщение пользователю что нужно его включить.
И как указано выше, хабр это не место для такой рекламы.
По дефолту мы показываем noscript версию сайта только поисковикам, предполагая, что учитывая сферы деятельности большинства наших заказчиков, уж очень мало к ним на сайт будет ходить пользователей с выключенным js. Мы делаем отображение сайта с выключенным js только по просьбе заказчика, но специально для Вас включили noscript версию на всех сайтах :)
Ну что вы, зачем было так стараться :) Я выключал javascript специально для Вас.
www.stroydelo-kuban.ru/#sendmail/, странно не видно формы отправки письма. Причем без js видно фразу написать письмо, с ним и ее нет. Opera 9.6.
Просто я думаю что noscript версию стоит включать всегда, мало ли что. Зато мнение о вас как о тех кто заботиться о пользователях будет. ^_^
Спасибо за баг на стройделе, уже разбираемся.

Насчёт noscript версии Вы правы конечно, в будущих проектах мы будем делать её не опционально, а by default.
На втором сайте по ссылке при загрузке выводится слева сверху «loading».
Эх вы.
Мне, как пользователю не нравится AJAX. Мне нравятся простые сайты, как Хабр.
наверное super имел ввиду сайты, где контент не подгружается AJAXом. введь на хабре только допюфункции реализоаниы через аякс?
ваш К.О.
Просто так, на будущее… На Хабре не та аудитория, которой надо объяснять что такое AJAX и в чем его преимущества. Более того, как вы могли заметить, еще и недостатки такого подхода расскажут. И вовсе необязательно писать длинные красивые тексты по этому поводу — достаточно ссылки на крутое портфолио :)
Мы не пытаемся объяснить хабраобщественности что такое AJAX, с этим прекрасно справился Джесси Джеймс Гарретт 4.5 года назад. Более того, мы даже сами знаем недостатки такого подхода (мы кратко сослались на эти недостатки после предложения «Почему же идея асинхронно работающих сайтов ещё не получила массового распространения среди веб — разработчиков?»). И даже более того, описывая Starcode Engine мы рассказали, с какими из этих недостатков мы справились. Не спорю, осталось 2 основных момента, над которыми мы ещё работаем:

— большой вес .js файлов
— не работающие кнопки «назад» и «вперёд» в браузере

В разработанных нами сайтах мы СОВСЕМ отказываемся от перезагрузки страницы (естественно, исключая случай, когда у пользователя отключён js в браузере), и в данной статье мы попытались объяснить, чем такие сайты лучше обычных. Цель статьи была не в написании длинного\красивого SEO\PR текста, а в том, чтоб узнать мнение Хабра об идее сайтов, работающих без перезагрузки страницы. Цепляются к чему угодно, даже к плохим картинкам моющих средств, но критики по существу, к сожалению, не очень много

P.S. насчёт «ссылки на крутое портфолио» тут уж не поспоришь, но, думаю, если бы мы всю статью рассказывали какая мы молодая и какая перспективная команда веб — разработчиков, нас бы жгли ещё больше ;)
Вы забыли упомянуть о еще одном недостатке, который, пожалуй, перевешивает вами упомянутые — невозможно дать ссылку на конкретную страницу (зависит от реализации, конечно, но тем не менее встречается очень часто). Приходится кидать ссылку на сайт вместе с инструкцией куда потом клацать надо. Напрягает.
Хотите заказать дизайн приложения для iPhone? Пожалуйста: www.akomarov.com/contact/

Не знаете как применять эндоштифты? Не беда! www.rudent.info/production/endoshtift/p3/

Хотите купить теплоизоляционные материалы в Краснодаре? Легко! www.stroydelo-kuban.ru/production/isocom/

P.S. ссылки можно кидать как с #, так и без, т.е. www.akomarov.com/#contact/ == www.akomarov.com/contact/
UFO just landed and posted this here
Спасибо за этот коммент! В следующей статье мы опубликуем наш инструмент для для удобной упаковки js файлов.
UFO just landed and posted this here
Тёзки AJAX:

3 футбольных клуба:
— в Амстердаме, Голландия
— в Кейптауне, ЮАР
— в Рабате, Мальта

Международный бренд, под которым продают моющие средства ( www.ajax.se )

Город в Канаде

Операция «Аякс» — организованный спецлужбами Великобритании и США государственный переворот в Иране.

Аякс Великий — в древнегреческой мифологии греческий герой, участвовавший в осаде Трои.

И ещё, наверно, куча всего :)
UFO just landed and posted this here
Сайт должен работать как с javascript так и без него, и поисковики будут это хавать!
наши сайты нормально индексируются поисковиками, и мы упоминали об этом в статье
Картинки с моющими средствами просто ужасные. Если бы мне даже надо были ваши услуги, только из-за них бы уже не стал с вами сотрудничать.
Это программеры а не дизайнеры!
> Starcode Engine – это CMS и _Javascript фреймворк_
> www.nikitaeremin.com – самый первый сайт, сделанный на нашем движке
Увидел только jQuery.

Не надо быть крутым программистом, чтобы наладить
$("#content").load("/page.html #content");

Только анимация. И та на jQuery.

Маркетинговая фигня.
Если бы Вы посмотрели внимательней, Вы бы увидели:

Скрипт нашего js движка (раньше он назывался Persik Engine):
www.nikitaeremin.com/js/persik_.js

Объект инициализации движка:
www.nikitaeremin.com/js/json.js

Файл коллбэков с описанием анимации на сайте:
www.nikitaeremin.com/js/action.js

Да, анимация на jQuery.
Нет, к сожалению если Вы захотите сделать подобный сайт, наладкой $("#content").load(); дело не ограничится
А вы храбрые :)

Наобум сходил по ссылке — RuDent некорректно отображается в Chrome 4.0 (новости съезжают вниз)
Чего уж напали на авторов. Люди предлагают свой продукт, свои услуги. Да, реклама. Но они же небесплатно рекламируются, платят кармой %)))

Ради интереса зашел на один из предложенных сайтов, просто чтобы оценить реализацию.
А вот кнопки браузера «Back» и «Forward» не работают. Ссылки в адресной строке меняются, а содержание страниц не перегружаются. Недостаточек AJAX?
И, кстати, если вы задумаете от этого недостатка избавиться, пожалуйста, вспомните, что браузеры не перегружают обычные страницы при переходах «вперед-назад», берут из кэша. Сделаете аяксовый аналог браузера? %)))
Тогда еще просьба: на индикатор «loading», плиз, индикатор прогресса с процентиками. Как в браузерах.
И еще — при подгрузке нового содержания обычные браузеры показывают страницу «сверху». Это привычное поведение. На вашем сайте обнаружилось, если страница подкручена вниз, при нажатии ссылок скролл остается на месте, приходится ручками тягать наверх.

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

Яндекс про этот сайт знает, это хорошо, ссылки работают. Только «сохраненная страница» пустая.

P.S. Смотрел www.stroydelo-kuban.ru, мой браузер FF3.5
«А вот кнопки браузера «Back» и «Forward» не работают. Ссылки в адресной строке меняются, а содержание страниц не перегружаются. Недостаточек AJAX?
И, кстати, если вы задумаете от этого недостатка избавиться, пожалуйста, вспомните, что браузеры не перегружают обычные страницы при переходах «вперед-назад», берут из кэша. Сделаете аяксовый аналог браузера? %)))»

Действительно, эта проблема пока остаётся открытой, но мы как раз сейчас пишем модуль нашего js фреймворка, который решает её. Раз уж Вы спросили, углубимся в вопрос. Если при переходе по внутренним ссылкам сайта меняется только location.hash (как в нашем случае), при нажатии «вперёд» или «назад» браузер только меняет hash в адресной строке на предыдущее\следующее значение, и не перегружает страницу вообще (Вы как раз описали этот момент). Чтобы «вперёд» и «назад» заработали нужно добавить listener, который бы по определённому таймауту проверял location.hash на предмет изменения и загружал бы соответствующую страницу. Есть даже такой плагин для jQuery: www.stilbuero.de/jquery/history/
В нашем случае техническая проблема состоит в том, чтоб отличать изменения location.hash, вызванные нажатием «вперёд» или «назад» в браузере, от изменений, которые совершает пользователь, путешествуя по внутренним ссылкам сайта. Но скоро всё будет :)

«Тогда еще просьба: на индикатор «loading», плиз, индикатор прогресса с процентиками. Как в браузерах.»

Отличная идея, мы подумаем над реализацией.

«И еще — при подгрузке нового содержания обычные браузеры показывают страницу «сверху». Это привычное поведение. На вашем сайте обнаружилось, если страница подкручена вниз, при нажатии ссылок скролл остается на месте, приходится ручками тягать наверх.»

Уже дописываем такую фичу к движку.
На самом деле я иронизировал. %)))
Скажите, вы действительно считаете, что ваши усилия «повторить браузер» и переложить весь сайт на AJAX имеет смысл? Чтобы в итоге получить «более красивую» смену страниц? Кроме этого другой пользы для пользователя (сорри за тавтологию) я найти не смог. Уменьшение перегоняемого трафика в счет не беру, в случае рассмотренного мной сайта — это экономия на оберточном HTML, экономия не слишком значительная. Зато взамен пользователь получает целый букет побочных явлений — начиная с того, о чем я уже писал (ну, допустим, эти недочеты вы реализуете в следующих версиях), и заканчивая дополнительной нагрузкой на браузер и общим снижением производительности (представим себе 20-30 «ваших» сайтов, открытых во вкладках браузера, каждый из которых по таймауту проверяет состояние браузера?)

На мой взгляд, каждой технологии — свое место. AJAX может быть вполне оправдан (примеров можно привести уйму), но вот попытка заменить стандартное поведение (пользователя? или браузера?) — мне кажется, это утопия.
«в случае рассмотренного мной сайта — это экономия на оберточном HTML, экономия не слишком значительная»

экономия ведь не только на HTML, все js скрипты, все стили, все картинки (не касающиеся отдельной статьи) загружаются только один раз. Если при при просмотре наших сайтов с выключенным js каждая страница весит 100Кб, то в случае рабтоающего js, после инициализации приложения для каждой страницы загружается 7-8Кб (только HTML и картинки отдельной статьи). Да, не спорю, сейчас все js файлы одного проекта весят очень много, но мы уже дописываем инструмент, который позволяет удобно и быстро сжимать сразу несколько js файлов, и, допустим, 200Кб js превратится в 60

«представим себе 20-30 «ваших» сайтов, открытых во вкладках браузера, каждый из которых по таймауту проверяет состояние браузера?»

Вы мне льстите :)

«AJAX может быть вполне оправдан (примеров можно привести уйму), но вот попытка заменить стандартное поведение (пользователя? или браузера?) — мне кажется, это утопия.»

А как же gmail? он работает без перезагрузки страницы. Или только Гуглу позволено верить в утопию?
В биллиарде это называется «подставить шар» %)))

1. Возможно, открою вам Америку. Браузеры кэшируют статичное содержание страниц. Картинки, js, css — все они загружаются при открытии первой страницы и при просмотре остальных страниц сайта «вытаскиваются» из кэша без дополнительной загрузки. Так что в этом смысле нет никакой разницы, открывать новое содержание AJAX-ом или открывать новую страницу (разве что размер оберточного html во втором случае, конечно же, будет больше, но не намного)

2. По поводу GMail — очень удачный пример, но как раз не в вашу пользу. GMail — это не обычный сайт, это веб-приложение, или сервис. А для сервисов как раз применение AJAX весьма и весьма оправданно.
>А вот кнопки браузера «Back» и «Forward» не работают. Ссылки в адресной строке меняются, а содержание страниц не перегружаются.
> Недостаточек AJAX?

Есть способ это забороть (таймер на window.location), но в продакшн выходить с таким промахом нельзя, это epic fail.
Бр-р-р-р-р… Какой-то рекламный перебор. Здесь прилично показать собственный фреймворк, похвастаться, получить порцию ЦУ, но нехорошо промывать мозги людям, и без того Евангелистов развелось…

Да и ничего особенного-то на сайтах не было, в пределах возможностей любого приличного javascript-ста и верстальщика.
Sign up to leave a comment.

Articles