Есть ли способ, которым я могу получить 2 полностью изолированных контекста JavaScript внутри одной веб-страницы? - PullRequest
0 голосов
/ 06 февраля 2019

Рассмотрим следующий фрагмент HTML-кода:

<html>
<head>
<script language="JavaScript1.5">
    // sdk code

    // root_scripts

    // component1 code

    // component2 code
</script>
</head>
<body>
<h2>simple page</h2>
Hi world

<div id="root"></div>

</body>
</html>

Строки component1 code и component2 code могут быть либо просто 2-мя включениями в разные js-файлы, либо действительно 2-мя частями кода javascript.Мне все равно.

Я пытаюсь понять, сколько 2 фрагментов кода можно выделить на одной странице.Например, предположим, что component1 code включает в себя jquery, а component2 code включает реагировать на js, и у 2 конкретных версий, которые я включил, есть определенные библиотеки.Это означает, что один компонент может сломать другой, и они не будут полностью изолированы.

Предполагая, что оба компонента должны иметь доступ к элементам dom в этом html (поэтому я думаю, что iframe на самом деле не будет вариантом), есть ли хороший способ создания полностью изолированной "среды" java-скрипта для каждогокусок кода?Как две разные области, с их собственным импортом, и они не могут конфликтовать друг с другом, но все еще могут быть частью одной HTML-страницы?

Ответы [ 3 ]

0 голосов
/ 06 февраля 2019

Стандарт JavaScript от 2015 года вводит собственную, отличающуюся модульную систему.Обычно это называют модулями ES, где ES обозначает ECMAScript.Вместо вызова функции для доступа к зависимости вы используете специальное ключевое слово import.

0 голосов
/ 06 февраля 2019

Я думаю, что вы можете пойти на одностраничную структуру приложения, как угловое для вашего решения.В угловом,

Вам просто нужно создать два разных компонента для comp1 и comp2, и они оба будут изолированы друг от друга, если вы не заставите их взаимодействовать с помощью общих служб или взаимодействий родитель-потомок.

Редактировать: вы можете использовать функцию модуля скрипта ECMA для того же.

Это ссылка: https://medium.freecodecamp.org/how-to-use-ecmascript-modules-to-build-modular-components-in-javascript-9023205ea42a

Благодаря @ behzad

0 голосов
/ 06 февраля 2019

Я не знаю о JavaScript, но вы можете сделать это с помощью Angular и Typescript.

С Angular 4 и выше вы можете иметь полностью отдельные скрипты, работающие в разных компонентах.

...