Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проверка ajax наличие файла (https://javascript.ru/forum/misc/71075-proverka-ajax-nalichie-fajjla.html)

Sonya 24.10.2017 15:53

Проверка ajax наличие файла
 
Здравствуйте! Подскажите, пожалуйста. Для примера, вот так я хочу, чтобы пользователи через аякс узнавали о наличии файла на сервере (alert для примера):
$.ajax("http://site.ru", {
    success: function() {
        alert("Файл существует");
    };
    error: function() {
        alert("Файл не существует");
    };
});

Вызов должен происходить каждые 5 секунд, не будет ли это нагружать сервер, если количество посетителей больше 5 тыс.

Sonya 24.10.2017 16:01

Да, и о коде, может лучше сделать так?
$.ajax("http://site.ru", {
    success: function() {
        alert("Файл существует");
    },
    error: function() {
        alert("Файл не существует");
    },
   method: "HEAD"
});

laimas 24.10.2017 18:02

Криво синтаксически метод написан. И в чем же заключается проверка существования файла?

Sonya 24.10.2017 19:45

Цитата:

Сообщение от laimas (Сообщение 468116)
Криво синтаксически метод написан.

А как не криво будет?
Цитата:

Сообщение от laimas (Сообщение 468116)
И в чем же заключается проверка существования файла?

В ответе сервера. Есть успешно значит выведет "success", если нет, то ошибка "error".

laimas 24.10.2017 20:12

Цитата:

Сообщение от Sonya
А как не криво будет?

http://api.jquery.com/jquery.ajax/

Цитата:

Сообщение от Sonya
В ответе сервера.

А обращение к индексному файлу домена "http://site.ru" как-то определяет наличие неких файлов на нем?

Sonya 24.10.2017 20:40

Цитата:

Сообщение от laimas (Сообщение 468124)
А обращение к индексному файлу домена "http://site.ru" как-то определяет наличие неких файлов на нем?

Пусть будет "http://site.ru/api", у меня вопрос, будут ли запросы перегружать сервер, и какой из двух приведенных кодов, оптимальнее.

laimas 24.10.2017 21:02

Вряд ли одновременно ваш сайт будет запрашивать все 5000 ваших пользователей. А что касается оптимальности, то разницы между двумя приведенными нет никакой, если вам просто отправить запрос. HEAD метод тоже самое, что и GET, но не будет тела ответа, а заголовки вы не анализируете. Поэтому, вы проверьте свой код в реалии и посмотрите что при этом получите. Это и будет ответом решает ли это вашу задачу. Довольно таки странная проверка.

Sonya 24.10.2017 21:10

Скрипт проверенный, работает, что же касается запросов, то их может быть и больше, именно поэтому и интересуюсь нагрузкой на сервер.

laimas 24.10.2017 21:19

Цитата:

Сообщение от Sonya
Скрипт проверенный, работает

Уверены, что отвечает задаче? Вы не учитываете того, что ошибка запроса генерируемая Ajax еще не означает, что файла нет. Однозначно на это может дать только статус ответа - 404, остальное только ваши предположения.

Чтобы завалить ваш сервер нужно одновременно подать на него массу запросов, которые он не cможет обработать, с вашими пользователями через каждые 5 секунд, этого слишком мало.

Не знаю чего вы делаете, но может быть как то иначе это решать.

Sonya 24.10.2017 21:32

Цитата:

Сообщение от laimas (Сообщение 468130)
Однозначно на это может дать только статус ответа - 404, остальное только ваши предположения.

Вы абсолютно правы, именно поэтому при отсутствие файла, у меня выдается ошибка 404. Спасибо Вам за ответ.


Часовой пояс GMT +3, время: 03:09.