Умный аякс или ускорение Инстанта.

+49
2.58K
Хочу немного рассказать про технологию FullAjax и ее применении на сайте под ICMS. Глубоко в теорию уходить не буду, расскажу в общих чертах. Кому будет интересны подробности — спрашивайте в комментах.

Плюсы использования:
1. ускорение загрузки страницы у посетителей за счет того, что обновляется только нужная часть страницы (например, центральный блок с контентом).
2. уменьшение нагрузки на сервер по той же причине — уменьшается объем того, что нужно формировать. Вместо вывода шапки, сайдбаров, центра и футера можно вывести только центр (остальное остается как есть и не меняется)
3. В отличии от простого аякса (метод ajax в библиотеке jquery и другие) меняется адрес страницы. То есть на любом этапе блуждания по сайту — вы можете копировать URL из адресной строки и послать другу — у него все откроется и он попадет на ту же самую страницу.
4. Работает кнопка "Назад" в браузере. А вот, например, при переходе с одной страницы на другую при просмотре "ленты активности" или комментариев кнопка "Назад" вводит посетителя в заблуждения — уводя совсем не туда, где он был до этого (то есть на предыдущей странице).
5. Никаких минусов в плане индексации поисковиками — сайт индексируется так же, как и без внедрения этой технологии.

На IE не подключаю fullajax — не могу пока побороть некоторые проблемы. Так что пользователи этого "чудо" браузера открывают все на новой странице.

Пример работы сайта, который работает на fullajax+ICMS -
Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст

Откройте, погуляйте по статьям, понажимайте кнопку "Назад". Важно: компонент "Пользователи" работает без fullajax — то есть все, что связано с пользователями(профиль, личные сообщения и тд) открывается в новой странице. Но в перспективе весь сайт будет полностью аяксовый.

И очень кратко про подключение:

1. подключить файл библиотеки obf.fullajax.js (закинул его в свои файлы если интересно)
2. выполнить скрипт (реальный пример и немного комментариев)
  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();
Комментарии очень кратко: Выполнять 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
st.Puh st.Puh 12 лет назад #
А где скачать obf.fullajax.js
+1
SJen SJen 12 лет назад #
obf.fullajax.js
закинул в свои файлы
Олег Васильевич я Олег Васильевич я 12 лет назад #
Комментарий удален
+2
SJen SJen 12 лет назад #
Да, что-то он мне тоже не нравится сейчас. Но ссылки на хабр все рабочие - сам предварительно собрал, там ничего плохого нет (ссылку на форум почищу)
+1
Jestik Jestik 12 лет назад #
Нажимаю на ссылку в горизонтальном меню и ничего не происходит...
+1
Black-Raven90 Black-Raven90 12 лет назад #
Находясь на главной странице вашего сайта, нажимаю в главном меню (сверху) на "Компоты" - остаюсь почему-то на главной странице, хотя адрес меняется и видно, что срабатывает ajax. Только содержимое средней колонки не меняется, остается лента активности. Браузер Chrome 17. Это только у меня так?
+3
SJen SJen 12 лет назад #
Прошу прощения, увлекся обновлениями)

Сейчас все работает как надо, то есть как обычно
+1
st.Puh st.Puh 12 лет назад #
Чтото я подключил файл obf.fullajax.js и ничего непроизошло затем добавил кад SRAX.Filter.add и тд. и тоже ничего
+1
SJen SJen 12 лет назад #
Только подключение ничего не дает.
нужно прописать еще нужный блок
Код PHP:
SRAX.Model2Blocks['ID-Tab-Object'] = {'cmsbody':'cmsbody'};
и в коде шаблона если сработал аякс обернуть текст в (cmsbody - ваш блок)
Код PHP:
<!-- :ax:cmsbody:begin: //-->
ваш текст
<!-- :ax:cmsbody:end: //-->
Вот содержимое между этими строками и будет загружено в div c id = cmsbody
+1
SJen SJen 12 лет назад #
Решил сейчас пообновлять сайт и немного "прибил" аякс, сейчас восстановил - работает, можно проверять
+1
st.Puh st.Puh 12 лет назад #
Я дернул оба ваши файла obf.fullajax.js и fa.js подключил у себя дальше самого компонента незаходит,к примеру переходим в блоги первая страничка открываеца а сами блоги уже незаходит так и фотоальбомы и фак и стати и тд.
+1
SJen SJen 12 лет назад #
весь сайт так просто перевести не получится - будет много вопросов по скриптам, которые просто не будут подключаться при таком варианте. Если загружать контент, надо ведь и скрипты подгружать дополнительно.

