1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Tech_Query-iQuery

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

iQuery

Build Status

Совместимость с DOM / AJAX API, основанным на jQuery, построенным на основе оригинального ECMA / W3C polyfill и включающим в себя множество распространённых расширений jQuery API.

Join the chat at https://gitter.im/iQuery-js/Lobby

В API iQuery стремится к совместимости с jQuery, в то же время его внутренняя реализация использует стратегию «ориентации на будущее и обратной совместимости» Polyfill — jQuery Standard API (2500 строк), iQuery Extension API (1800 строк) основаны на лучших API W3C, ECMA в последних стандартах, устаревший код совместимости браузера (частично основанный на API jQuery, 1200+ строк) упакован в ту же форму, что и новый API (расширение прототипа), и выделен в отдельный внешний модуль. Это не только позволяет повторно использовать API jQuery для эффективной реализации, но и упрощает разработку разработчиками, которые могут самостоятельно обрезать код.

【Примечание】 Совместимость с IE ограничена его «стандартным режимом», а не «режимом совместимости».

【Сравнение конкурентов】

iQuery jQuery Zepto JSLite
Совместимость с браузером IE 8+ IE 6+ (v1.x)、IE 9+ (v2.0+) IE 10+ IE 10+
ECMA / W3C полифилл Много ×(каждый модуль реализует Fix) Мало Мало
Расширения API Много Мало Мало
События касания Одно касание × Много касаний ×
Модульность исходного кода AMD AMD IIFE IIFE
Комментарии к API (JSDoc) × × ×
Тестовый фреймворк Mocha QUnit Evidence Mocha

【Начало работы】

  1. Базовые знания — документация jQuery API.

  2. Базовая структура исходного кода HTML.

<!DocType HTML>
<html><head>
    <meta http-equiv="X-UA-Compatible" content="IE=Edge, Chrome=1" />

    <!--  1. Независимое использование  -->
    <script src="path/to/iQuery.min.js"></script>

    <!--  2. Загрузка в соответствии со стандартом AMD  -->
    <script src="https://cdn.bootcss.com/require.js/2.3.5/require.min.js"></script>
    <script>
        require.config({
            paths:    {
                iQuery:    'path/to/iQuery.min.js'
            }
        });
    </script>
</head><body>
    ...
</body></html>

【Обзор API】

Расширение jQuery (последняя версия)

Следующие расширения включены в проект jQueryKit.js (/master/jQueryKit.js), что удобно для интеграции с другими реализациями API jQuery —

Документация по API и другие изменения:

  • Встроенный улучшенный и совместимый с предыдущими версиями объект $.browser, который можно сравнить напрямую по номеру версии, чтобы определить браузер.
  • Новые методы синхронизации (на основе секунд) — $.every(), $.wait(), $.start(), $.end().
  • Метод $.unique() не ограничивается массивом элементов DOM.
  • Новый метод трассировки объектов — $.trace().
  • Новый метод исправления объектов — $.patch().
  • Новый метод определения длины строки в байтах — $.byteLength().
  • Новый метод каррирования функций — $.curry().
  • Новые методы извлечения информации из URL — $.fileName(), $.filePath(), $.urlDomain().
  • Новый метод подписи параметров URL — $.paramSign().
  • $.parseJSON() поддерживает рекурсивный анализ, который будет оценивать JSON как реальные значения/примеры вложенных строк.
  • Новый метод форматирования JSON — $.formatJSON().
  • Перегруженный JSONP на основе официального $.ajaxTransport(), поддерживающий базовую обработку исключений.
  • $.ajax() поддерживает элементы формы и объекты FormData в качестве данных запроса, интегрируя XHR, XDR, JSONP и iframe для адаптации запросов между источниками.
  • $.ajax() автоматически преобразует содержимое ответа в экземпляр объекта HTML, XML или JSON.
  • Новые методы удаления и размещения — $.delete(), $.put(), удобные для реализации RESTful API в одностраничных приложениях.
  • Новое расширение $.fn.htmlExec() метода W3C HTML Parser и перестройка внутренней реализации $.fn.load(), удобная для очистки фрагментов DOM и отладки скриптов.
  • Новый метод готовности мультимедийных элементов — $.fn.mediaReady().
  • Встроенное без обновления отправки форм и может быть непосредственно привязано к обратному вызову ответа — $.fn.ajaxSubmit() (основано на нескольких предыдущих методах AJAX Enhancements).
  • Новый метод проверки законности выбора — $.isSelector().
  • Дополнительные псевдоселекторы jQuery:
    • :image также поддерживает img, link[type="image/x-icon"], svg, canvas и устанавливает background-image для обычных элементов.
    • :button также поддерживает input[type="submit"], input[type="reset"], input[type="image"]
    • :input также поддерживает contentEditable и designMode.
    • Встроенный :indeterminate, соответствующий стандарту CSS 3.
    • Встроенный :focusable, соответствующий стандарту jQuery UI.
    • Встроенный :data(), соответствующий стандарту jQuery UI.
    • Новый :field, соответствующий всем элементам, содержащим поля, подлежащие отправке.
    • Новое :list, эквивалентное ul, ol, dl, tbody, datalist.
    • Новое :media, эквивалентное :image, iframe, object, embed, audio, video.
    • Новое :loaded, эквивалентное img, audio, видео, документу после загрузки.
    • Новое :scrollable, соответствующее всем элементам с прокручиваемым содержимым.
  • Новый метод пересечения предков — $.fn.sameParents().
  • Новый метод предков с прокруткой — $. $.fn.scrollParents() — новый метод плавной прокрутки элементов, аналогичный $.fn.scrollTo().

