Вход

Просмотр полной версии : Что лучше выбрать?


Infinity178
22.06.2015, 18:47
Доброго дня.
В двух словах:
реализация создания сайта без перезагрузки страниц, с установкой визуального загрузчика (как скажем делаем в Ajax jQuery before). И немного красоты при выходе и входе анимировать некоторые блоки на странице.

Т.е.:
- вход на сайт, вылетает загрузка контента (при наличии изображений)
- переход на другую страницу, без перезагрузки, анимация блоков на hide
- загрузка новой страницы, "заглушка" загрузки контента, анимация блоков show

Вопрос! Что лучше использовать, если главное условие - сайт динамичный на страницы, контент? Ну или в какую сторону скажем бросить взор..

KosBeg
22.06.2015, 19:36
PJAX? Неа?
1) Если правильно настроить, работает даже на статических страницах
2) Есть в виже плагина для jQuery, а есть и на чистом JavaScript
3) Само меняет историю при помоши HTML5 history api или хешов
3) Само меняет тайт страницы
PS: сам я им не пользовался - но это все что я о нем знаю

KosBeg
22.06.2015, 19:43
ня :D
1) https://github.com/defunkt/jquery-pjax
2) https://github.com/thybag/PJAX-Standalone

Infinity178
22.06.2015, 19:51
ня :D
1) https://github.com/defunkt/jquery-pjax
2) https://github.com/thybag/PJAX-Standalone

Сяп) но Google чутка опередил тебя) уже ознакамливаюсь.. Но для сравнения хотелось бы что то еще просмотреть

Sigizmund2012
22.06.2015, 19:52
Если это сервис, не зависящий от поискового траффика, то идея норм. Если хотите, чтобы сайт индексировался, не делайте его полностью на ajax, поисковики ajax не индексируют, т.к. контент подгружается динамически через js.

KosBeg
22.06.2015, 20:08
не делайте его полностью на ajax, поисковики ajax не индексируют
зависит от построения сайта,
лично мне нравится вариант - есть обычный неаяксовый сайт, на ссылки вешается прослушка(а еще лучше делигирование) -
по клику на ссылку аяксом посылается запрос на сервер,
на сервере определяются - запрос аякс или нет, и в зависимости от этого отдается ответ
отчет лучше передавать в JSON - IMHO
Извиняюся, возможно не понятно обьяснил(и с ошибками), но думаю код вам обьяснит лучше меня :lol:

$('a').click(
ajax_load(this.href); // ajax_load() - условная функция
);


<?php
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest'){
echo json_encode(array("content" => $content, "title" => $title)); // $title - новый тайтл, $content - аякс контент, без стилей и скриптов, только текст
} else {
echo $normal_content; /// или обычный ответ, со стилями и т.д.
}
?>

Infinity178
22.06.2015, 20:14
Если хотите, чтобы сайт индексировался, не делайте его полностью на ajax, поисковики ajax не индексируют, т.к. контент подгружается динамически через js.

На сколько известно, то поисковики все таки кушают контен если его подавать по их требованиям

KosBeg
22.06.2015, 20:20
то поисковики все таки кушают контен если его подавать по их требованиям
если гугль или яндекс видит в адресе хешбанг(вроде так называется) - #!
то он индексирует site.ru/index.php?_escaped_fragment_=name вместо site.ru#!name

KosBeg
22.06.2015, 20:24
PS: у меня сегодня праздник - я уже месяц на этом форуме ;)

Infinity178
22.06.2015, 20:30
PS: у меня сегодня праздник - я уже месяц на этом форуме ;)

А я вам о чем и говорю. swf умер.. но Ajax будет жить =)

Sigizmund2012
22.06.2015, 20:41
На сколько известно, то поисковики все таки кушают контен если его подавать по их требованиям
Хотите рискнуть? С ними наперёд ничего не известно, особенно с Яндексом.
А я вам о чем и говорю. swf умер.. но Ajax будет жить =)
Как основа сайтов он умер не родившись, из-за неиндексируемости поисковиками кстати и веса сайтов. Только на баннеры и годится.
PS: у меня сегодня праздник - я уже месяц на этом форуме
Ну поздравляю, счастливчик! :D

Infinity178
22.06.2015, 21:02
Хотите рискнуть? С ними наперёд ничего не известно, особенно с Яндексом.

Yandex (https://help.yandex.ru/webmaster/robot-workings/ajax-indexing.xml)

Infinity178
22.06.2015, 21:07
но как бы то ни было - есть ли еще методы реализации?

Sigizmund2012
22.06.2015, 21:27
Yandex
Думаете сайт на ajax стоит этих шаманских плясок? В чём вообще его преимущество перед статичным?

KosBeg
23.06.2015, 09:12
но Ajax будет жить =)
AJAX живет, но как-то не очень-то он и прижился, но его пытаются оживить fetch’ем - https://github.com/github/fetch - это полифил
Неплохая альтернатива, но не для меня)))
А я вам о чем и говорю. swf умер..
Аминь :D
Но я его иногда использую,
например в полифиле AudioJs - флеш используется для проигрования *.mp3 где недоступен тег <audio></audio>
Больше нет ему применения :yes:

KosBeg
23.06.2015, 09:18
Только на баннеры и годится.
и то не годится, есть например *.gif
Он более кросбраузерный чем флеш =)
Например я блочу полностью весь флеш, не люблю я его...
Но иногда все-же флеш лучше...
В чём вообще сайта на аякс преимущество перед статичным?
1) при правильном построении - скорость
Сайт на аякс быстрее работает, грузится, и рендерится в браузере, так как надо отрендерить только новый кусок кода, а не всю страницу
2) Можно смело делать такие вещи как например неприрывный аудио-плеер :D
3) Намного удобней, как не крути
Думаете сайт на ajax стоит этих шаманских плясок?
да! да! да! и еще раз да!

apolon13
30.06.2015, 08:38
Используйте Ajax and HTML5 history api.
У меня был успешный опыт реализации сайта полностью с динамичным контентом.Но тут же вставал вопрос об индексации.
Я решил его обычной версией сайта.В ссылках href прописывал на обычные странички.
Но перехватывал клик и выдёргивал только нужный контент из них.
Ну и если у пользователя будет отключен javascript или ещё какой-нибудь гемор(Что кстати ещё не редкость:-/ ) он просто переходил на обычную страничку.

Вот простейший пример того о чём я говорю click (http://xozblog.ru/2014/10/html5-history-api/)

А history api полностью решает проблемы с историей и кнопками "вперёд""назад" и ещё много геморроя который возникает с ajax сайтами:)

Профессор Маркап говорит:
Если ваше веб-приложение потерпит неудачу в браузерах с отключенными скриптами, собака Якоба Нильсена придет к вам домой и насрет на ваш ковер.

KosBeg
30.06.2015, 14:10
Используйте Ajax and HTML5 history api.
а PJAX разве не тоже самое, просто в готовой библиотеке?
А history api полностью решает проблемы с историей и кнопками "вперёд""назад"
только в том случае если использовать событие "popstate",
иначе проблемы это не решает...
прсто поменяется в адресной строке адрес и все...
Решается простым вешаньем функции на событие "popstate" :yes:
Профессор Маркап говорит:
Если ваше веб-приложение потерпит неудачу в браузерах с отключенными скриптами, собака Якоба Нильсена придет к вам домой и насрет на ваш ковер.
у меня весь ковер в говне..

apolon13
30.06.2015, 17:53
Согласен.PJAX то же самое.
Просто пока с этой библиотекой не сталкивался.Потому и рассказал только о том с чем работал сам.:yes: