Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Непоследовательная работа JS

Сообщения:  [1-9] 

 
 автор: ЯСА   (05.11.2012 в 18:08)   письмо автору
 
   для: gumplen   (05.11.2012 в 17:48)
 

почему нельзя?
можно

во всякой функции можно написать:
function abc ()
{
// чего-то делаем
alert ('сделали');
}

и alert () появится только тогда, когда весь предыдущий код будет исполнен

разумеется:
-- если код функции связан с рендерингом страницы, т.е. если в результате работы страница претерпит серьёзные изменения (будет переписана или добавлена на страницу какая-то таблица, коя изменит все размеры страницы), то alert () выскочит раньше, чем страница приведёт себя в надлежащий вид
-- а если код исполняется очень долго, то ещё до вашего alert () может "выскочить" системное сообщение "скрипт исполняется слишком долго. остановить исполнение? или продолжить?"

  Ответить  
 
 автор: gumplen   (05.11.2012 в 17:48)   письмо автору
 
   для: confirm   (05.11.2012 в 17:43)
 

То есть узнать закончила функция работать или нет нельзя?

  Ответить  
 
 автор: confirm   (05.11.2012 в 17:43)   письмо автору
 
   для: gumplen   (05.11.2012 в 17:29)
 

Молодцом, AJAX, это несколько иное, чем ваша пользовательская функция обработки массива. Даже, если, вы бы написали пример скажем так, грамотно, имея ввиду присваивание, возврат из вашей функции не будет ждать окончания запроса и произойдет сразу.

Можно либо событие "прикрутить", либо проверять по таймеру завершение, либо..., не знаю что еще либо, так как что вы там делаете, и почему долго, и как делаете...

  Ответить  
 
 автор: gumplen   (05.11.2012 в 17:29)   письмо автору
 
   для: confirm   (03.11.2012 в 04:18)
 

А если в функции выполняется, например, обработка большого массива данных (не обязательно ajax)? Суть в том, что работает она долго (и я не знаю точно сколько).
То есть, я не знаю, что происходит в функции. AJAX я взял для примера.

  Ответить  
 
 автор: confirm   (03.11.2012 в 04:18)   письмо автору
 
   для: gumplen   (02.11.2012 в 14:59)
 

Тишина мертвецкая.
Если то, что нужно, это статус 200 или подразумеваются полученные данные, значит вы знаете где это можно посмотреть. Вот там где вы проверяете это, вот от туда и необходимо их возвращать (но есть маленькое но при этом), а вы пытаетесь вернуть контекст запроса.
По тому как вы обращаетесь к своей функции не видно даже и намека на то, что вам нужно вообще что-то возвращать - обращение не содержит аргументов. Поэтому назначайте обработчик события cuccess, и в нем оперируйте полученными данными, либо непосредственно в теле этой функции.

  Ответить  
 
 автор: confirm   (02.11.2012 в 15:00)   письмо автору
 
   для: gumplen   (02.11.2012 в 14:59)
 

Что возвращает, какой статус?

  Ответить  
 
 автор: gumplen   (02.11.2012 в 14:59)   письмо автору
 
   для: confirm   (02.11.2012 в 14:57)
 

возвращает то что нужно. просто отрабатывает около секунды

  Ответить  
 
 автор: confirm   (02.11.2012 в 14:57)   письмо автору
 
   для: gumplen   (02.11.2012 в 14:30)
 

Просто вызовите функцию (ничего возвращать не надо), проверьте статус, что возвращает?

  Ответить  
 
 автор: gumplen   (02.11.2012 в 14:30)   письмо автору
 
 

Здравствуйте.
Есть функция такого плана:


function a(){
   relult = большой запрос ajax
   return result;
}
message = a();
alert(message)


Вызов этой функции дает результат "undefined", т.к. ajax запрос выполняется достаточно долго, и не дожидаясь результата выводится alert.

Как быть?

  Ответить  

Сообщения:  [1-9] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования