Мне нужно создать веб-приложение, которое позволяет пользователю вводить код JavaScript, а затем код выполняется динамически и каким-то образом отображает результат на той же странице. Поток будет примерно таким:
На веб-странице есть область текстовой области, а под каждой из этих текстовых областей есть элемент div результата (или любой элемент span, p, не имеет значения). Пользователь будет вводить код JavaScript внутри текстовых областей. Он должен быть в состоянии ввести любой код JavaScript, который он хочет, но в конце он вызовет пользовательскую функцию, такую как
my_application_output (some_variables_computed_from_previous_code_execution)
и тогда что-то будет отображаться в результате div. Простой пример будет:
если он введет следующий текст в текстовое поле:
var a = 0;
a++;
my_application_output(a);
и затем выполните код, у элемента div результата ниже текстовой области будет внутреннее содержание html "1"
Я не очень понимаю, с чего начать, например, какие технологии или системную архитектуру мне следует использовать. поэтому хотел бы попросить несколько указателей здесь. Я думал о двух вариантах (не уверен, что они достаточно хороши)
Использовать функцию JavaScript eval()
. поэтому я просто выполняю код из текстовой области прямо на стороне клиента.
Внедрить бэкэнд-сервис, используя такой движок, как V8. Поэтому я делаю ajax-вызов для бэкенда с содержимым кода, а затем коды выполняются из бэкэнда и возвращается результат. Затем я помещаю результат в результат div соответственно.
Лично я хотел бы перейти к 1), потому что eval () кажется более простым решением. Тем не менее, я не уверен, есть ли какие-либо ограничения в этой функции или она может достичь того, что я хочу сделать. В противном случае, если мне придется пойти на второй вариант. Кто-нибудь может предложить архитектуру для этого?