Насколько я прочитал спецификацию (JSR-286, поскольку вы не упомянули конкретную версию), нет ничего, что требовало бы последовательного или параллельного рендеринга.Он просто указывает , который отображает портлеты.Вы просто не можете предположить, что вы все еще используете тот же обработчик HttpServletRequest, что и любой другой портлет.
Мало того, что он не указан, но даже в одной реализации он может отличаться.Я протестировал его с более старыми версиями Liferay, где у вас были оба варианта портлета: платформа прозрачно заменяет содержимое портлета динамическим заполнителем, выполняя Ajax-запрос для получения вывода обработанного портлета.Рассматриваемые моделируемые портлеты просто содержали Thread.sleep(2000)
в своем методе рендеринга.
Хотя спецификация асинхронного рендеринга отсутствует в JSR-286, в Liferay это единственное значение конфигурации, не влияющее на реализацию, таким образом, какПлатформа может быть независимой от поставщика.Если вы выберете любую из более новых реализаций, например, рендеринг довольно статического кода, который в любом случае динамически извлекает свой контент (через запросы ресурсов или из веб-сервисов): это полностью работает поверх спецификации портлета, что легко возможно.Запросы на ресурсы стандартизированы, веб-сервисы не зависят от портала.
Начиная с новейшей спецификации JSR-362 Portlet-3.0: есть определенные дополнения для рендеринга на основе JS, а также стандартизированная сторона JS.Я пока не могу вам много рассказать об этом (пока), но, поскольку вы не упомянули об этом стандарте в явном виде, вы, возможно, об этом не помните (пока).