Створіть функцію для виклику свого API. У межах цієї функції ми визначаємо запит callApiRequest = $.get(...
- навіть якщо це визначення змінної, запит викликається негайно, але тепер у нас запит визначений як змінна. Перед тим, як викликати запит, ми перевіряємо, чи визначена наша змінна, typeof(callApiRequest) != 'undefined'
а також чи є її очікування suggestCategoryRequest.state() == 'pending'
- якщо обидва є істинними, ми .abort()
запиту, який не дозволить запустити зворотний виклик успіху.
// We need to wrap the call in a function
callApi = function () {
//check if request is defined, and status pending
if (typeof(callApiRequest) != 'undefined'
&& suggestCategoryRequest.state() == 'pending') {
//abort request
callApiRequest.abort()
}
//define and make request
callApiRequest = $.get("https://example.com", function (data) {
data = JSON.parse(data); //optional (for JSON data format)
//success callback
});
}
Ваш сервер / API може не підтримувати запит на скасування (що робити, якщо API вже виконав якийсь код?), Але зворотний виклик javascript не запуститься. Це корисно, коли, наприклад, ви надаєте користувачеві пропозиції щодо введення, наприклад введення хештегів.
Ви можете додатково розширити цю функцію, додавши визначення зворотного виклику помилок - що має відбутися, якщо запит перервано.
Загальним випадком використання цього фрагмента буде введення тексту, яке запускається keypress
події. Ви можете використовувати тайм-аут, щоб запобігти надсиланню (деяких) запитів, які вам доведеться скасувати .abort()
.