Ну и надо править файл шаблона - чтобы fullajax знал, что именно вам нужно загружать - я про
Код PHP:
	<!-- :ax:cmsbody:begin: //-->
	ваш текст
	<!-- :ax:cmsbody:end: //-->
+1
SJen SJen 12 лет назад #
перевести сайт на аякс можно, но это делается не в несколько строчек кода. Иначе отвалятся закладки в профиле и еще много разных вещей в компонентах, которые подгружают свои скрипты и библиотеки, да и css тоже
+3
WALTERZ WALTERZ 12 лет назад #
А можете привести реальный пример использования в каком-нибудь простеньком модуле например?
Было бы здорово
0
SJen SJen 12 лет назад #
А можете привести реальный пример использования в каком-нибудь простеньком модуле например? Было бы здорово
Подумаю, как проще продемонстрировать. Но это будет не модуль. А скорее файл с шаблоном template.php.
+2
Марат Марат 12 лет назад #
Очень даже интересно. Жирный +.
Первым делом подумал, что не будет индексироваться поисковиками. Но оказывается, индексируется. Это хорошо.
Демо посмотрел. Всё работает. В демо структура сайта не очень сложная и обновляется, как я понял, только блок cmsbody. Но у многих сайтов структура посложнее и есть, например, модули, которые выводятся только на определенных страницах. И конечно же, возможные конфликты js, которые будут неизбежны. Это я к тому, что полностью перевести icms на fullajax без проблем, наверно, не получится. Нужно будет затачивать индивидуально под каждый проект или компонент.
Автору большое спасибо. Он показал, как это использовать. И кто-то может применить у себя.
0
Def Def 12 лет назад #
например к фотогалерее такое можно применить. или к другому компоненту, который делает много запросов
0
SJen SJen 12 лет назад #
или к другому компоненту, который делает много запросов
Если узкое место - это конкретный компонент, то и надо смотреть его. Тут fullajax не спасет - он же не уменьшает запросы... Он лишь позволяет подгружать нужные блоки, а не все.
0
Крылов Сергей Крылов Сергей 12 лет назад #
Может скинемся все вместе, чтобы SJen сделал первоклассный модуль на фуллаяксе?

Каким бы скромным он был, такой вклад в ICMS стоит большой благодарности.
0
Крылов Сергей Крылов Сергей 12 лет назад #
*Каким бы скромным он ни был
0
SJen SJen 12 лет назад #
Непросто тут все, Марат правильно заметил
Марат:
Это я к тому, что полностью перевести icms на fullajax без проблем, наверно, не получится. Нужно будет затачивать индивидуально под каждый проект или компонент.
Это уже не модуль либо компонент, это как надстройка над всеми компонентами и модулями.

Марат:
В демо структура сайта не очень сложная и обновляется, как я понял, только блок cmsbody.
Да, структура несложная, да и по сути на fullajax работает только компонент recipes. Но меня посещала такая мысль - если посетиль просматривает компонент users, а потом скажем переходит в блоги - то открывать ему их в новой странице. А когда он будет гулять внутри блогов - то использовать fullajax (потому что все скрипты уже подключены, меняется только центр).

