Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ответ обработчика ajax запроса

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
demot
Отправлено: 06 Декабря, 2012 - 07:29:38
Post Id


Частый гость


Покинул форум
Сообщений всего: 143
Дата рег-ции: Окт. 2010  


Помог: 3 раз(а)




В разных источниках читал что для любых аякс запросов считается хорошим тоном отдавать ответ обработчиком, пусть даже пустоту (когда ответ не нужен). Так вот тут возникли различные разногласия на работе среди коллег. Стоит ли это делать и в чем вообще смысл?

В общем, господа, хочется узнать ваше мнение по этому поводу.

И если не трудно, то желательно бы еще и пруфлинки на эту тему, а то, как писал выше, раньше много где встречал постов на эту тему, а сейчас уже ищу специально, но найти не могу нигде подобной информации. Однако
 
 Top
avtor.fox
Отправлено: 06 Декабря, 2012 - 07:36:58
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




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

И зачем Вам пруфы то? И "еда" для размышлений низкого уровня.


Как узнать, нужно ли обрабатывать ответ скрипта? Соберите коллегию тех-отдела и задайте вопрос на форуме Улыбка
 
 Top
tato
Отправлено: 06 Декабря, 2012 - 07:45:29
Post Id



Посетитель


Покинул форум
Сообщений всего: 468
Дата рег-ции: Сент. 2011  
Откуда: Владивосток


Помог: 8 раз(а)




У нас на работе есть соглашение по которому Аякс всегда возврашает массив вида:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.     'statusCode'=>0,
  3.     'message'=>'',
  4.     'data'=>array(), // optional
  5. )
  6.  


Статус код 0 означает, что все хорошо и при этом message будет пустым.
Если статус код отличен от нуля, то в message будет какое-то сообщение.
Каждый статус код имеет свое сообщение. Это не касается обработки HTTP заголовков
они отдельно обрабатываются.

