.ajaxTransport()

05.03.2023
166
Использовании метода .ajaxTransport() в jQuery для настройки отправки и получения запросов.

Транспорт - это объект, который предоставляет два метода, send и abort, которые используются внутренне $.ajax() для отправки запросов. Транспорт - это наиболее продвинутый способ улучшить $.ajax(), и следует использовать его только в крайнем случае, когда предварительная фильтрация и конвертеры недостаточны.

Поскольку каждый запрос требует свой собственный экземпляр транспортного объекта, транспорты не могут быть зарегистрированы непосредственно. Поэтому вы должны предоставить функцию, которая возвращает транспорт вместо этого.

Пример 1: Основы .ajaxTransport()

Для начала работы с технологией Ajax в jQuery необходимо ознакомиться с методом .ajaxTransport(). Этот метод позволяет настраивать отправку и получение запросов. Пример кода:

$.ajaxTransport( function( options, originalOptions, jqXHR ) {
    if ( /* проверка на то, что нужно использовать этот транспорт */ ) {
        return {
            // тут настройки транспорта
            send: function( headers, completeCallback ) {
                // тут осуществляется отправка запроса
            },
            abort: function() {
                // тут прерывается отправка запроса
            }
        };
    }
});

Пример 2: .ajaxTransport() с транспортом Long Polling

Long Polling - это технология, которая позволяет связать сервер и клиент, чтобы сервер мог отправлять данные на клиентскую сторону в режиме реального времени. Пример кода:

$.ajaxTransport( "long-polling", function( options, originalOptions, jqXHR ) {
    // тут настройки транспорта Long Polling
    var pollInterval = setInterval(function() {
        $.ajax({
            // тут осуществляется отправка запроса
        }).done(function(data) {
            // тут обрабатывается полученный ответ
            if (/* проверка на окончание работы */) {
                clearInterval( pollInterval );
                completeCallback( /* что вернуть по итогам работы */ );
            }
        });
    }, /* интервал */);
    return {
        // тут настройки транспорта
        send: function( headers, completeCallback ) {
            // тут осуществляется отправка запроса
        },
        abort: function() {
            // тут прерывается отправка запроса
        }
    };
});

Пример 3: .ajaxTransport() с транспортом Comet

Comet - это технология, которая позволяет связать сервер и клиент, чтобы сервер мог отправлять данные на клиентскую сторону в режиме реального времени. Пример кода:

$.ajaxTransport( "comet", function( options, originalOptions, jqXHR ) {
    // тут настройки транспорта Comet
    return {
        // тут настройки транспорта
        send: function( headers, completeCallback ) {
            // тут осуществляется отправка запроса
        },
        abort: function() {
            // тут прерывается отправка запроса
        }
    };
});

Пример 4: .ajaxTransport() с транспортом Server-Sent Events

Server-Sent Events - это технология, которая позволяет серверу отправлять данные на клиентскую сторону в режиме реального времени. Пример кода:

$.ajaxTransport( "sse", function( options, originalOptions, jqXHR ) {
    // тут настройки транспорта Server-Sent Events
    return {
        // тут настройки транспорта
        send: function( headers, completeCallback ) {
            // тут осуществляется отправка запроса
        },
        abort: function() {
            // тут прерывается отправка запроса
        }
    };
});

Пример 5: .ajaxTransport() с транспортом WebSockets

WebSockets - это технология, которая предоставляет полнодуплексное взаимодействие между сервером и клиентом. Пример кода:

$.ajaxTransport( "websocket", function( options, originalOptions, jqXHR ) {
    // тут настройки транспорта WebSockets
    return {
        // тут настройки транспорта
        send: function( headers, completeCallback ) {
            // тут осуществляется отправка запроса
        },
        abort: function() {
            // тут прерывается отправка запроса
        }
    };
});

Пример 6: .ajaxTransport() с транспортом JSONP

JSONP - это технология, которая позволяет получать данные с другого домена. Пример кода:

$.ajaxTransport( "jsonp", function( options, originalOptions, jqXHR ) {
    // тут настройки транспорта JSONP
    return {
        // тут настройки транспорта
        send: function( headers, completeCallback ) {
            // тут осуществляется отправка запроса
        },
        abort: function() {
            // тут прерывается отправка запроса
        }
    };
});

Пример 7: .ajaxTransport() с транспортом XDomainRequest

XDomainRequest - это технология, которая позволяет получать данные с другого домена. Пример кода:

$.ajaxTransport( "xdomain-request", function( options, originalOptions, jqXHR ) {
    // тут настройки транспорта XDomainRequest
    return {
        // тут настройки транспорта
        send: function( headers, completeCallback ) {
            // тут осуществляется отправка запроса
        },
        abort: function() {
            // тут прерывается отправка запроса
        }
    };
});

Пример 8: .ajaxTransport() с транспортом CORS

CORS - это технология, которая позволяет получать данные с другого домена. Пример кода:

$.ajaxTransport( "cors", function( options, originalOptions, jqXHR ) {
    // тут настройки транспорта CORS
    return {
        // тут настройки транспорта
        send: function( headers, completeCallback ) {
            // тут осуществляется отправка запроса
        },
        abort: function() {
            // тут прерывается отправка запроса
        }
    };
});

Пример 9: .ajaxTransport() с транспортом XMLHTTPRequest

XMLHTTPRequest - это технология, которая позволяет отправлять и получать данные в формате XML. Пример кода:

$.ajaxTransport( "xmlhttprequest", function( options, originalOptions, jqXHR ) {
    // тут настройки транспорта XMLHTTPRequest
    return {
        // тут настройки транспорта
        send: function( headers, completeCallback ) {
            // тут осуществляется отправка запроса
        },
        abort: function() {
            // тут прерывается отправка запроса
        }
    };
});

Пример 10: .ajaxTransport() с транспортом WebSocket

WebSocket - это технология, которая предоставляет полнодуплексное взаимодействие между сервером и клиентом. Пример кода:

$.ajaxTransport( "websocket", function( options, originalOptions, jqXHR ) {
    // тут настройки транспорта WebSocket
    return {
        // тут настройки транспорта
        send: function( headers, completeCallback ) {
            // тут осуществляется отправка запроса
        },
        abort: function() {
            // тут прерывается отправка запроса
        }
    };
});

Заключение

Таким образом, .ajaxTransport() в jQuery - это очень полезный метод, который позволяет настраивать отправку и получение запросов.