У меня сейчас реализовано по-простому, потому что раньше я использовал fullajax на сайте wordpress - а структура wp не идет ни в какое сравнение с ICMS:) Оптимизировать же ICMS я только начал, это долгий и сложный путь..
0
Anonim Anonim 12 лет назад #
Разработки WP активно внедряются в жизнь ))
Помнится, чтобы объяснить что такое пинг систем, и для чего он нужен, ушло уйма времени тут (=

Из WP очень бы хотелось видеть кэшер, который наверняка уже переписали под инстант (; отложенный постинг
0
eoleg eoleg 12 лет назад #
Супер!
Сервер где то в германии
пинг 80-100 ms
Обычно все зарубежное открывается у меня во всяком случае с тормозами
Этот же сайт как будто у меня на компе стоит.
Жалко что компонент универсальный нельзя сделать.
+
0
TheSteek TheSteek 12 лет назад #
Прикольно получится если ето приделать к instantcms, но я так понял что ето нам не светит...
0
imprint 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();
+1
SJen SJen 12 лет назад #
Положить в файл .js и подключить в блоке <head></head> в шаблоне template.php. Сегодня постараюсь выложить живой пример. Мало просто подключить скрипты - нужно еще возвращать в специальном формате контент, чтобы он загрузился в нужный div.

Счастливые обладатели firefox и firebug могут посмотреть, что у меня на сайте возвращается если нажать на любой рецепт. (Закладка "Сеть", вкладка "XHR" - то есть загрузки по аяксу)
0
imprint imprint 12 лет назад #
буду ждать....пример как именно все подключить....
0
Иван Шкута Иван Шкута 12 лет назад #
Однозначно + буду использовать :)
При отключенном JS (а именно так просматривают сайты поисковики), на вашем сайте исчезает "Наше меню". Хотя на сколько я догадываюсь это не имеет отношения к данному скрипту.
0
SJen SJen 12 лет назад #
Вы правы, левое меню не имеет никакого отношения к данному скрипту. Меню на javascript, потому и исчезает. Но у меня достаточно хорошая навигация и на чистом html, поэтому исчезание меню никак не сказывается на индексации.
0
Иван Шкута Иван Шкута 12 лет назад #
Подключил скрипты.
Обернул <div id="cmsbody"><?php cmsBody(); ?></div>

Ссылки надо как-то изменять? Или еще что-то?
0
Иван Шкута Иван Шкута 12 лет назад #
Можно выложить файлы, которые вы правили, ну или их соответствующие части. Чтобы подсмотреть в шпаргалку. Хотя бы без комментариев.
Чтобы можно было хотя бы компонент content сделать.
0
SJen SJen 12 лет назад #
Выкладываю пример, урезанный вариант файла template.php, который иллюстрирует подключение fullajax
Спойлер
0
SJen SJen 12 лет назад #
повторю без спойлера.. а то уж совсем непонятно что как

Код PHP:
<?php
if(!defined('VALID_CMS')) { die('ACCESS DENIED'); }

$noax = $_POST['ax'] != 1; // если $noax=1, значит обычная загрузка страницы (НЕ fullajax)
if ($noax==1){ //если простая загрузка - выводим, если аякс - не выводим шапку, сайдбары и тд ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">;
<html xmlns="http://www.w3.org/1999/xhtml">;
<head>
<!-- HEAD !-->
<?php cmsPrintHead(); ?>
<script src="/templates/_default_/js/obf.fullajax.js" type="text/javascript"></script>
<script type="text/javascript">
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.directLink();
</script>
<!--тут подключаем все остальные скрипты и стили-->
</head>

<body>
<div id="wrapper">
<div id="page">

<!--тут какие-то блоки, модули и тд. то есть то, что при нашем вариенте фулаякса обновляться не будет-->

<div id="cmsbody">
<?php }
?>
<?php if ($noax!=1){ echo'<!-- :ax:cmsbody:begin: //-->'; //если аякс - выводим начало блока и контент (он загрузится в div c id = cmsbody)
}?>
<?php cmsBody(); ?>
<?php cmsModule('main'); ?>
<?php if ($noax!=1){ echo'<!-- :ax:cmsbody:end: //-->';//если аякс - выводим конец блока
}?>
<?php
if ($noax==1){ //если обычная загрузка страницы - выводим футер
?>
</div>
</div>
<div id="footer"></div>
</div>
</body>
</html>
<?php }
?>
0
imprint imprint 12 лет назад #
да фото галерея не работает и некоторые страницы не открывает посмотрите в чем проблема? сам ресурс
0
bondar bondar 12 лет назад #
еще у вас в профиле послетали табы
0
imprint imprint 12 лет назад #
и добавить комментарии...не работает....
0
SJen SJen 12 лет назад #
если не работает - значит не загрузились скрипты, которые обеспечивают работу галереи.
Я же не говорил, что все просто)

