Ответ 1
Обновление 2016
Вы можете использовать этот инструмент для создания собственной пользовательской версии jQuery.
Как в jQuery 2.1.1
Максимальный размер файла неограничен: 241.55 Kb
Ajax Только minified: 49.60 КБ
Это сокращение 5x.
Есть ли только часть Ajax jQuery? Дело в том, что мне не нужна вся библиотека, но только ее часть Ajax (мне нужно включить эту часть на несколько фреймов).
Вы можете использовать этот инструмент для создания собственной пользовательской версии jQuery.
Как в jQuery 2.1.1
Максимальный размер файла неограничен: 241.55 Kb
Ajax Только minified: 49.60 КБ
Это сокращение 5x.
Как уже сказал Дарин, все или ничего. Функции JQuery Ajax тесно переплетаются с остальными функциями.
Есть несколько других автономных библиотек Ajax, таких как Matt Kruse Ajax toolbox - возможно, это помогает.
Я бы рассмотрел загрузку полной библиотеки jQuery. Если вы ссылаетесь на jQuery на CDN, время загрузки будет незначительным.
Как и в jQuery 1.8, вы можете это сделать: ССЫЛКА
Вы можете просмотреть стандартные javascript-альтернативы jQuery в youmightnotneedjquery.com
Например, альтернативой $.ajax
post
является:
var request = new XMLHttpRequest();
request.open('POST', '/my/url', true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
request.send(data);
И альтернатива $.ajax
get
:
var request = new XMLHttpRequest();
request.open('GET', '/my/url', true);
request.onload = function() {
if (request.status >= 200 && request.status < 400) {
// Success!
var resp = request.responseText;
} else {
// We reached our target server, but it returned an error
}
};
request.onerror = function() {
// There was a connection error of some sort
};
request.send();
Другой вариант - использовать встроенный fetch
API, предоставляемый браузером.
Вот пример фрагмента:
fetch('http://localhost:3000/users.json', {
method: 'POST',
mode: 'cors',
redirect: 'follow',
body: JSON.stringify({
user: {
firstName: 'john',
lastName: 'doe'
}
}),
headers: new Headers({ 'Content-Type': 'application/json' })
}).then(function() {
/* handle response */
});
Это сообщение в блоге - отличное введение в API и показывает больше случаев использования.
fetch
пока не имеет полной поддержки кросс-браузера (я думаю, что в основном IE и Safari не хватает), но есть polyfill, который вы можете использовать до тех пор, пока не наступит этот день.
fetch
polyfill: https://github.com/github/fetch
Старые браузеры также нуждаются в Promise
polyfill (один вариант, другой вариант).
Я создал пользовательскую сборку jQuery 1.7.1 здесь:
Пользователь AMD, пожалуйста, прочитайте этот, мой ответ предназначен для создания одного файла.
Или просто используйте эту библиотеку: ded/reqwest (4 КБ, мин и gzip)
Загрузите исходный код и запустите npn i
Откройте /src/jquery.js
и удалите любую moudle, которую вы не хотите, но держите "./exports/amd"
, "./exports/global"
define([
"./ajax",
"./ajax/xhr",
"./ajax/script",
"./ajax/jsonp",
"./exports/amd",
"./exports/global"
], function (jQuery) {
"use strict";
return jQuery;
});
Запустите grunt custom:-sizzle
Перейти к /dist
и взять свою сборку
Модули в вашей сборке сейчас:
Размер:
Все или ничего. Конечно, jquery является открытым исходным кодом, и вы можете извлечь интересующую вас часть в своей собственной библиотеке (удачи с этим). Вы можете использовать CDN, который гарантирует, что большинство пользователей уже будут кэшироваться в своих браузерах, поэтому вы не должны беспокоиться о размере.
Если вам действительно нужны только части Ajax jQuery, вы можете получить код из своего репозитория (https://github.com/jquery/jquery), взглянув на него вы бы хотели посмотреть "ajax.js" и "core.js" в каталоге "src". Затем вы захотите скомпилировать их вместе с компилятором закрытия или что-то в этом роде.
Но, как заявили другие, было бы намного проще просто загрузить его с одного из CDN (jQuery, Google, Microsoft), которые в любом случае будут кэшировать большинство пользователей.
ДА, я просто сделал свое, http://noypi-linux.blogspot.com/2013/05/build-jquery-with-ajax-only.html
вам нужны только эти файлы (итоговое значение minified составляет около 30 КБ):
/d/dev/javascript/jquery/jquery/src/intro.js
/d/dev/javascript/jquery/jquery/src/core.js
/d/dev/javascript/jquery/jquery/src/callbacks.js
/d/dev/javascript/jquery/jquery/src/deferred.js
/d/dev/javascript/jquery/jquery/src/support.js
/d/dev/javascript/jquery/jquery/src/data.js
/d/dev/javascript/jquery/jquery/src/event.js
/d/dev/javascript/jquery/jquery/src/serialize.js
/d/dev/javascript/jquery/jquery/src/ajax.js
/d/dev/javascript/jquery/jquery/src/ajax/xhr.js
/d/dev/javascript/jquery/jquery/src/exports.js
/d/dev/javascript/jquery/jquery/src/outro.js
Существует не все, но вы можете, конечно, вырезать и вставить из существующего файла, а затем свернуть его.
Если вас просто беспокоит размер библиотеки, обслуживающей ее с CDN от Google, MS или jQuery, вероятно, потребуют меньше трафика данных, так как большинство браузеров уже имеют кешированные файлы.