Это проблема маршрутизации, а не проблема AJAX.
Если вы использовали другой инструмент ( кашель ASP.NET MVC кашель ), вы быпросто добавьте маршрут (и я надеюсь, что в PHP есть способ сделать это), который принимает URL-адреса, такие как
/home
/products
...
и перенаправляет их, скажем, на
/index.php?area=home
/index.php?area=products
Этообычно выполняется с помощью механизма перезаписи, когда используется вне хорошей системы URL-адресов MVC или RESTful.Я использую ISAPI Rewrite на IIS, но если вы работаете со стеком LAMP, я думаю, что Apache предоставляет модуль, который предоставляет те же возможности.(Google .htaccess
)
ПРЕДУПРЕЖДЕНИЕ: СЛЕДУЮЩИЕ СЛУЧАИ
И, за сколько это стоит,
Избегайте попытокнаписать все ваше приложение на JavaScript.Сервер там по причине.Частью вашей работы в качестве веб-разработчика является поглощение как можно большей части работы на вашем сервере.Проблемы производительности и совместимости браузера приведут вас в бешенство, когда вы попытаетесь сделать все на клиенте.
Во многих случаях избегать постбэков имеет смысл, но это не серебряная пуля, которую вы должны пытаться применить к каждой странице.Обычно имеет смысл загружать новую страницу при нажатии на ссылку.Это то, что ожидает пользователь, он более стабилен (поскольку большая часть необходимой инфраструктуры находится на стороне сервера) и не медленнее, чем AJAX-запрос на получение того же самого.
Правила:
- НИКОГДА не ломайте кнопку возврата.Без тщательного планирования большинство приложений AJAX нарушают это правило.
- См. Правило № 1.