Это не тривиальная задача.
0
imprint imprint 12 лет назад #
я подключил prettyPhoto, я знаю что оно не работает из за того что ещё нужно допиливать...и подключать скрипты....вот только как это все сделать...вот в чем вопрос...
0
Иван Шкута Иван Шкута 12 лет назад #
Почему-то у меня $noax всегда равен 1.
0
SJen SJen 12 лет назад #
это значит, что страница открывает не через fullajax и параметр ax не передается
SRAX.Filter.add({id:'ID-Tab-Object', url:['/'],method:'post',params:'ax=1'});
а вот тут прописано, чтобы при аяксе этот параметр передавался со значением 1
0
Иван Шкута Иван Шкута 12 лет назад #
А в чем может быть проблема?
0
Иван Шкута Иван Шкута 12 лет назад #
Спасибо, SJen! Оказалось у меня была проблема из-за target="self". Вылечил тем, что в файле /admin/applets/menu.php поменял этот код:
Код PHP:
<option value="_self" <?php if (@$mod['target']=='_self') { echo 'selected'; }?>>В этом же окне (self)</option>
на этот:
Код PHP:
<option value="" <?php if (@$mod['target']=='') { echo 'selected'; }?>>В этом же окне (self)</option>[
И пересохранил все пункты меню.
+1
Иван Шкута Иван Шкута 12 лет назад #
Кстати, когда я эксперемента ради, решил заменить в выше указанной строке 1 на 2, $noax все равно остался равен 1.
0
Anonim Anonim 12 лет назад #
Аналогично!
+1
Александр Александр 12 лет назад #
Тема отличная но все таки нужно по шаговая инструкция.
0
SJen SJen 12 лет назад #
Это нетривиальная задача. Тут не может быть инструкции, которая заставит все работать на любом сайте. Много нюансов со скриптами.

Но я же выложил пример файла шаблона, в котором все готово для работы этой технологии. Что-то более конкретное сложно написать..
0
Александр Александр 12 лет назад #
Я сделал все как написано, вылетела что сервер не доступен. Делал на дефолтном шаблоне т.е. самом обычном.

1. Скачал и закинул скрипт /templates/_default_/js/obf.fullajax.js
2. Прописал в head
Код PHP:
<!-- HEAD !-->
<script src="/templates/_default_/js/obf.fullajax.js" type="text/javascript"></script>
<script type="text/javascript">
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.directLink();
</script>
3. Побрубаем к только контенту

Код PHP:
<div id="cmsbody">
<?php }
?>
<?php if ($noax!=1){ echo'<!-- :ax:cmsbody:begin: //-->'; //если аякс - выводим начало блока и контент (он загрузится в div c id = cmsbody)
}?>
<?php cmsBody(); ?>
<?php cmsModule('main'); ?>
<?php if ($noax!=1){ echo'<!-- :ax:cmsbody:end: //-->';//если аякс - выводим конец блока
}?>
<?php
if ($noax==1){ //если обычная загрузка страницы - выводим футер
?>
</div>
</div>
Всё и тут сайт тупо заваливаеться, как подозреваю из-за <?php cmsBody(); ?>
0
Иван Шкута Иван Шкута 12 лет назад #
Вы все Ифы правильно прописали? В шапке? Футер закрыли?
0
Иван Шкута Иван Шкута 12 лет назад #
Например в самом конце файла не забыли поставить
<?php }
?>
+1
Александр Александр 12 лет назад #
Да я с аяксом не дружу вот исходный, как закрыть можно пожж для балбесов-)