Все типы DOM-информаторов (.attr(), .prop(), .css(), .data()) поддерживают функцию «возвращать всю информацию при отсутствии ключа».

$.fn.reduce() — новый метод объединения данных DOM.

При получении значения через .css(), числовые и пиксельные значения возвращаются в виде чисел. По умолчанию все присвоения через .css() имеют высокий приоритет, чтобы обеспечить эффективность присвоения.

$.fn.show() совместим с элементами, у которых нет собственного display, что позволяет избежать проблем со сложными макетами.

Новый метод интеграции z-индекса элементов: $.fn.zIndex(), который включает функции получения фактического значения, присвоения значения и перемещения элемента на передний или задний план.

Новая функция расчёта приоритета селектора: $.selectorPriority().

Новая функция получения имён CSS: $.cssName().

Новая функция поиска объектов CSS: $.searchCSS().

Встроенная функция установки уникального идентификатора для DOM: $.uniqueId().

Новый метод чтения и записи выделенного содержимого: $.fn.selection().

$.fn.focus() делает все видимые элементы сфокусированными.

Объект наблюдателя: $.Observer().

Интерфейс событийного расширения: $.customEvent(), на основе которого реализованы патчи для стандартных событий ввода.

Обёрнуты события жестов сенсорного экрана (tap, press, swipe), обеспечивая согласованный опыт работы как на настольных, так и на мобильных устройствах.

Метод обработки событий простоя пользователя: $.fn.onIdleFor().

Метод межстраничных сообщений: $.fn.onReply(), основанный на window.postMessage().

Функция анимации: $.fn.animate(), поддерживает эффекты анимации, аналогичные jQuery UI $.fn.effect().

Переключение классов анимации: $.fn.toggleAnimate().

Преобразование текста в двоичный объект: $.toBlob().

Хэширование данных: $.dataHash(), по умолчанию используется алгоритм CRC-32, также поддерживается современный Crypto API браузеров.

Не реализованные функции jQuery (последняя версия):

— Нет $.noConflict(), но jQuery не монополизирует переменные. — Не поддерживаются встроенные типы браузеров и соответствующие методы $.isXXX(). — Не поддерживается проверка характеристик браузера. — Неподдерживаемые пользовательские опции $.ajax(). — Нет поддержки $.Deferred(). — Поддерживаются только часто используемые псевдоклассы jQuery. — Нет поддержки XPath и операций с XML. — Некоторые редко используемые статические и экземплярные методы jQuery не поддерживаются. — Внешнее управление очередью анимации не поддерживается.

Патчи для стандартов ECMA и W3C:

— Встроенный метод Number.isInteger() для определения целых чисел. — Встроенный Number.isSafeInteger() для проверки безопасных целых чисел. — Встроенная поддержка метода trim() для строк, который удаляет пробелы. — Встроенные методы String.prototype.repeat, String.prototype.padStart и String.prototype.padEnd. — Встроенный Array.from() для создания массивов из других структур данных. — Методы Array.prototype.indexOf() и Array.prototype.reduce(). — Метод Function.prototype.name для получения имени функции. — Методы Object.keys(), Object.getPrototypeOf() и Object.create(). — Date.now() для получения текущего времени. — Promise() для работы с обещаниями. — Переопределён Error.prototype.valueOf(), чтобы IE 10- возвращал доступный код ошибки. — Новый объект HTMLHttpRequest для JSONP Get и iframe Post. — Свойство HTMLDocument.prototype.currentScript. — Свойство HTMLDocument.prototype.scrollingElement. — Экземплярные методы ChildNode remove() и replaceWith(). — Атрибут Element.prototype.textContent. — Патч для IE 8 для Element.prototype.innerHTML. — Объект HTMLCollection для исправления ошибки в IE 10-. — Свойства Element firstElementChild, lastElementChild, previousElementSibling и nextElementSibling. — Метод Element.matches для соответствия стандартам. — DOMTokenList для поддержки classList и relList в различных браузерах. — DOMStringMap для поддержки dataset в IE 11-. — Свойство HTMLSelectElement.selectedOptions для IE. — Свойства location.origin и HTMLAnchorElement.origin для IE 11-. — Исправление обработки JavaScript-ключевых слов в IE 8. — CSSStyleDeclaration для поддержки getComputedStyle в IE 8 и преобразования свойств M$ DirectX. — Mozilla Firefox и Google Chrome для Window.getMatchedCSSRules(). — FormData() для упаковки данных формы в IE 10-. — Создание документов с помощью DOMImplementation() в IE 8. — Разбор документов с помощью DOMParser() в IE 8+. — URL() и URLSearchParams() для работы с URL.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
GPL-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/Tech_Query-iQuery.git
git@api.gitlife.ru:oschina-mirror/Tech_Query-iQuery.git
oschina-mirror
Tech_Query-iQuery
Tech_Query-iQuery
master