Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > Не нужен ответ сервера, не хочу ждать.


Автор: MorrisonHotel 1.11.2010, 01:24
Код

<script language="javascript">$.ajax({type: "GET", url: "smth url..."});</script>

Отправил запрос, а ответ не нужен. Синим цветом - ожидание ответа сервера. Как от него избавиться?

http://ipicture.ru/

На всякий случай отдаю 204 заголовок
Код

header('HTTP/1.0 204 No Content');

Автор: ksnk 1.11.2010, 01:37
можно поставить очень короткий http://api.jquery.com/jQuery.ajax/.
А чем мешает эта задержка? Ajax все равно сразу продолжает дальше работать?

Автор: MorrisonHotel 1.11.2010, 01:46
Спасибо, попробую поиграться с таймаутом. Планируется, что на странице будет до 10 таких запросов, а это влияет на скорость загрузки страницы, что не есть хорошо.

Автор: ayax2005 1.11.2010, 03:13
Если запросы ничего не возвращают, вставьте их вызов в конец страницы.
А вообще, попробуйте сразу после вызова добавить какое-то другое действие js - насколько я помню, соединение должно оборваться, если я ничего не путаю.

Автор: MorrisonHotel 1.11.2010, 03:46
ayax2005, они в конце страницы. С таймаутом ничего не вышло, если его выставить ниже 300 мс, то на локалхосте получается:

http://ipicture.ru/

Теперь вопрос не по теме, можно ли используя PHP отправить заголовки до завершения скрипта? Впринципе, это частичное решение.

Автор: MorrisonHotel 1.11.2010, 04:28
Цитата
Теперь вопрос не по теме, можно ли используя PHP отправить заголовки до завершения скрипта? Впринципе, это частичное решение.

Коле ajax ждет ответа сервера, а сервер ждет завершения скрипта, чтобы отдать заголовки, будем знакомиться с темными силами - решение нашлось http://www.cusok.ru/new558.htm.

Вопрос закрыт.

Автор: gcc 1.11.2010, 10:40
Код

    $.post('/reg/add', $('#form_regist') );

Автор: нуп 3.11.2010, 14:42
async : true?

Автор: ksnk 3.11.2010, 15:28
нуп, ему нужно было исполнение скриптов на сервере в фоне.  smile 

Автор: steyraug 26.11.2010, 01:15
Про что-то подобное читал, что на серверном скрипте надо закрыть STDOUT.

Автор: gcc 26.11.2010, 06:49
steyraug, если работает mod_php или mod_perl, то не так просто это сделать, решение нету вродебы...

а чем такой вариант не подходит: 
Код

    $.post('/', $('#form_id').serialize());


?

Автор: MorrisonHotel 26.11.2010, 07:05
Браузер (клиент) в любом случае ждет заголовков, как бы он тогда узнал, что запрос дошел до сервера? Ни пост, ни гет-запросы от этого не избавят. Я эту проблему уже решил постом выше, тему надо бы закрыть.

gcc, вы предлагаете совсем не то.

Автор: gcc 26.11.2010, 07:24
ну если написать 
Код

close STDOUT;


то свзяь с браузером оборвется, а скрипт пойдет дальше

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)