BG Development


  Reply to this topicStart new topicStart Poll

> Chain dynamical generated ajax calls
nzhul
Публикувано на: 20-04-2018, 14:31
Quote Post



Име: Добромир
Група: Потребител
Ранг: Активен

Мнения: 259
Регистриран на: 16.06.09



Здравейте,
Имам следната ситуация.
Кода ми генериар X на брой ajax заявки.
Искам да имам callback който да се executeва когато всички X заявки са complete.

Това което до момента съм пробвал е с $.when() но той работи за дефиниран списък от заявки.

Последно се мъча да подкарам това, но не ми се получава.

CODE
           $.when([$.ajax({
               url: '/api/GoodDataUsers/GetProjectAttributes?projectId=' + 'someid',
               type: 'GET'
           }),$.ajax({
               url: '/api/GoodDataUsers/GetProjectAttributes?projectId=' + 'someid1',
               type: 'GET'
           }),$.ajax({
               url: '/api/GoodDataUsers/GetProjectAttributes?projectId=' + 'someid2',
               type: 'GET'
           }) ]).done(function(xhrCollection) {
               // xhrCollection returns an collection of promises but there is no single method that is executed when all of them are done.
           });


В примера масива от ajax заявкие е hardcodeнат но накрая ще бъде динамично генериран предварително.

Идея как трябва да се направи това ? Предполагам, че е възможно.
PMEmail PosterUsers Website
Top
nzhul
Публикувано на: 20-04-2018, 15:04
Quote Post



Име: Добромир
Група: Потребител
Ранг: Активен

Мнения: 259
Регистриран на: 16.06.09



Ок отговорих си на въпроса.

Callвам $.when с apply и му подавам ajax requestите като масив от аргументи icon_smile.gif.

CODE

           var arguments = [$.ajax({
               url: '/api/GoodDataUsers/GetProjectAttributes?projectId=' + 'someid0',
               type: 'GET'
           }),$.ajax({
               url: '/api/GoodDataUsers/GetProjectAttributes?projectId=' + 'someid1',
               type: 'GET'
           }),$.ajax({
               url: '/api/GoodDataUsers/GetProjectAttributes?projectId=' + 'someid2',
               type: 'GET'
           })];
           $.when.apply(null, arguments).done(function(call1, call2, call3) {
               // all requests are executed.
               debugger;
           });


icon_smile.gif
PMEmail PosterUsers Website
Top
d3xter
Публикувано на: 20-04-2018, 20:43
Quote Post



Име:
Група: Потребител
Ранг: Посетител

Мнения: 129
Регистриран на: 15.06.11



$.ajax връща Promise.

За да синхронизираш Promises се ползва Promise.all
PMEmail Poster
Top
Gamma Goblin
Публикувано на: 20-04-2018, 20:45
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1538
Регистриран на: 21.02.18



най-добре е да не се ползва джаваскрипт - не статично типизиран и не се компилира, което води бъгове и говнокод


--------------------
Напред! Живота е сраженье! Напред! И прав всегда ходи!
Напред, макар към поражение! Ако ще паднеш, прав падни!
---
Raw, and untamed in spirit, We chew this world and Spit it out
---
Challenge my own world to chaos
---
“I overcame myself, the sufferer; I carried my own ashes to the mountains; I invented a brighter flame for myself.”
PMEmail PosterUsers Website
Top
d3xter
Публикувано на: 20-04-2018, 21:06
Quote Post



Име:
Група: Потребител
Ранг: Посетител

Мнения: 129
Регистриран на: 15.06.11



QUOTE (Gamma Goblin @ 20-04-2018, 20:45)
най-добре е да не се ползва джаваскрипт - не статично типизиран и не се компилира, което води бъгове и говнокод

Щото TypeScript е супер icon_smile.gif
Ходи дебъгвай на production, като се сговни нещо icon_wink.gif
PMEmail Poster
Top
Gamma Goblin
Публикувано на: 20-04-2018, 21:11
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1538
Регистриран на: 21.02.18



UI-a трябва да е само ХТМЛ и цсс, така няма нужда от дебугване, пък и работи по-добре


--------------------
Напред! Живота е сраженье! Напред! И прав всегда ходи!
Напред, макар към поражение! Ако ще паднеш, прав падни!
---
Raw, and untamed in spirit, We chew this world and Spit it out
---
Challenge my own world to chaos
---
“I overcame myself, the sufferer; I carried my own ashes to the mountains; I invented a brighter flame for myself.”
PMEmail PosterUsers Website
Top
stewie
Публикувано на: 21-04-2018, 00:03
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 4653
Регистриран на: 14.07.16



Трябва да се измисли нов революционен начин директно да се набиват JSON-и в тиквите на реалните клиенти любезно фийднати от rest api-та и всевъзможни уеб сървиси. Както е казал другаря Сталин : нет UI, нет проблем.
PM
Top
bvbfan
Публикувано на: 21-04-2018, 07:53
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2985
Регистриран на: 08.12.13



Веб Асембли, но докато не почне да се набива байткод, Рест-овете и прочие ще си останат веб лайна.


--------------------
QUOTE (Bender @ 23-04-2015, 19:11)
Xamarin: ЛАПАЙ!
Ти: Добре...
PMEmail Poster
Top
0 потребители преглеждат тази тема в момента (0 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2018 | BG Development | All Rights Reserved
RSS 2.0