Хочу немного рассказать про технологию FullAjax и ее применении на сайте под ICMS. Глубоко в теорию уходить не буду, расскажу в общих чертах. Кому будет интересны подробности — спрашивайте в комментах.
Плюсы использования:
1. ускорение загрузки страницы у посетителей за счет того, что обновляется только нужная часть страницы (например, центральный блок с контентом).
2. уменьшение нагрузки на сервер по той же причине — уменьшается объем того, что нужно формировать. Вместо вывода шапки, сайдбаров, центра и футера можно вывести только центр (остальное остается как есть и не меняется)
3. В отличии от простого аякса (метод ajax в библиотеке jquery и другие) меняется адрес страницы. То есть на любом этапе блуждания по сайту — вы можете копировать URL из адресной строки и послать другу — у него все откроется и он попадет на ту же самую страницу.
4. Работает кнопка "Назад" в браузере. А вот, например, при переходе с одной страницы на другую при просмотре "ленты активности" или комментариев кнопка "Назад" вводит посетителя в заблуждения — уводя совсем не туда, где он был до этого (то есть на предыдущей странице).
5. Никаких минусов в плане индексации поисковиками — сайт индексируется так же, как и без внедрения этой технологии.
На IE не подключаю fullajax — не могу пока побороть некоторые проблемы. Так что пользователи этого "чудо" браузера открывают все на новой странице.
Пример работы сайта, который работает на fullajax+ICMS -
Откройте, погуляйте по статьям, понажимайте кнопку "Назад". Важно: компонент "Пользователи" работает без fullajax — то есть все, что связано с пользователями(профиль, личные сообщения и тд) открывается в новой странице. Но в перспективе весь сайт будет полностью аяксовый.
И очень кратко про подключение:
1. подключить файл библиотеки obf.fullajax.js (закинул его в свои файлы если интересно)
2. выполнить скрипт (реальный пример и немного комментариев)
Комментарии очень кратко: Выполнять fullajax для всех страниц (url:['/']), методом post передавать параметр ax=1 (для того, чтобы в шаблоне понять открывается он аяксом или нет). Загружать контент в div с id = cmsbody. Заменять в адресе конструкцию по умолчанию(:ax:ID-Tab-Object:) на более читаемый "ajax". Страницы {'/login','/registration','/logout','/users'} всегда открывать в новом окне, без аякса.
Разработчики — Руслан Синицкий и Александр Лозовюк
Еще несколько ссылок по теме(статьи от разработчиков на хабрахабре):
Прямые ссылки на AJAX веб-сайтах – наша технология Fullajax Direct Link.
Fly AJAX — пишите меньше, имейте больше.
Полный AJAX. Теория и Примеры. Фишки и Фичи
PS Я не имею никакого отношения к разработчиками и просто использую данную библиотеку у себя на проектах.
Плюсы использования:
1. ускорение загрузки страницы у посетителей за счет того, что обновляется только нужная часть страницы (например, центральный блок с контентом).
2. уменьшение нагрузки на сервер по той же причине — уменьшается объем того, что нужно формировать. Вместо вывода шапки, сайдбаров, центра и футера можно вывести только центр (остальное остается как есть и не меняется)
3. В отличии от простого аякса (метод ajax в библиотеке jquery и другие) меняется адрес страницы. То есть на любом этапе блуждания по сайту — вы можете копировать URL из адресной строки и послать другу — у него все откроется и он попадет на ту же самую страницу.
4. Работает кнопка "Назад" в браузере. А вот, например, при переходе с одной страницы на другую при просмотре "ленты активности" или комментариев кнопка "Назад" вводит посетителя в заблуждения — уводя совсем не туда, где он был до этого (то есть на предыдущей странице).
5. Никаких минусов в плане индексации поисковиками — сайт индексируется так же, как и без внедрения этой технологии.
На IE не подключаю fullajax — не могу пока побороть некоторые проблемы. Так что пользователи этого "чудо" браузера открывают все на новой странице.
Пример работы сайта, который работает на fullajax+ICMS -
Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст
Откройте, погуляйте по статьям, понажимайте кнопку "Назад". Важно: компонент "Пользователи" работает без fullajax — то есть все, что связано с пользователями(профиль, личные сообщения и тд) открывается в новой странице. Но в перспективе весь сайт будет полностью аяксовый.
И очень кратко про подключение:
1. подключить файл библиотеки obf.fullajax.js (закинул его в свои файлы если интересно)
2. выполнить скрипт (реальный пример и немного комментариев)
SRAX.Filter.add({id:'ID-Tab-Object', url:['/'],method:'post',params:'ax=1'}); SRAX.Model2Blocks['ID-Tab-Object'] = {'cmsbody':'cmsbody'}; SRAX.linkEqual[':ax:ID-Tab-Object:'] = 'ajax'; SRAX.Filter.add({url: ['/login','/registration','/logout','/users'], type:'nowrap'}); SRAX.directLink();
Разработчики — Руслан Синицкий и Александр Лозовюк
Еще несколько ссылок по теме(статьи от разработчиков на хабрахабре):
Прямые ссылки на AJAX веб-сайтах – наша технология Fullajax Direct Link.
Fly AJAX — пишите меньше, имейте больше.
Полный AJAX. Теория и Примеры. Фишки и Фичи
PS Я не имею никакого отношения к разработчиками и просто использую данную библиотеку у себя на проектах.
Реклама #
st.Puh 12 лет назад #
SJen 12 лет назад #
закинул в свои файлы
Олег Васильевич я 12 лет назад #
SJen 12 лет назад #
Jestik 12 лет назад #
Black-Raven90 12 лет назад #
SJen 12 лет назад #
Сейчас все работает как надо, то есть как обычно
st.Puh 12 лет назад #
SJen 12 лет назад #
нужно прописать еще нужный блок
SJen 12 лет назад #
st.Puh 12 лет назад #
SJen 12 лет назад #
Ну и надо править файл шаблона - чтобы fullajax знал, что именно вам нужно загружать - я про
SJen 12 лет назад #
WALTERZ 12 лет назад #
Было бы здорово
SJen 12 лет назад #
Марат 12 лет назад #
Первым делом подумал, что не будет индексироваться поисковиками. Но оказывается, индексируется. Это хорошо.
Демо посмотрел. Всё работает. В демо структура сайта не очень сложная и обновляется, как я понял, только блок cmsbody. Но у многих сайтов структура посложнее и есть, например, модули, которые выводятся только на определенных страницах. И конечно же, возможные конфликты js, которые будут неизбежны. Это я к тому, что полностью перевести icms на fullajax без проблем, наверно, не получится. Нужно будет затачивать индивидуально под каждый проект или компонент.
Автору большое спасибо. Он показал, как это использовать. И кто-то может применить у себя.
Def 12 лет назад #
SJen 12 лет назад #
Крылов Сергей 12 лет назад #
Каким бы скромным он был, такой вклад в ICMS стоит большой благодарности.
Крылов Сергей 12 лет назад #
SJen 12 лет назад #
У меня сейчас реализовано по-простому, потому что раньше я использовал fullajax на сайте wordpress - а структура wp не идет ни в какое сравнение с ICMS:) Оптимизировать же ICMS я только начал, это долгий и сложный путь..
Anonim 12 лет назад #
Помнится, чтобы объяснить что такое пинг систем, и для чего он нужен, ушло уйма времени тут (=
Из WP очень бы хотелось видеть кэшер, который наверняка уже переписали под инстант (; отложенный постинг
eoleg 12 лет назад #
Сервер где то в германии
пинг 80-100 ms
Обычно все зарубежное открывается у меня во всяком случае с тормозами
Этот же сайт как будто у меня на компе стоит.
Жалко что компонент универсальный нельзя сделать.
+
TheSteek 12 лет назад #
imprint 12 лет назад #
1 SRAX.Filter.add({id:'ID-Tab-Object', url:['/'],method:'post',params:'ax=1'});
2 SRAX.Model2Blocks['ID-Tab-Object'] = {'cmsbody':'cmsbody'};
3 SRAX.linkEqual[':ax:ID-Tab-Object:'] = 'ajax';
4 SRAX.Filter.add({url: ['/login','/registration','/logout','/users'], type:'nowrap'});
5 SRAX.directLink();
SJen 12 лет назад #
Счастливые обладатели firefox и firebug могут посмотреть, что у меня на сайте возвращается если нажать на любой рецепт. (Закладка "Сеть", вкладка "XHR" - то есть загрузки по аяксу)
imprint 12 лет назад #
Иван Шкута 12 лет назад #
При отключенном JS (а именно так просматривают сайты поисковики), на вашем сайте исчезает "Наше меню". Хотя на сколько я догадываюсь это не имеет отношения к данному скрипту.
SJen 12 лет назад #
Иван Шкута 12 лет назад #
Обернул <div id="cmsbody"><?php cmsBody(); ?></div>
Ссылки надо как-то изменять? Или еще что-то?
Иван Шкута 12 лет назад #
Чтобы можно было хотя бы компонент content сделать.
SJen 12 лет назад #
SJen 12 лет назад #
imprint 12 лет назад #
bondar 12 лет назад #
imprint 12 лет назад #
SJen 12 лет назад #
Я же не говорил, что все просто)
Это не тривиальная задача.
imprint 12 лет назад #
Иван Шкута 12 лет назад #
SJen 12 лет назад #
Иван Шкута 12 лет назад #
Иван Шкута 12 лет назад #
Иван Шкута 12 лет назад #
Anonim 12 лет назад #
Александр 12 лет назад #
SJen 12 лет назад #
Но я же выложил пример файла шаблона, в котором все готово для работы этой технологии. Что-то более конкретное сложно написать..
Александр 12 лет назад #
1. Скачал и закинул скрипт /templates/_default_/js/obf.fullajax.js
2. Прописал в head
Иван Шкута 12 лет назад #
Иван Шкута 12 лет назад #
<?php }
?>
Александр 12 лет назад #
SJen 12 лет назад #
Александр 12 лет назад #
http://instantcms.ru/users/files/download1912.html
с ним удобней т.к. тут в коде вылезает фигни много всякой.
Ща сам пробую, черт и почему раньше никто не предлогал, ведь реально быстрей бегает
Anonim 12 лет назад #
Иван Шкута 12 лет назад #
Александр 12 лет назад #
1. Табы в профилях упали. Причем при нажатии, например на "клубы"
Пишет: Error 404 : /blogs#upr_clubs Not Found
Ну тут ясно конфликт подключений
2. Теги под статьями перестали быть кликабельными (на печенюги тегов нет, по этому проверил у себя) думаю у других кто теги выводит тоже не работают.
SJen 12 лет назад #
не забывайте, что вы подгружаете только контент - без скриптов. Скрипты то все в <head> - а мы этот блок исключили из обновления.
Но это не значит, что нельзя грузить скрипты - можно. Это требует более тонкой настройки)
Я у себя еще не перевел все на fullajax. Есть еще что оптимизировать.
Александр 12 лет назад #
Реально ссылка http://www.pechenuka.ru/recipes/category/varene
Получаем при переходе http://www.pechenuka.ru/#ajax/recipes/category/varene
Как на это смотрят поисковики?
SJen 12 лет назад #
Вы же не думаете, что Яндекс тоже через аякс сайты просматривает) У роботов отключено javascript. Они видят нормальные адреса, без решеток
Александр 12 лет назад #
lezginka.ru 12 лет назад #
хорошо было бы услышать окончательный вердикт сео-профи
SJen 12 лет назад #
Но вам разве посещаемость ресурса не говорит о том, что уж в seo то у него точно проблем нет?
Александр 12 лет назад #
Нужно как я подумал сделать для основного меню и конкретно компонента статей, а не зоны контента.
Как понял если прописывать для всего контента то это надо переписать уйму кода для всех компонентов, которые будут еще выдавать куча ошибок. Проще остановиться только на каталоге статей и основном меню
Как Вы думаете правильно?
Александр 12 лет назад #
вот для примера
SJen 12 лет назад #
Я сейчас заканчиваю одной интересную штуку, потом можно будет подумать. Все-равно себе планирую расширить эту технологию еще на один компонент.
Александр 12 лет назад #
Максим Шорин 12 лет назад #
Антон 12 лет назад #
также можно подгрузить этот скрипт
http://code.google.com/p/fullajax/downloads/detail?name=srax.fx.v0.1.beta.b4.zip&can=2&q=
и в код скрипта добавить
SJen 12 лет назад #
На самом деле можно одновременно подгружать много различных блоков. А не один 'cmsbody' как в моем примере. Можно обновлять, скажем, еще и меню пользователя. Или сайдбар.
Def 12 лет назад #
SJen 12 лет назад #
Но для нормальной интеграции на рабочий сайт придется потрудиться, готового решения я не написал. Может доберусь, если есть интерес. У меня пока другие приоритеты)
Anonim 12 лет назад #
Иван Шкута 12 лет назад #
Иван Шкута 12 лет назад #
SJen 12 лет назад #
То есть в самом конце страницы
SJen 12 лет назад #
только тег + стили (стили для того, чтобы указать где должна показываться gif анимашка)
Олег с клещами 12 лет назад #
Олег с клещами 12 лет назад #
SJen 12 лет назад #
Олег с клещами 12 лет назад #
Антон 12 лет назад #
попробуй из 2-х подгружаемых файлов obf.srax.fx.js и srax.fx.js
оставить только подгрузку obf.srax.fx.js
у меня только эта библиотека подгружена и все гуд
Олег с клещами 12 лет назад #
SJen 12 лет назад #
посмотрите код или киньте сюда (php код в шаблоне, ДО этой строки). Вы там выводите этот символ, что-то лишнее стоит..
Олег с клещами 12 лет назад #
Олег с клещами 12 лет назад #
bondar 12 лет назад #
SJen 12 лет назад #
Нужна просто нормальная фотогалерея
Иван Шкута 12 лет назад #
0 - до какого уровня поднимать относительно верха страницы. Например можно не показывать шапку если вместо нуля указать число равное высоте шапки.
Или поднять можно не до самого верха или на определенную высоту, а до верха какого-нибудь элемента если его указать вместо body,html, например .content
Иван Шкута 12 лет назад #
SJen 12 лет назад #
Иван Шкута 12 лет назад #
spacer 12 лет назад #
SJen 12 лет назад #
Thanatognozija 12 лет назад #
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, [no address given] and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Я понял, что это меня культурно послали все вернуть назад как было... :((((((((
Иван Шкута 12 лет назад #
И не забывайте про закрывающие фигурные скобки.
Крот 11 лет назад #
переходит по всем страничкам в аяксе, скрипты кешируются, реально стало быстрее работать
только вот нужно будет убрать все addheadjs и addheadcss - не работают они)
может кто знает где документацию полную по fullajax можно взять?
Крот 11 лет назад #