Если необходимо вернуть данные, то они будут в data. И конечно же все в JSON (=
(Добавление)
Забыл добавить, вся команда знает какие данные и как придут. Это помогает не задовать лишних вопросов типа "А как проверить прошел запрос или нет?"


-----
просто ?: сложно
 
 Top
demot
Отправлено: 06 Декабря, 2012 - 07:48:47
Post Id


Частый гость


Покинул форум
Сообщений всего: 143
Дата рег-ции: Окт. 2010  


Помог: 3 раз(а)




avtor.fox пишет:
demot всё просто.
Получив ответ от скрипта, мы сможем узнать как прошёл запрос и в дальнейшем сможем работать исходя из ответа.
Не получая ответа мы не узнаем, как был выполнен запрос. Удачен или нет и прочее.

И зачем Вам пруфы то? И "еда" для размышлений низкого уровня.


Как узнать, нужно ли обрабатывать ответ скрипта? Соберите коллегию тех-отдела и задайте вопрос на форуме Улыбка


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

Если брать во внимание синхронные запросы, тогда все проще. А вот в плане асинхронных...

Вот простой пример (только что придумал), счетчик кликов по какой-нибудь кнопке (средствами аякс). Алгоритм:
1. Клик по кнопке
2. Отправка аякс-запроса
3. В обработчике UPDATE....
а далее... мне в принципе не важно когда выполнится этот запрос, отсюда вопрос, просто вернуть echo ''; или же все-так инужно вернуть результат UPDATE? Или может вообще ничего не нужно возвращать?
Что правильней в данной ситуации и какие плюсы и минусы (модводные камни) могут быть при неотправке ответа вообще?
 
 Top
tato
Отправлено: 06 Декабря, 2012 - 07:51:35
Post Id



Посетитель


Покинул форум
Сообщений всего: 468
Дата рег-ции: Сент. 2011  
Откуда: Владивосток


Помог: 8 раз(а)




К вашему примеру, Я как заказчик прошу добавить сообщение:
"Спасибо за клик теперь рейтинг 123!"

Встает вопрос получения 123 и вопрос а правда ли UPDATE прошел и рейтинг изменился.

(Отредактировано автором: 06 Декабря, 2012 - 07:51:50)



-----
просто ?: сложно
 
 Top
demot
Отправлено: 06 Декабря, 2012 - 07:52:30
Post Id


Частый гость


Покинул форум
Сообщений всего: 143
Дата рег-ции: Окт. 2010  


Помог: 3 раз(а)




tato пишет:
У нас на работе есть соглашение по которому Аякс всегда возврашает массив вида...


Это естественно, когда есть какие-то общие правила в компании. Но хотелось бы именно знать как действительно правильно или может является признаком хорошего тона - всегда отдавать ответ, даже если он не нужен
 
 Top
tato
Отправлено: 06 Декабря, 2012 - 07:53:57
Post Id



Посетитель


Покинул форум
Сообщений всего: 468
Дата рег-ции: Сент. 2011  
Откуда: Владивосток


Помог: 8 раз(а)




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


-----
просто ?: сложно
 
 Top
demot
Отправлено: 06 Декабря, 2012 - 07:54:28
Post Id


Частый гость


Покинул форум
Сообщений всего: 143
Дата рег-ции: Окт. 2010  


Помог: 3 раз(а)




tato пишет:
К вашему примеру, Я как заказчик прошу добавить сообщение:
"Спасибо за клик теперь рейтинг 123!"

Встает вопрос получения 123 и вопрос а правда ли UPDATE прошел и рейтинг изменился.


Я в примере написал не просто так "мне в принципе не важно когда выполнится этот запрос", потому дополнений к "ТЗ" быть не должно. Если нужен ответ, естественно надо все проверить и отдать необходимое. Вопрос именно в том, нужно ли что-то отвечать, когда ответ не нужен?
 
 Top
tato
Отправлено: 06 Декабря, 2012 - 07:56:33
Post Id



Посетитель


Покинул форум
Сообщений всего: 468
Дата рег-ции: Сент. 2011  
Откуда: Владивосток


Помог: 8 раз(а)




Пожалуй самым веским аргументом, может быть:

Теперь представим, что другой программист будет работать с Вашим кодом.
Он будет отправлять запросы и не получать ответа. Соответственно придется лезть в обработчик и изучать чего там происходит, вместо того что бы получить банальное "success"
(Добавление)


Цитата:
потому дополнений к "ТЗ" быть не должно


Ох... как бы Мы все этого хотели...


-----
просто ?: сложно
 
 Top
demot
Отправлено: 06 Декабря, 2012 - 08:00:34
Post Id


Частый гость


Покинул форум
Сообщений всего: 143
Дата рег-ции: Окт. 2010  


Помог: 3 раз(а)




tato пишет:
Пожалуй самым веским аргументом, может быть:
Теперь представим, что другой программист будет работать с Вашим кодом.
Он будет отправлять запросы и не получать ответа.


ответ по конкретному запросу не требуется

Ответа на свой вопрос я все равно не получаю....
 
 Top
tato
Отправлено: 06 Декабря, 2012 - 08:02:49
Post Id



Посетитель


Покинул форум
Сообщений всего: 468
Дата рег-ции: Сент. 2011  
Откуда: Владивосток


Помог: 8 раз(а)




demot пишет:
ответ по конкретному запросу не требуется


Цитата:
Соответственно придется лезть в обработчик и изучать чего там происходит, вместо того что бы получить банальное "success"


-----
просто ?: сложно
 
 Top
avtor.fox
Отправлено: 06 Декабря, 2012 - 08:04:37
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




demot ответ нужно давать всегда. Уясните это.
 
 Top
tato
Отправлено: 06 Декабря, 2012 - 08:09:12
Post Id



Посетитель


Покинул форум
Сообщений всего: 468
Дата рег-ции: Сент. 2011  
Откуда: Владивосток


Помог: 8 раз(а)




Хорошо, представте ситуацию, Вы кладете деньги на телефон, но оператор Вас не информирует о том, пришли деньги или нет. Вы можете сами посмотреть, если захотите.

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

Вы думаете с позиции одного разработчика, которы сам код написал и знает как и что происходит в нем, но если вы мне дадите API и скажете, что там что-то обнавляется 100%, Я вам не поверю и захочу убедится, но смогу сделать это только прочитав Ваш код. Т.е. потратив время.


-----
просто ?: сложно
 
 Top
demot
Отправлено: 06 Декабря, 2012 - 08:10:39
Post Id


Частый гость


Покинул форум
Сообщений всего: 143
Дата рег-ции: Окт. 2010  


Помог: 3 раз(а)




avtor.fox пишет:
demot ответ нужно давать всегда. Уясните это.


Да я это понимаю. И всегда пишу код с учетом этого. Но аргументов, когда коллеги говорят что это лишнее, привести не могу, кроме как "частенько встречал это в статьях". Потому сюда и обратился.

Ответ я хотел бы получить в таком виде: "Если не отправить ответ, то..... могут возникнуть такие-то проблемы: 1. ... 2. .... 3. ....".
 
 Top
avtor.fox
Отправлено: 06 Декабря, 2012 - 08:18:52
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




demot например тот-же самый лайк статьи/комментария/фотографии. Отправили запрос. Если ответа нет, то мы не узнаем добавился ли +1 или нет. Если ответ принимается, смотрим. Если ответ положительный, продолжаем работу (меняем например кол-во лайков или можно даже ничего не выводить). Если в ответе ошибка, прекращаем работу (или выводим ошибку).

Или например авторизация пользователя. Отправляем данные и если запрос неудачен, что Вы скажете пользователю? Ровным счётом, ничего. И что Вы сделаете без ответа, если запрос удачен?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB