Подключение import в js коде
Добрый день всем. Скажите как правильно и можно ли подключить с удаленного репозитория js в самом js файле .
Например есть //web.com/js.js есть в сайте подключения к main.js в самом main.js как можно подключить //web.com/js.js ? |
|
Poznakomlus, я вам не рекомендую использовать https://requirejs.org/, поскольку он заставляет писать нестандартный код. И тем более в JS есть понятие модуля (ключеные слова import и export) https://requirejs.org/ выглядит как костыль!
Цитата:
файл main.js import myObject from "https://web.com/js.js"; // тут можно использовать ваш myObject(Если вам нужна поддержка старых браузеров, то вы можете использовать parcel) Если https://web.com/js.js ведёт к файлу, который содержит скрипт, который объявляет что-то глобально (и ничего не экспортирует), то вы можете его подключить при помощи функции import. Например... файл main.js import("https://web.com/js.js").then(() => { // тут можно использовать ваш глобальный объект }); |
Malleys,
Он был одно время популярен и в нем была возможность работы с разными типами модулей. Рейтинг 12,4 k GitHub То, что вы рекомендуете оправдано в разаработке современных разработок откидывая старые версии броузеров Когда то import небыло, тем более parcel. И сейчас совместимость с браузерами бывает отталкивает. Ранее использовал нечто подобное var loader = (function (src, callback) { var doc = window.document, cache = {}; return function (src, callback) { if (cache.hasOwnProperty(src)) { callback && (callback()); } else { var el = doc.createElement('script'), loaded = 0; el.src = src, doc.body.appendChild(el), cache[src] = 1; if (callback) { el.onload = el.onreadystatechange = function () { if ((el.readyState && el.readyState !== 'complete' && el.readyState !== 'loaded') || loaded) return false; el.onload = el.onreadystatechange = null, loaded = 1, callback(); }; } } }; }()); loader('test1.js', me); function me() { alert('This callback Me'); } |
Если постоянно думать о браузерах 5-ти летней давности и старше, то почти ни чем нельзя пользоваться.
|
voraa,
это да, но вебкомпоненты в пример мы ждем очень долго иначе большинство фреймворков пошло в утиль зачастую перед разработкой смотрят процент использования браузеров и ставят в версси тз минимальные значения. и есть полифилы, и RequireJS works in IE 6+, Firefox 2+, Safari 3.2+, Chrome 3+, and Opera 10+. |
Цитата:
|
Мне кажется, что сознательная ориентация на старье не побуждает пользователей обновлять браузеры.
По мне нормально, если разработчик ориентируется на сегодня - 3 года. Если на платформе существуют хотя бы пара браузеров, которые поддерживают технологию или api, то на них и нужно ориентироваться. |
Цитата:
вы спрашиваете процент старых браузеров, я привел данные из документации это минимальные версии браузеров Цитата:
понятно, что все мы разрабатываем с учетом современных технологий, но если стоит задача поддержка старых версий то это да решение |
[quote=Poznakomlus;519616
здесь не понял совсем [/QUOTE] Зачем ориентироваться на ИЕ6-11, Когда в Винде есть Хром, Опера, Лис? Совершенно бесплатные. И почему ИЕ6, а не ИЕ4 или НетскэйпНавигатор Ну представьте, если бы производители игр (или более нужных программ) ориентировались на Вин-95 на Пентиуме-4? Но сайтопрограммеры почему то принуждают себя (или принуждаются) к этому. |
Часовой пояс GMT +3, время: 20:13. |