Подключение 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, время: 15:07. |