Предисловие: 1. в JS не разбираюсь, разве что методом тыка, за счет знания PHP, C#, C++ 2. как работает (принцип) AJAX, нашел в интернете один видео урок, вроде все понятно, за место пользователя JS сам отправляет запросы на сервер и получает и обрабатывает ответ (грубо говоря). 3. Вопрос возник - просто стало интересно. Сам вопрос: Как реализуется в нормальных (толковых проектах) AJAX? так же как в PHP через единую точку входа (с GET параметрами) или под AJAX идут разные страницы?
Одна точка входа всегда, а дальше по желанию, кто-то делает отдельные контроллеры под ajax, кто-то по смыслу в другие контроллеры добавляет.
т.е. одна страница (index.php) она является одновременно точкой входа и для вообще и для AJAX? или для сайта одна, а для AJAX другая (например index.php - сайт, ajax.php для AJAX)?
Можно делать как по кайфу, главное, чтобы потом и самому не запутаться, и других не запутать. С помощью пыхи можно определить, что запрос XmlHttpRequest - отсюда можно и плясать.
ИМХО, по ситуации. Если в ответ на ajax-запрос нужно просто сделать запрос к б.д. и вернуть данные в json-формате - то не вижу смысла дёргать всю систему. Я бы написал отдельный маленький скрипт. Ну а если для генерации ответа нужно будет использовать кучу всяких классов и функций движка - то через index проще будет наверно.
нет такого способа. если говорить о каких-то конкретных кмсках или движках, то у некоторых людей, наверное, при длительном использовании складываются кое-какие предпочтения в плане структуризации проектов, но это уже скорее приходит с опытом. каждый делает так как ему удобнее. Добавлено спустя 2 минуты: кстати, всех с праздником))
Одна точка входа и в PHP не всегда лучшее решение (как и вообще в web). Эта "точка" обычно представляет собой почти пустой файл, в котором вызывается один метод одного объекта, который в итоге с помощью множества условий и проверок определяет, что нужно показать пользователю. В конкретном проекте можно сократить путь от запуска до отображения, записав в коде готовый набор инклюд и некоторый алгоритм вызова функций с определенными аргументами. Что касается ajax, то на мой взгляд его лучше выделить в отдельную структуру (не site.com/cat/ajax/action, а site.com/ajax/cat/action). AJAX должен быть "фишкой", но весь контент сайта должен быть доступен и без JavaScript. И не забудь позаботиться о "защите от дурака", чтобы твой ajax было непросто дергать с другого сайта.