Как показать загрузку страницы без JavaScript? - PullRequest
0 голосов
/ 26 апреля 2011

Я сейчас перестраиваю наш сайт для пользователей, у которых не включен javascript (удивительно высокий процент наших посетителей).

Как лучше всего показать пользователю, что что-то загружается без использования JavaScript.

Справочная информация. Для входа в систему нам необходимо выполнить поиск сервера электронной почты, прежде чем кто-то войдет в систему. Иногда это может занять 5-10 секунд, иногда до двадцати.

Текущее мышление: я должен перезагрузить целевую страницу с новой кнопкой с надписью loading и значком загрузчика, а затем перенаправить ее на страницу, которая фактически выполняет вход в систему с заголовком

Просто понял, что я не могу этого сделать, потому что перезагрузка php должна быть до того, как что-либо отобразится на странице.

Есть идеи? Возможно, есть CSS, который я могу использовать?

Могу ли я создать скрытую форму и затем отправить форму с php после завершения операций?

Ответы [ 3 ]

0 голосов
/ 26 апреля 2011

Это не совсем возможно в «традиционном» смысле, когда вы видите вращающуюся иконку «загрузки», поскольку javascript - это единственный способ манипулировать текущей страницей без обновления.CSS используется только для презентации и не имеет никакого способа узнать, была ли нажата кнопка.И если большинство ваших пользователей работают с IE, в любом случае маловероятно, что более «продвинутые» функции CSS будут работать.).Используйте целевую страницу со значком загрузки и текстом «пожалуйста, подождите», который включает логику входа в систему, затем перенаправьте на сам сайт, используя метаобновление (или перенаправление 302) с тайм-аутом 20 секунд (или приблизительный максимумзначение, которое потребуется для входа в систему).

Сочетание этого с ответом Чарльза, вероятно, сработает.Отобразите заголовок метаобновления с 20-секундным тайм-аутом на странице базовой загрузки, затем укажите PHP для имени входа ниже, чем в исходном файле.

0 голосов
/ 26 апреля 2011

для перезагрузки без JavaScript вы можете использовать метаобновление

<meta http-equiv="refresh" content="5;url=http://example.com/">

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

без javascript вы можете многое сделать, но это намного сложнее
есть даже некоторые методы ajax-без-javascript ...

0 голосов
/ 26 апреля 2011

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

Вы также можете попробовать использовать meta refresh tag . Каждый раз, когда страница перезагружается, скрипт может проверить, выполнена ли аутентификация.

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