Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

tiapko avatar tiapko 31 Точки

Добри практики при ползване на AJAX

Здравейте,

 

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

 

        $.ajax({
            url: `/path/to/resource`,
            method: 'POST',
            data: someData,
            dataType: 'json',
            success: someFunction,
            error: someErrorFunction
        });

но по това, което прочетох, като се разрових видях, че този подход среща повече критика от колкото одобрение, като препоръките е да се пише по следния начин

 

        $.ajax({
            url: `/path/to/resource`,
            method: 'POST',
            data: someData,
            dataType: 'json',
        }).done(function(data) {
             // If successful do something
        }).fail(function(jqXHR, textStatus, errorThrown) {
             // If fail  do something else
         });

 

Можете ли да кажете, кой подход се счита за добра практика? Аз до момента мислех, че е първият и умишлено го следвах, но се оказва, че май не е така.

Тагове:
1
JavaScript Applications
viktor.pts avatar viktor.pts SoftUni Team Trainer 332 Точки

Двете правят едно и също нещо, ако си въвеждаш функцията за успех в момента на създаване на заявката. Втория вариант ти позволява да създадеш заявката и да върнеш Promise - така може някъде другаде да закачиш функцията за успех чрез .then(). Примерно:

function makeRequest(url) {
  // Return promise
  return $.ajax({
    url
    /* headers and data */
  });
}

function updateImages() {
  makeRequest('images')
    .then(updateHTML)
    .catch(handleError);
}

function updateHTML(data) { ... }
function handleError(reason) { ... }

Спроед някои този вариант е по-лесно четим, но според четимостта идва от изваждането на дефинициите на функциите за успех и грешка отвън. Съвета ми е позлвай каквото ти е удобно, или каквото ползват колегите в офиса, и освен ако не става въпрос за един ред, си изкарвай функциите като отделна дефиниция.

И нека не забравяме че всичко това се обезмисля ако ползваме async/await.

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.