Я начинаю подозревать, что в настоящее время нет однозначного ответа на этот вопрос. Пока я делаю так, как ты. Я использую веб-фреймворк Django. Я заставляю Django записывать каждую строку кода Processing.js на страницу через обработчик шаблонов. Сначала Django пишет элемент HTML-сценария, затем операторы присваивания Processing.js, определяющие параметры эскиза, затем код тела для эскиза, затем библиотечные функции и классы Processing.js в соответствии с требованиями конкретного эскиза, а затем закрывающий тег сценария. Я перебираю несколько эскизов и заканчиваю циклической инициализацией.
С этой схемой у меня есть точный контроль над HTML, так как обработчик шаблонов Django позволяет мне управлять идентификаторами и классами для элементов div, которые содержат эскизы, а также элементы canvas. Это составляет грубое динамическое поведение; каждый раз, когда пользователь размещает форму, эскизы обновляются. Python читает много файлов, каждый из которых содержит много битов, и эти биты проходят через несколько этапов на пути к браузеру, что должно замедлить процесс по сравнению с простым обновлением данных.
Я заинтригован возможностью подлинного динамического поведения на стороне клиента, используя формы, опосредованные, возможно, jQuery. Смотрите этот увлекательный пост на Design Intellection Дэвида Йайзера. Таким образом, jQuery может общаться с Processing.js, что удивительно, но не слишком удивительно, поскольку они оба являются JavaScript. Я не эксперт, но я думаю, что с этим методом происходит глобальное злоупотребление пространством имен. Говоря о глобальном злоупотреблении пространством имен, ознакомьтесь с этими двумя постами по адресу Иррациональное изобилие , " Обновление графики Processing.js через Ajax, " и " Использование Javascript для управления обработкой «. Если вы можете сделать это с помощью PHP, вы можете сделать это со вкусом по вашему выбору.
Очевидно, что Processing.js имеет «внутреннюю» функцию AJAX, которая может быть вам полезна. Смотрите это кэшированное сообщение , любезно предоставлено Google. Сравните с текущей радикально отредактированной версией , измененной всего несколько дней назад. Итак, коллаборационисты Processing.js получили задачу загрузки эскиза и связывания его с канвой до двух строк кода, но более общая задача загрузки различных фрагментов, включая переменные данные, не получает эфирного времени. Возможно, они переписывают весь AJAX. Я хотел бы знать, можно ли использовать функцию p.ajax для загрузки и объединения нескольких ресурсов Processing.js, таких как назначения данных, setup (), draw () и функции и классы, гибким способом, образуя полный эскиз.
Мой сын по CS говорит, что я мог бы переписать свой код Processing.js, используя собственный API-интерфейс JavaScript, и тогда он был бы чистым JavaScript и мог быть загружен с использованием обычного тега script, а не с type = "application / processing". Он думает, что у меня было бы больше гибкости плюс возможность использовать минимизацию / запутывание. Вот пример с использованием JSON в ProDevTips. JSON довольно удобно использовать с Django. Я видел API здесь и там в сети. Это выглядит просто, но я не знаю, документировано ли это где-нибудь. Вы можете просто выбрать источник на Github. В остальном мне нравится такой подход.
Итак, у меня нет краткого ответа, но я подозреваю, что ситуация развивается быстро. Последняя возможность - использование XHR. См. сообщение StackOverflow и ссылку на загружаемый файл на веб-сайте Hyper-Metrix. Известный мастер Processing.js по имени Алистер Макдональд (F1LT3R) опубликовал ряд подходов к инициализации эскизов Processing.js. Он, вероятно, знал бы, как и любой другой, как делать то, что мы хотим сделать.
Я был бы очень рад, если бы хорошо осведомленный человек (например, инсайдер из Processing.js) решил эту проблему.