Инициирование перезагрузки на стороне сервера при вызове Ajax - PullRequest
1 голос
/ 02 августа 2011

Мне нужно инициировать перезагрузку со стороны сервера (PHP) во время вызова AJAX. Как мне это сделать. Я, честно говоря, не думаю, что это поддерживается.

Мой текущий метод состоит в том, чтобы использовать функцию заголовка PHP () и захватить ее как responseText от вызова AJAX, а затем выполнить добавление innerHTML.

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

Ответы [ 3 ]

2 голосов
/ 02 августа 2011

Отправьте команду / флаг обратно вашему обработчику Ajax, чтобы он вызывал следующий метод JavaScript на странице:

window.location.reload();
1 голос
/ 03 августа 2011

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

  1. Клиент отправляет AJAX-запрос на сервер.
  2. Сервер не закрывает соединение.
  3. Когда сервер хочет нажать. Сервер говорит:
    а. Обработка push-сообщения X
    б. Инициируйте новое соединение. (то есть переход к 1)
    <Сервер закрывает соединение>

Таким образом, всегда существует «зависшее» соединение, и как только сервер хочет ответить, клиент сразу же создает новое, которое снова зависает.

0 голосов
/ 03 августа 2011

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

Однако ваш сервер может отправить обратно весь документ, и вы можете затем «выбрать» часть для замены. jQuery позволяет это с помощью функции load .

Например, это перезагрузит ТЕЛО: $('body').load('ajax/page.html body');

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