Чи можна вбудувати в браузер JQuery та подібні інструменти?


19

Прочитавши ще одне запитання про JQuery та CDN, чи можливо такі інструменти, як JQuery, "поставлятися" з браузером, таким чином зменшуючи / усуваючи потребу в першому завантаженні з CDN або з власного сервера хоста.

Файлів JQuery, зокрема, досить мало, тому ви можете легко встановити кількість (усіх?) Різних версій в рамках встановлення браузера. Зараз досить справедливо, це збільшить встановлення сліду, час завантаження для самого браузера.

Тоді сайти могли спочатку перевірити "локальний", перш ніж CDN (який потім кешується), перш ніж нарешті дефолт завантажувати з самого сервера веб-сайтів.

Якщо це можливо, це було зроблено, а якщо ні, то чому це не було зроблено?


3
Коли певна функція JavaScript стає настільки всюдисущою, що її вважають потрібною всюди, її додають до мови. Array.prototype.forEach,, Array.prototype.indexOf- Object.createце всі приклади коду, що вбудований у сам движок JavaScript.
zzzzBov

Я впевнений, що Chrome розробить рішення, яке пропонує кінцевому користувачеві можливість встановити розширення з можливістю кешування необхідних файлів jQuery / javascript під час першого введення сайту? Якщо користувач відхиляє, він змушує запит, як зазвичай. Параметр "не запитувати мене знову" може вимкнути цю опцію. У налаштуваннях може бути область, де кінцевий користувач може вибрати, які js-файли зберігати в кеші браузера, використовуючи простий список прапорців. Завжди будуть користувацькі js, що надсилаються клієнту, але, схоже, усунення файлів js, що надсилаються клієнту за запитом, оптимізувало б p
ярда

1
Яку версію ви б запропонували включити? Що щодо наступного тижня?
pdr

@pdr - старе запитання, з великою кількістю відповідей на мінус для цього. Але ви можете легко зв’язати останню версію з версією браузера і дозволити коду користувача повернутися до запиту нової версії від CDN, якщо потрібно. Зриваючи зміни на зразок JQuery 2.0, ви можете мати обидва і дозволяти коду вибирати. Все безглузде, хоча насправді :)
ozz

Відповіді:


15

Немає жодної технологічної причини, чому вони не могли б. Однак це не потрібно, і це суперечить фундаментальній філософії Інтернету. Це не обов'язково, тому що ви можете досягти майже того самого, що має заголовок, що закінчується в майбутньому. Це проти філософії Інтернету, оскільки це призводить до того, що існує централізована влада зверху вниз, на якій бібліотеки повинні / не повинні поєднуватися з браузером.

Редагувати: Бібліотеки JS є, насамперед, для спрощення спілкування з DOM. Я не думаю, що поєднання сторонніх бібліотек із браузером - це правильний спосіб зробити API DOM приємнішим.


1
дякую Ден - будь-які посилання, які я можу прочитати на тому, що ви описуєте?
ozz

1
Я заперечую, що потреба завантажувати мегабайти на мегабайти загальних бібліотек кожен раз, коли я запитую сторінку, суперечить іншій фундаментальній веб-філософії щодо збереження веб-сторінок невеликими та доступними. Зрештою, багато людей перебувають на модемах та повільних супутникових зв’язках.
maple_shaft

4
Операція з кореневим каналом зробить API DOM приємнішим ...
Дональд стипендіатів

1
@maple_shaft, це дещо прискіпливий аргумент. Мінімізований розподіл jQuery - 31K. Хоча, безумовно, так є те, що там є веб-сторінки, які завантажують шалену кількість різних бібліотек, питання є специфічним для jQuery, і не існує обліку для шалених програмістів.
Адам Кросленд

16

Власне, те, що ви описуєте, існує вже роками. Це називається кешування . І він доступний не тільки для JQuery, але і для всього, що може завантажити ваш браузер.

