Почему jQuery не интегрирован в браузер - PullRequest
20 голосов
/ 27 ноября 2011

Почему jQuery не интегрируется в браузеры, поэтому нет необходимости ссылаться на него на вашем сайте, а вместо этого браузер просто замечает используемый jQuery, и все работает отлично.

Несмотря на то, что ссылаться на jQuery не так уж и сложно, это все равно будет очень крутой функцией. Спасибо.

Ответы [ 7 ]

20 голосов
/ 27 ноября 2011

Основное преимущество наличия jQuery во внешнем скрипте состоит в том, что вы можете получить новую функцию в новой версии jQuery и (при условии, что jQuery правильно поддерживает кросс-браузер), вы можете автоматически иметь эту функцию доступной во всех браузерах. ваши зрители используют. Вы можете написать свой сайт, чтобы использовать эту новую функцию jQuery и знать, что она будет работать во всех браузерах общего пользования.

Если бы функциональность jQuery была встроена в браузер, вы бы застряли с подходом наименьшего общего знаменателя. Вы не могли полагаться на больше функций, чем в самом отсталом браузере или в самом старом браузере, с которым вы хотели быть совместимым. Когда была представлена ​​новая функция, вам пришлось бы ждать почти десятилетие, чтобы все старые браузеры, которые не поддерживают эту новую функцию, перестали использоваться, прежде чем вы могли быть уверены, что ее использование безопасно. Или вам придется создать собственную кросс-браузерную поддержку для него, создав тем самым новую кросс-браузерную библиотеку, похожую на jQuery, и круг начнется заново.

С помощью jQuery вы просто включаете в свой сайт новейшую версию библиотеки и можете автоматически использовать эту новую функцию во всех распространенных браузерах.

Что касается эффективности, вы не сильно теряете, включая jQuery, поскольку внешний файл сделан правильно. Если вы используете один из наиболее распространенных CDN (например, Google) для связи с jQuery, то jQuery, вероятно, уже находится в кэше браузера и загружается с локального жесткого диска, а не загружается каждый раз, когда это необходимо. Да, его можно оптимизировать и дальше, если он будет встроен, но тогда вы потеряете все те преимущества, о которых говорилось ранее, что сводит на нет основную причину его наличия.

Кроме того, встроенные возможности не развиваются с каждым годом. Они есть. Это называется движением стандартов. Проблема в том, что он движется очень медленно. Посмотрите на CSS3 переходы. У нас есть поддержка переходов CSS3 сегодня во всех популярных версиях Firefox, Chrome, Opera и Safari, но пока нет ни в одной версии IE. Итак, поскольку мы все еще далеки от того, чтобы исчезнуть все популярное использование IE7, IE8 и IE9, мы далеки от возможности просто «использовать» CSS3 и ожидать, что браузер его поддержит. Библиотека анимации все еще нужна. Даже если IE10 выйдет завтра и автоматически поддержит все переходы CSS3, у нас все равно будет много лет, когда все старые версии IE перестанут использоваться в Интернете.

5 голосов
/ 27 ноября 2011

Потому что тогда разные браузеры будут иметь разные несовместимые версии.

Любая нативная реализация гарантированно будет иметь небольшое отличие от реальной вещи; в конечном итоге нам понадобится кросс-браузерная оболочка jQuery , и цикл будет повторяться.

Это также значительно усложнит обновления.

Это также сломало бы другие библиотеки, которые определяют функции $ (например, Prototype).

1 голос
/ 27 ноября 2011

Все библиотеки JavaScript должны быть интегрированы в браузер, который поэтому использует для них глобальное хранилище (например, Google), чтобы при обновлении одной библиотеки она также обновлялась в этом одном центре хранения. Это было бы одним из способов, как, независимо от версии браузера, библиотеки не будут устаревшими. Что касается знака доллара, я полагаю, что браузер должен создать какую-то функцию, например ..

 use_library( 'jquery' ){
     // my jquery code
 }

 use_library( 'prototype' ){
     // my prototy[e code
 }

Однако, поскольку интеграция библиотек JavaScript будет эффективной только в том случае, если браузер не будет загружать ее через Интернет при каждом запросе, а только при обновлении библиотеки, а затем только один раз, она должна иметь какое-то "крутое" "система, которая проверяет новую библиотеку раз в день или около того, делая как можно меньше запросов.

Мои 2 цента.

1 голос
/ 27 ноября 2011

Во-первых, в JQuery нет ничего особенного - это просто более удобный для человека способ кодирования JavaScript.Он заботится о дополнительных кросс-браузерных причудах и т. Д., Поэтому разработчику не нужно так много думать об этом.

При этом JQuery следует стандартам ECMAScript, как и браузеры.IE - упрямый, потому что он использует проприетарный JScript, а не JavaScript.

Браузер не должен обрабатывать этот бурдон.Вы действительно хотите вернуться к временам раздутых браузеров, которые набирают 500 мегабайт оперативной памяти и требуют 10 секунд для открытия?

В заключение, если бы Mozilla и Webkit только начали включать JQuery, возможно,разозлить множество талантливых разработчиков JavaScript, которые используют Mootools, YUI, Dojo и т. д.

0 голосов
/ 17 августа 2018

Перенесемся в 2018 году: веб-браузеры обновляются почти ежемесячно (за исключением Edge / IE, который, как представляется, раз в полгода, что все еще хорошо). Так что главное в том, чтобы идти в ногу с последней версией, с учетом того, что jQuery настолько повзрослел, что люди редко используют самые последние / новейшие функции сразу, и при этом нет серьезных ошибок.

В эпоху высокоскоростного Интернета и уменьшенного размера jQuery 3, а также кэширования в браузере и CDN загрузка здесь также не является аргументом.

Главное, что упускают из виду, это повышение производительности. Разбор / загрузка jQuery с КАЖДЫМ ... ОДИНОЧНЫМ ... СТРАНИЦЫ ... просто не умный. Представьте себе, насколько проще будет на мобильных устройствах более низкого уровня не анализировать их при каждой загрузке страницы и т. Д. Реализация собственной кодовой базы браузера для синтаксического стиля jQuery для использования JavaScript / ECMAScript - это цель, и в моих книгах это неизбежно. Хорошим катализатором может стать кто-то из сообщества Mozilla / Chromium, обладающий огромной силой / влиянием + OOTB-мышлением + смелостью (как Стив Джобс), чтобы сделать это реальностью.

0 голосов
/ 12 апреля 2016

Просто хотел бы отметить, что аналогичный вопрос задавался на Web-мастерах Stack Exchange, и вы можете найти там другие хорошие ответы:

0 голосов
/ 27 ноября 2011

Ну, для одной существует несколько версий jquery, некоторые плагины не совместимы с более новыми версиями, а также, если, скажем, Firefox, DID реализовали это, им придется загружать jquery каждый раз, когда есть обновление, нет гарантии что Chrome и другие браузеры будут следить за этим, например, Internet Explorer, который, кажется, не любит ничего нового, поэтому вам все равно придется ссылаться на него для браузеров, которые НЕ поддерживают его.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...