Плюсы и минусы AJAX-загруженного контента - PullRequest
1 голос
/ 27 августа 2010

Довольно приятно отсортировать набор данных по количеству фильтров и мгновенно получить результаты, верно?
Мое решение для этого было бы POST параметры "фильтра" (чтения форм) на страницес именем dataset.php, который возвращает соответствующий набор данных в скомпилированном HTML, который может быть загружен прямо на мою страницу.

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

Однако у меня пока нет опыта, чтобы считать это хорошим или плохим общим решением.Какие у нас должны быть проблемы с AJAX-выборочным набором данных?

Ответы [ 3 ]

2 голосов
/ 27 августа 2010

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

Не совсем так, существуют решения, такие как jQuery Ajaxy , которые позволяют AJAX-контенту отслеживать историю, оставляя SEO и JavaScript отключенными. Вы можете увидеть это в действии на моем собственном сайте Balupton.com с доказательством того, что он все еще оптимизирован для SEO здесь .

Однако у меня еще нет опыта считать это хорошим или плохим общим решением. Какие у нас должны быть проблемы с AJAX-выбранным набором данных?

Загруженный Ajax контент отлично подходит для пользователей, на него быстро, быстро и просто приятно смотреть. Если у вас нет отслеживания истории, это может быть довольно запутанным, особенно если вы используете загруженный ajax контент для таких вещей, как страницы, а не просто контент боковой панели - так как тогда вы отрываетесь от согласованности, с которой сталкиваются пользователи. Еще одна оговорка - отслеживание Google Analytics для страниц Ajax. Эти недостатки, те, о которых вы уже упоминали, а также некоторые другие, упомянутые в другом месте , - все это довольно сложные проблемы.

jQuery Ajaxy (как упоминалось ранее) предоставляет хорошее решение высокого уровня практически для всех проблем, но может стать большой кривой обучения, если вы еще не работали с архитектурой контроллера, но большинство людей понимают ее довольно быстро.

Например, чтобы включить отслеживаемый в истории контент ajax для изменения набора результатов с помощью jQuery Ajaxy, вам фактически не нужны какие-либо изменения на стороне сервера. Вы можете сделать что-то вроде этого в нижней части своей страницы: $('#results ul.pages li.page a').addClass('ajaxy ajaxy-resultset').ajaxify();

Затем настройте контроллер Ajaxy таким образом, чтобы получать только тот контент, который нам нужен из ответа:

        'resultset': {
            selector: '.ajaxy-resultset',
            request: function(){
                // Hide Content
                $result.stop(true,true).fadeOut(400);
                // Return true
                return true;
            },
            response: function(){
                // Prepare
                var Ajaxy = $.Ajaxy; var data = this.State.Response.data; var state = this.state;
                // Show Content
                var Action = this;
                var newResultContent = $(data.content).find('#result').html();
                $result.html(newResultContent).fadeIn(400,function(){
                    Action.documentReady($result);
                });
                // Return true
                return true;
            }
        }

И это все, что есть, большинство из вышеперечисленного просто скопировали и вставили код со страницы демонстрации. Конечно, это не идеально, так как мы возвращаем всю страницу в наших ответах Ajax, но это должно произойти в любом случае. Вы всегда можете обновить скрипт немного больше и сделать так, чтобы на стороне сервера вы проверяли заголовок XHR, и если он установлен (тогда мы - запрос ajax), то просто визуализируйте часть результатов, а не все.

1 голос
/ 27 августа 2010

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

Однако, у него также есть свои подводные камни. Будет ли у пользователя необходимость возвращаться на предыдущие страницы после доставки контента ajax? Поскольку это может быть не так просто, как нажать кнопку «Назад» в браузере.

1 голос
/ 27 августа 2010

Вы уже назвали 2 больших. Теперь все, что вам нужно сделать, - убедиться, что все функции работают без javascript (перезагрузить страницу с запрошенным набором данных), и использовать AJAX для ее улучшения (загрузить запрошенный набор данных без перезагрузки страницы).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...