Тоді сайти могли спочатку перевірити "локальний" перед CDN, перш ніж остаточно дефолтувати до завантаження з самого сервера веб-сайтів.

Це саме те, що робить кожен браузер. Спочатку він перевіряє локальний кеш, після чого завантажує його з CDN, якщо потрібно. При правильній конфігурації кешу навіть на місяць не спостерігається зворотного переходу на сервер (щоб перевірити наявність нової версії).

Включення JQuery в налаштування браузера:

  • Додайте зайву складність додатку та налаштуванню браузера,

  • Додайте зайву складність процесу оновлення,

  • Збільшити кількість оновлень, щоб оновлювати актуальну версію JQuery, навіть для людей, яким це не потрібно,

  • Додайте плутанину: чому JQuery, а не прототип, чи якийсь інший фреймворк, зображення, файл CSS тощо?

  • тощо.

Збільшення складності програмного продукту без користі щодо функцій, продуктивності тощо - вкрай погана ідея.


Спасибі. Так, я не зрозумів у своєму питанні. Я добре усвідомлюю, що саме так і відбувається. Я говорю про усунення необхідності навіть у першому завантаженні. Я оновлю питання.
ozz

дякую за всі ваші причини НЕ включайте в налаштування браузера :-)
ozz

6
Ви не можете усунути необхідність першого завантаження. Якщо JQuery включений в настройках, вона буде завантажена в перший раз , коли людина завантажує настройки виконуваного файлу (то він завантажується знову через оновлення , коли нова версія JQuery відпущена).
Арсеній Муренко

2
Це не усуває хіт продуктивності, але переміщує його від відвідування першого веб-сайту до завантаження виконуваного файлу налаштування, а це означає, що в цілому це протилежне збереженню продуктивності. Це не усуває потреби CDN, навіть якщо ви хочете підтримувати старіші веб-переглядачі та браузери, не оновлені з моменту випуску останньої версії JQuery.
Арсеній Муренко

1
@All Якщо ви хочете обговорити це далі, будь ласка, візьміть це за чат.
maple_shaft

5

Не забувайте, що jQuery - це бібліотека js, вона, здається, стала фактично і сприймалася як панацея (до того моменту, коли вона стала пам’ятною на SO), але це просто бібліотека js.

Все, що стандартизовано для сценаріїв (EMCAScript), уже включено до браузера, все, що додається до інших браузерів, стане нестандартним, і ви б вирішили проблеми з перехресними браузерами для нестандартних браузерів (як, наприклад, модель IE події ), які впливають на частину причини, чому бібліотеки типу jQuery були створені в першу чергу.

Коротка відповідь: їх можна включити, але вони не повинні.


5

Кешування браузера забезпечує щось дуже схоже на те, про що ви говорите. Має бути так, що jQuery або будь-яку іншу бібліотеку JS буде завантажено один раз та потім витягнуто з кешу за подальшими запитами.

Хоча jQuery, можливо, є найбільш поширеною бібліотекою JavaScript, але це не єдина, і мені здається, що зробити її встановленою складовою браузера було б погано для екосистеми JS. Конкуренція є здоровою і, як правило, призводить до інновацій, і ми, розробники та користувачі програмного забезпечення, не були б хорошими, надаючи jQuery особливу позицію.

Щойно ви враховуєте кешування, перевага, яку ви отримуєте, дуже-дуже мінімальна. Мінімізована версія jQuery становить лише 31 Кб. Це не обгрунтовує щось змінити .


дякую Адаму - так, я знаю перший сценарій завантаження, кешу. Мої думки полягають і в тому, щоб замінити це. JQuery був лише 1 прикладом, але я погоджуюся з вашими думками щодо конкуренції. Це здається, що це може бути основною причиною того, що я припускаю, що цього не відбувається. Потім у вас є різні браузери, які мають різні набори компонентів за замовчуванням тощо
ozz

Я оновив питання, щоб зазначити, що мені відомо про кешування :-)
ozz
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.