Спойлер
0
SJen SJen 12 лет назад #
завтра посмотрю, время уже не то)
+1
Александр Александр 12 лет назад #
Вот фаил
http://instantcms.ru/users/files/download1912.html
с ним удобней т.к. тут в коде вылезает фигни много всякой.

Ща сам пробую, черт и почему раньше никто не предлогал, ведь реально быстрей бегает
0
Anonim Anonim 12 лет назад #
Предлагали... Только вот никто не услышал
0
Иван Шкута Иван Шкута 12 лет назад #
Если я был достаточно внимателен, то вот так:

Спойлер
+1
Александр Александр 12 лет назад #
Благодарю Пилигриm все переделал по твоему примеру, заработало но есть проблемы о которых тут уже говорили в коментах выше.

1. Табы в профилях упали. Причем при нажатии, например на "клубы"
Пишет: Error 404 : /blogs#upr_clubs Not Found
Ну тут ясно конфликт подключений

2. Теги под статьями перестали быть кликабельными (на печенюги тегов нет, по этому проверил у себя) думаю у других кто теги выводит тоже не работают.
0
SJen SJen 12 лет назад #
все верно
не забывайте, что вы подгружаете только контент - без скриптов. Скрипты то все в <head> - а мы этот блок исключили из обновления.

Но это не значит, что нельзя грузить скрипты - можно. Это требует более тонкой настройки)
Я у себя еще не перевел все на fullajax. Есть еще что оптимизировать.
+1
Александр Александр 12 лет назад #
Да и еще, все таки смущают урлы

Реально ссылка http://www.pechenuka.ru/recipes/category/varene
Получаем при переходе http://www.pechenuka.ru/#ajax/recipes/category/varene

Как на это смотрят поисковики?
0
SJen SJen 12 лет назад #
Поисковики на это никак не смотрят:)
Вы же не думаете, что Яндекс тоже через аякс сайты просматривает) У роботов отключено javascript. Они видят нормальные адреса, без решеток
+3
Александр Александр 12 лет назад #
Да да все тупанул что-то реально, верно-))) Сайт печенюка кстати пипец быстрый, радует не то слово
+1
lezginka.ru lezginka.ru 12 лет назад #
+
хорошо было бы услышать окончательный вердикт сео-профи
0
SJen SJen 12 лет назад #
Можно, конечно, спросить у soxom - он вроде у нас тут самый профи в сео)
Но вам разве посещаемость ресурса не говорит о том, что уж в seo то у него точно проблем нет?
+1
Александр Александр 12 лет назад #
Кто нибудь возьмется на коммерческой основе реализовать эту фишку?
Нужно как я подумал сделать для основного меню и конкретно компонента статей, а не зоны контента.

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

Как Вы думаете правильно?
+1
Александр Александр 12 лет назад #

вот для примера
0
SJen SJen 12 лет назад #
Я думал даже чуть по-другому - сделать аякс внутри каждого компонента (ну или нескольких основных). То есть если вы гуляете по статьям - то там все открывается на аяксе. Потом открываете профиль(компонент users) - страница открывается в новой, но если вы открываете затем еще один профиль - то он открывается уже на аяксе.

Я сейчас заканчиваю одной интересную штуку, потом можно будет подумать. Все-равно себе планирую расширить эту технологию еще на один компонент.
+1
Александр Александр 12 лет назад #
Да согласен так более правильно
0
Максим Шорин Максим Шорин 12 лет назад #
Восхищаюсь вашими знаниями ajax и возможностью их применять ! респект !
+2
Антон Антон 12 лет назад #
внесу свою лепту :)

также можно подгрузить этот скрипт
http://code.google.com/p/fullajax/downloads/detail?name=srax.fx.v0.1.beta.b4.zip&can=2&q=

и в код скрипта добавить
Код PHP:
SRAX.Effect.add({id: 'ID-Tab-Object',
 start:function(id, request){  SRAX.Fx('cmsbody').opacity({end:0.1, d:0.1, cb:request})
	  },
 end:function(){	SRAX.Fx('cmsbody').opacity({end:1, d:0.8})
	  }
}); 
тогда текст будет плавно появляться и исчезать
+1
SJen SJen 12 лет назад #
Добавлю, что если на странице создать <div id="loading"></div> и в качестве фона назначить ему гиф анимашку - то в процессе открытия страниц - будет появляться анимашка. Пример на демо.

