Вопрос

Я запускаю браузерную игру по адресу www.darknovagames.com .Недавно я работал над переформатированием сайта с помощью CSS, пытаясь проверить все его страницы в соответствии со стандартом HTML.

Я играл с этой идеей иметь меню навигации слева от AJAX страниц (вместо того, чтобы каждый раз переводить пользователя на отдельную страницу, требуя перезагрузки заголовка и навигационной панели, которые почти никогда не меняются), и я знаю, что если я это сделаю, я, вероятно, сломаю кнопки Вперед / Назад в браузере.Мой вопрос, я полагаю, заключается в том, должен ли я использовать AJAX для сайта, тем самым требуя от пользователя использовать навигацию по сайтам для игры, или мне следует оставить сайт в его текущем виде и использовать стандартные гиперссылки и прочее для навигации?

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

Я также открыт для предложений.Существует ли стандартный (предпочтительно без традиционных фреймов) способ перезагрузить только основную часть сайта, при этом все еще изменяя URL, чтобы пользователи могли делать закладки и пересылать / возвращать и т.д.?Это потенциально могло бы решить и мою проблему.Я просто прошу здесь наилучшего решения, а не ответа на конкретный вопрос.^_^

Спасибо

Это было полезно?

Решение

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

Когда вы вкладываете всю свою функциональность в вызовы AJAX и обратные вызовы, вы фактически вынуждаете своих пользователей использовать единый путь для доступа к нужным им функциям и контенту, что полностью противоречит тому, как должен функционировать Веб.Люди полагаются на адресную строку и кнопку "Назад".Если вы переопределяете все свои ссылки, так что ваш сайт, по сути, представляет собой единую страницу, которая обновляется только через AJAX, вы ограничиваете возможности ваших пользователей перемещаться по вашему сайту и находить то, что им нужно.Это также лишает ваших пользователей возможности делиться тем, что они находят (в чем, собственно, и суть, верно?).

Подумайте о ментальной карте пользователя вашего сайта.Если они знают, что зашли через домашнюю страницу, затем они пошли искать что-то, затем они попали на страницу игр, затем они начали играть в определенную игру, это четыре отдельных действия, которые предпринял пользователь.Они могли бы выполнить несколько других более мелких, незначительных действий на каждой из этих страниц, но это основные элементы.Когда они нажимают кнопку "Назад", они должны ожидать, что вернутся по тому пути, по которому пришли.Если вы загружаете все эти страницы с помощью вызовов AJAX, вы предоставляете сайт, функциональность которого противоречит ожиданиям пользователя.

Разделите свой сайт на все важные функции (например, поиск, главная страница, профили, игры - это будет продиктовано тем, что представляет собой ваш сайт).Где бы вы ни ссылались на эти страницы, делайте это с помощью обычной ссылки и статического URL.

С "Аяксом" все в порядке.Но искусство в том, чтобы знать, когда это использовать, а когда нет.Если вы будете придерживаться модели, которую я набросал выше, ваши пользователи оценят это.

Другие советы

Используйте ajax для частей страницы, которые необходимо обновить, а не для всего объекта.Для этого вам следует использовать шаблоны.

Если вы хотите сохранить кнопку "Назад" для различных изменений состояния страницы, объедините их с # achors, чтобы изменить URL-адрес (не заставляя браузер выдавать другой GET).

Например, gmail выглядит следующим образом:

mail.google.com/#inbox/message-1234

все, что было за #, было изменением состояния страницы, которое произошло через ajax.Если я нажму "Назад", я снова перейду к папке "Входящие" (опять же, без доступа к другому браузеру).

Проверьте действительно простая история.Wiki не обновлялась в течение 10 месяцев, но я только что был на Ajax Experience 2008 и увидел презентация автор: Брайан Диллард об этом.Он говорит, что код 0.8 находится на его жестком диске.Надеюсь, скоро его можно будет загрузить.

Другое решение:

Разбивка на страницы AJAX и кнопка "Назад"

Это, кажется, лучший из существующих, работает с jQuery и Mootools.

Существует множество способов решить эту проблему, используя сложные методы Javascript, часто с использованием iframes, но я думаю, что в этой ситуации вам нужно задаться вопросом, почему вы используете AJAX.Действительно ли это сделает сайт более простым в использовании для пользователя?Мне кажется, вы используете его, потому что считаете, что это круто (что само по себе не всегда плохо), а не потому, что это действительно добавит какой-либо ценности вашим посетителям.На любом обычном веб-сайте обычные документы с гиперссылками почти всегда подходят для основной навигации.Это то, чего ожидают люди, и я бы не рекомендовал вам нарушать эти ожидания, основываясь на какой-то причудливой технологии.

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

Молодец, что обратила внимание на эту проблему, хотя есть много сайтов, которые просто используют AJAX и даже не думают об этом!

Попробуйте это простое и облегченное Путь JS библиотека.Это позволяет привязывать слушателей непосредственно к якорям.

Пример:

Path.map("#/page").to(function(){
    alert('page!');
});

AJAX не является лучшим решением для навигации именно по той причине, которую вы описали.Ошибка при перезагрузке заголовка и навигационной панели минимальна по сравнению с проблемой взлома навигационного интерфейса браузера.

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

Я бы предпочел использовать простые гиперссылки.Содержимое вашей страницы не должно занимать большую часть HTML-кода, так что это не большой выигрыш, если исключить его из запросов страницы.Делая каждый ресурс адресуемым (т.е.URL-адрес для каждого фрагмента контента, который может заинтересовать пользователя) является ключевой особенностью дизайна Интернета.Это означает, что кэширование может работать, и пользователи могут делиться закладками.Это позволяет работать Google, а также сайтам социальных закладок.

На мой взгляд, удаление пары HTML-байтов из последующих изменений страницы не стоит затраченных усилий.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top