// Создание объекта запроса с учетом кросс-браузерности. Количество вызовов: 1
jQuery.ajaxSettings.xhr = window.ActiveXObject !== undefined ? function() {
if ( this.isLocal ) { return createActiveXHR(); }
if ( document.documentMode > 8 ) { return createStandardXHR(); }
return /^(get|post|head|put|delete|options)$/i.test( this.type ) &&
createStandardXHR() || createActiveXHR();
} : createStandardXHR;
// Количество вызовов: 1
var xhrId = 0,
// Количество вызовов: 4
xhrCallbacks = {},
// Количество вызовов: 2
xhrSupported = jQuery.ajaxSettings.xhr();
/* Отмена открытых запросов, если страница не загрузилась по каким-либо причинам, либо при закрытии окна (вкладки) браузера. */
if ( window.attachEvent ) {
window.attachEvent( "onunload", function() {
for ( var key in xhrCallbacks ) { xhrCallbacks[ key ]( undefined, true ); }
} );
}
// Для проверки поддержки браузером кросс-доменных запросов. Количество вызовов: 1
support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
// Для проверки поддержки браузером технологии ajax. Количество вызовов: 1
xhrSupported = support.ajax = !!xhrSupported;
if ( xhrSupported ) {
// Функция, создающая объект для обработки ajax-запроса Количество вызовов: 1
jQuery.ajaxTransport( function( options ) { //... }
}
// Функция создания объекта XHR. Количество вызовов: 3
function createStandardXHR() {
try {
return new window.XMLHttpRequest();
} catch ( e ) {}
}
// Функция создания объекта XHR. Количество вызовов: 2
function createActiveXHR() {
try {
return new window.ActiveXObject( "Microsoft.XMLHTTP" );
} catch ( e ) {}
}
/* Установка значений по умолчанию для следующих настроек ajax-запроса: accepts, contents, converters */
jQuery.ajaxSetup( { //... } );
// Настройка индивидуального и глобального кэша для ajax-запросов типа script.
jQuery.ajaxPrefilter( "script", function( s ) {
if ( s.cache === undefined ) { s.cache = false; }
if ( s.crossDomain ) {
s.type = "GET";
s.global = false;
}
} );
// Создание объекта для обработки ajax-запроса типа script
jQuery.ajaxTransport( "script", function( s ) { //... } );
// Количество вызовов: 2
var oldCallbacks = [],
// Количество вызовов: 3
rjsonp = /(=)\?(?=&|$)|\?\?/;
// Установка значений по умолчанию для следующих настроек ajax-запроса: jsonp, jsonpCallback
jQuery.ajaxSetup( {
jsonp: "callback",
jsonpCallback: function() {
var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
this[ callback ] = true;
return callback;
}
} );
// Выявление, нормализация и установка callbacks для ajax-запросов типа json, jsonp
jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { //... }
// Функция разбора строки в массив узлов DOM. Количество вызовов: 2
jQuery.parseHTML = function( data, context, keepScripts ) { //... };
// Сохранение копии прежнего метода загрузки. Количество вызовов: 2
var _load = jQuery.fn.load;
// Функция загрузки URL на страницу. Метод .load(). Количество вызовов: 0
jQuery.fn.load = function( url, params, callback ) { //... };
/* Присоединение для общепринятых ajax-событий функции обработчика для одного или нескольких событий */
jQuery.each( [
"ajaxStart",
"ajaxStop",
"ajaxComplete",
"ajaxError",
"ajaxSuccess",
"ajaxSend"
], function( i, type ) {
jQuery.fn[ type ] = function( fn ) { return this.on( type, fn ); };
} );
// Функция проверки наличия элемента в jQuery.timers. Количество вызовов: 0
jQuery.expr.filters.animated = function( elem ) {
return jQuery.grep( jQuery.timers, function( fn ) {
return elem === fn.elem;
} ).length;
};
// Функция, получающая корреспондирующее с элементом окно. Количество вызовов: 2
function getWindow( elem ) {
return jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 ?
elem.defaultView || elem.parentWindow : false;
}
/* Функция, устанавливающая местоположение выбранного элемента относительно границ текущего документа. Количество вызовов: 1 */
jQuery.offset = { //... };
jQuery.fn.extend( { /* добавление следующих свойств в экземпляр jQuery: offset, position, offsetParent */ } );
// Создание scrollLeft и scrollTop методов
jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) { //... } );
// CSS-хуки для свойств top и left
jQuery.each( [ "top", "left" ], function( i, prop ) { //... } );
// Создание innerHeight, innerWidth, height, width, outerHeight и outerWidth методов
jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { //... } );
jQuery.fn.extend( { /* добавление следующих свойств в экземпляр jQuery: bind, unbind, delegate, undelegate */ } );
// Функция, определяющая количество выбранных элементов. Метод .size() Количество вызовов: 0
jQuery.fn.size = function() { return this.length; };
// Замена функции jQuery.fn.andSelf, которая больше не может использоваться
jQuery.fn.andSelf = jQuery.fn.addBack;
/* Проверка наличия js-скрипта «require.js» (библиотеки управления зависимостями JavaScript для улучшения скорости и качества кода) */
if ( typeof define === "function" && define.amd ) {
define( "jquery", [], function() { return jQuery; } );
}
// Карта к jQuery на случай перезаписи. Количество вызовов: 1
var _jQuery = window.jQuery,
// Карта к $ на случай перезаписи. Количество вызовов: 0
_$ = window.$;
/* Функция, отключающая использование $ в качестве переменной jQuery, без потери функциональности библиотеки jQuery. Количество вызовов: 0 */
jQuery.noConflict = function( deep ) {
if ( window.$ === jQuery ) { window.$ = _$; }
if ( deep && window.jQuery === jQuery ) { window.jQuery = _jQuery; }
return jQuery;
};
/* Зачастую если noGlobal является undefined, то jQuery добавит себя к глобальному window объект, за исключением случая когда загрузчик
модуля – CommonJS */
if ( !noGlobal ) { window.jQuery = window.$ = jQuery; }
// Завершение блока Модуля
return jQuery;
})
// Закрытие круглых скобок, в которые обернута IIFE.
);