На самом деле можно одновременно подгружать много различных блоков. А не один 'cmsbody' как в моем примере. Можно обновлять, скажем, еще и меню пользователя. Или сайдбар.
0
Def Def 12 лет назад #
еще бы живо пример) или я чтото не увидел? всмысле установки на рабочй сайт
0
SJen SJen 12 лет назад #
пример

Но для нормальной интеграции на рабочий сайт придется потрудиться, готового решения я не написал. Может доберусь, если есть интерес. У меня пока другие приоритеты)
0
Anonim Anonim 12 лет назад #
Может сразу расскажете, как сделать "подгрузку" фото при опускании текста ниже? Например, много фото в посте - загружаются ТОЛЬКО видимые в браузере сейчас. Опускаешь ниже текст, подгружаются фото
0
Иван Шкута Иван Шкута 11 лет назад #
А куда ставить <div id="loading"></div>? И нужно ли еще что-то прописывать кроме стилей?
0
Иван Шкута Иван Шкута 11 лет назад #
Все понял. Перед id="cmsbody"
0
SJen SJen 11 лет назад #
Перед id="cmsbody"
Я прописал перед </body>
То есть в самом конце страницы
0
SJen SJen 11 лет назад #
А куда ставить <div id="loading"></div>? И нужно ли еще что-то прописывать кроме стилей?

только тег + стили (стили для того, чтобы указать где должна показываться gif анимашка)
0
Олег с клещами Олег с клещами 12 лет назад #
Что то у меня плавно переходит только на главную, а по статьям по прежнему резко. что не так?
0
Олег с клещами Олег с клещами 12 лет назад #
То есть всё работает, только после вневения изменений от уважаемого vehuiah появился плавный переход на главную а на остальные страницы так же как и на печенюге.
0
SJen SJen 12 лет назад #
Я не понимаю терминов плавно-резко - если вы про анимацию при открытии новой страницы - то vehuiah предложил один из вариантов, можно сделать и так.
0
Олег с клещами Олег с клещами 12 лет назад #
если вы про анимацию при открытии новой страницы - то vehuiah предложил один из вариантов, можно сделать и так.
Я именно про эту анимацию. Когда переходишь на главную с любой внутренней, то она красиво работает, а при переходе на любую внутреннюю аякс есть, но без анимации, то есть как на печенюке. Пока пробую на денвере, поэтому показать нечего.
0
Антон Антон 12 лет назад #
приветствую
попробуй из 2-х подгружаемых файлов obf.srax.fx.js и srax.fx.js
оставить только подгрузку obf.srax.fx.js

у меня только эта библиотека подгружена и все гуд
0
Олег с клещами Олег с клещами 12 лет назад #
Непонятный момент: всё поставил, всё работает, и анимация тоже. Никак не пойму откуда взялись два символа: "; ;" в левом верхнем углу. Кто нибудь подскажет? Кажется генерит какой-то из скриптов, что-ли....
0
SJen SJen 12 лет назад #
Код PHP:
<html xmlns="http://www.w3.org/1999/xhtml">;
первая строка.

посмотрите код или киньте сюда (php код в шаблоне, ДО этой строки). Вы там выводите этот символ, что-то лишнее стоит..
0
Олег с клещами Олег с клещами 12 лет назад #
Код PHP:
<?php
if(!defined('VALID_CMS')) { die('ACCESS DENIED'); }
    $inUser = cmsUser::getInstance();
    $inCore = cmsCore::getInstance();

    $mod_count['top']   = cmsCountModules('top');
    $mod_count['sidebar']  = cmsCountModules('sidebar');

