Как отправить запрос ajax до загрузки страницы

Я хочу проверить статус входа пользователя с помощью запроса ajax. В зависимости от того, вошел ли пользователь в систему, я хочу отобразить либо ввод имени пользователя / пароля, либо имя пользователя. В настоящее время запрос отправляется на body.onload, и пока не будет получен ответ, отображается индикатор prgoress. Есть ли способ лучше?


Предположим, что в требованиях указано, что прямой обработки на стороне сервера быть не должно.

Если у вас нет обработки на стороне сервера, как вы проверяете их логин?

Neall 10.10.2008 18:39
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
1
4 372
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Почему бы не проверить, прежде чем пользователю будет предоставлен HTML-код?

Если вы просто используете статический HTML с Javascript, я бы предложил использовать JQuery и использовать $ (document) .ready ():

Похоже, что операция должна быть выполнена на сервере до того, как страница будет отрисована. Что произойдет, если у кого-то отключен javascript?

Это можно сделать, просто это немного отличается от того, что было нормой. Если у них не включен javascript, они ничего не видят (потому что данные не загружаются). Но да, вы должны быть очень осторожны с таким подходом.

Steve g 10.10.2008 18:15

Да, у меня в голове всегда срабатывают красные флажки, когда все, что связано с безопасностью / входом в систему, выполняется с помощью javascript.

swilliams 10.10.2008 18:18

+1 Проверку безопасности, которая показывает, как страница изначально отображается, лучше всего выполнять в коде программной части.

Kon 10.10.2008 18:38

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

Если вас задерживает медленная загрузка изображений или другого содержимого, отличного от HTML, попробуйте одну из различных библиотек JavaScript. Я всегда рекомендую jQuery, который имеет следующий синтаксис:

$(document).ready(function() {
  // The DOM is fully loaded now, but images might still be loading.
});

Я считаю, что если вы используете встроенный javascript, он должен выполняться, как только он встречается:

<HTML><HEAD>...</HEAD>
<BODY>
<script>
document.write("This is written before anything else");
</script>
This come later.
</BODY>
</HTML>
Ответ принят как подходящий

Если вы не хотите зависеть от набора инструментов, вы можете создать свою собственную функцию DOMReady, которая выглядит примерно так:

/* Usage: DOMReady(ajaxFunc); */
function DOMReady(f) {
    if (!document.all) {
        document.addEventListener("DOMContentLoaded", f, false);
    } else {
        if (document.readystate == 'complete') { 
            window.setTimeout(f, 0);
        }
        else {
            //Add event to onload just if all else fails
            attachEvent(window, "load", f);
        }
    }
}

Или для более сложного решения: http://snipplr.com/view/6029/domreadyjs/

Другие вопросы по теме