Включить PHP-файл, когда установлена ​​переменная javascript - PullRequest
0 голосов
/ 31 июля 2011

У меня есть проект, в котором разные страницы сайта будут загружаться в одну оболочку; при щелчке по ссылке на страницу, содержимое заключается в том, что страница загружается в оболочку, а пользователь не переносится на новую страницу. Сайт создается с использованием PHP и MySQL, и страница не должна перезагружаться. Очевидно, это должно быть одно плавное движение.

Я пробежал через несколько вариантов, которые не совсем обрезали. Я рассмотрел только включение всех файлов и размещение их в элементах div без отображения, чтобы при выборе страницы JavaScript обновлял отображение div до видимого. Проблема заключается в том, что он вызывает анализ ВСЕХ страниц, что означает просто лишние запросы к базе данных и, как следствие, более медленное время загрузки страницы.

Еще одна вещь, которую я пробовал, - это запуск вызова AJAX при нажатии на ссылку страницы. JavaScript передаст имя страницы в скрипт PHP, который установит переменную сеанса $ _ SESSION ['page_name'], равную переданному имени страницы. Используя это, я могу сделать что-то вроде этого:

                            //assume $page is equivalent to $_SESSION['page_name']
            if(isset($page) && file_exists("pages/$page")
            {
                require_once "pages/$page";
            }

Но для этого необходимо обновить страницу, чтобы она работала. Я пытаюсь сделать все это без перезагрузки страницы.

Так что теперь я немного застрял. Есть предложения?

Ответы [ 3 ]

2 голосов
/ 31 июля 2011

Не используйте $ _SESSION; просто используйте параметр GET или POST при запуске вашего запроса ajax. То есть вместо получения /something.php вместо получения /something.php?page=xyz. Затем используйте параметр в вашем PHP, чтобы определить, что требуется

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

1 голос
/ 31 июля 2011

JQuery.load() с простым контроллером для загрузки представлений?

1 голос
/ 31 июля 2011

Ваш контрольный пункт - клиент.Пусть JavaScript установит куки, если / когда успешные ответы ajax будут запущены.Когда JS завершает вызов AJAX, установите cookie.На ваших событиях клика проверьте, какие куки вам нужны, и делайте соответствующие вызовы AJAX (или нет), в зависимости от того, существует куки или нет.

Не возлагайте ответственность за обработку состояния на ваш сервер вэтот случай.

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