$noax = $_POST['ax'] != 1; // если $noax=1, значит обычная загрузка страницы (НЕ fullajax)
if ($noax==1){ //если простая загрузка - выводим, если аякс - не выводим шапку, сайдбары и тд ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">;
<html xmlns="http://www.w3.org/1999/xhtml">;
<head>
по моему, всё как всегда, и вообще то эти знаки появились после подключения скриптов js
0
Олег с клещами Олег с клещами 12 лет назад #
Нашёл! Спасибо за наводку на мысль!
0
bondar bondar 11 лет назад #
как применить данный метод только для одной страницы?? например для фото галереи, когда смотришь конкретное фото, чтоб следующее загружалось без перезагрузки
0
SJen SJen 11 лет назад #
не думаю, что тут нужен fullajax - он для других целей
Нужна просто нормальная фотогалерея
0
Иван Шкута Иван Шкута 11 лет назад #
Если при нажатии на ссылку вы были не вверху страницы, то на новой вы окажетесь там же. Не удобно если страницы длинные и приходится искать начало текста. Вот решение с анимацией:
Код PHP:
<script type="text/javascript">
    $('body,html').animate({scrollTop:0},500);
</script>
Вставить перед:
Код PHP:
<?php if ($noax!=1){ echo'<!-- :ax:cmsbody:end: //-->';//если аякс - выводим конец блока
}?>
500 - скорость прокрутки.
0 - до какого уровня поднимать относительно верха страницы. Например можно не показывать шапку если вместо нуля указать число равное высоте шапки.
Или поднять можно не до самого верха или на определенную высоту, а до верха какого-нибудь элемента если его указать вместо body,html, например .content
0
Иван Шкута Иван Шкута 11 лет назад #
Хотя все кроме скорости явно лишнее... нда...
+1
SJen SJen 11 лет назад #
лучше этот код вставить не перед cmsbody, а в тот js файл где прописаны настройки fullajax, там есть специальная процедурка которая вызывается по окончании аякс загрузки страницы. Приведу пример как у меня сделано:

Код PHP:
SRAX.Effect.add({id:'ID-Tab-Object', //'ID-Tab-Object'
 start: function(id, request){
        },
 end: function(id){
$(document).ready(function(){
   $("a.recipecluetip").cluetip({splitTitle: "|"});
});
}
})
у меня в этой процедурке не прокрутка стоит, а вызов cluetip - это чтобы плагин подсказок работал для контента, который динамически подгружается
0
Иван Шкута Иван Шкута 11 лет назад #
Спасибо! Попробую :)
0
spacer spacer 11 лет назад #
Там у Вас, гуляя по сайту, если кликнуть на любой комментарий из ленты праваго сайдбара, то страничка обновляется, но перехода к этому комментарию не происходит.
0
SJen SJen 11 лет назад #
я убрал переход к самому комменту, ссылка идет просто на страницу с рецептом - к которому написан комментарий. Сделано специально так.
0
Thanatognozija Thanatognozija 11 лет назад #
:((((((((( Ничего так и не получилось после пляски с бубном выдало страшные вещи очень:

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.

Я понял, что это меня культурно послали все вернуть назад как было... :((((((((
0
Иван Шкута Иван Шкута 11 лет назад #
http://instantcms.ru/blogs/poleznosti-ot-sjen/umnyi-ajaks-ili-uskorenie-instanta.html#comment_31244
И не забывайте про закрывающие фигурные скобки.
0
Крот Крот 11 лет назад #
хоть сайт fullajax.ru попробовал и сделал следующую фичу -
переходит по всем страничкам в аяксе, скрипты кешируются, реально стало быстрее работать
только вот нужно будет убрать все addheadjs и addheadcss - не работают они)

может кто знает где документацию полную по fullajax можно взять?
0
Крот Крот 11 лет назад #
не дописалось - хоть сайт fullajax.ru недоступен ....

Еще от автора

Обновление компонента "Мне нравится"
Приветствую. Закончил версию с исправлением ошибок и багов, всем пользователям обновление выслано на электронку.
Обновление компонента  "Каталог дополнений в админку"
Приветствую. Обновление самого популярного аддона из официального каталога дополнений.
Обновленный парсер Яндекс.Карт
Приветствую Изменения довольно значительны, поэтому имеет смысл оформить их отдельным постом.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.