Возможное дублирование - document.createElement («script») синхронно
ES5:
Вы можете создать свой элемент с обработчиком onload, который будет вызываться, когда скрипт загружен и оценен браузером.
blockquote>
script = document.createElement('script'); script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js'; //Bind a onload handler script.onload = () => { console.log($); }; document.head.appendChild(script);
РЕДАКТ. 1:
ES6: [1118 ]
Вышеуказанное является лучшим решением, если вы не готовы к локальному размещению jQuery, тогда вы можете использовать динамический импорт () , который выполняется асинхронно. Поддержка не велика - https://caniuse.com/#feat=es6-module-dynamic-import . Вот другая ссылка , использующая это. Я бы рекомендовал использовать это только там, где используется BabelJS .
import('./jquery.min.js').then((jquery) => { window.jQuery = jquery; window.$ = jquery; // The rest of your code });
Это - сложный вопрос. Эти два экстремальных значения являются онтологией (все иерархически), и фолксономия (теги не имеют никакой иерархии). Я имею , ответило это на WikiAnswers со ссылкой на статью "Ontology is Overrated" Clay Shirky, которая утверждает, что Вы не должны устанавливать иерархию.
На самом деле я сказал бы, что это не так иерархическая система, но семантическая сеть с чувствовавшим distancies между значениями тегов. Что делает я имею в виду: математика ближе к экспериментальной физике затем к озеленению.
Возможность создать такую сеть: пары Сборки тегов и позволяют людям судить воспринятое расстояние (использующий меру как 1-10, означая что-то как [синонимы, одинаково..., антонимы]...) и при поиске, искать все теги на определенном расстоянии.
мерой должно быть равное расстояние при прибытии из противоположного направления ([a, b] близко-> [b, a] близко)? Или близость подразумевает [a, b] близко и [b, c] близко-> [a, b] близко?
, Возможно, первое слово будет триггером по умолчанию другое семантическое поле? Если Вы запускаете в "социальном работнике", "аналитике" ist рядом. Если Вы запускаете в "программисте", "аналитик" рядом также. Но начиная в любой из этих точек, Вы, вероятно, не считали бы другой как рядом ("sozial, рабочий" ни в коем случае не близко к "программисту").
у Вас поэтому были бы только пары оцененными и оцененными в обоих направлениях (в произвольном порядке).
[TagRelations]
tagId integer
closeTagId integer
proximity integer
Пример для выбора подобных тегов:
select closeTagId from TagRelations where tagId = :tagID and proximity < 3
Механизм, который я реализовал, не должен был использовать теги, учитывая себя, но косвенную справочную таблицу (не строго условия DBMS), который связывает тег со многими подразумеваемыми тегами (очевидно, тег связан с собой, чтобы это работало).
В проекте Python, справочная таблица является включенными тегами словаря с наборами значений тегов (где теги являются простыми строками).
В проекте базы данных (равнодушный, каким механизмом RDBMS это было), были следующие таблицы:
[Tags]
tagID integer primary key
tagName text
[TagRelations]
tagID integer # first part of two-field key
tagID_parent integer # second part of key
trlValue float
, где trlValue был значением в (0, 1] пространство, использованное для предоставления силы тяжести для каждого связанного тега; отношение тега self-self всегда несет 1.0 в trlValue, в то время как остальные алгоритмически вычисляются (это не важно как точно). Думайте база данных шуток в качестве примера, которую я дал; ['светлый', 'ироничный', 0.5] запись коррелировала бы к ['pondian', 'ироничный', 0.5] и поэтому предложила бы все иронические шутки, учитывая другого.