У меня есть веб-приложение, которое в некоторых местах должно отображать HTML-контент, который исходит из внешних источников, таких как, например, электронная почта, или который был вставлен в другие приложения, которые попадают в базу данных, т.е. я мало контролирую, что такое HTML содержит.
После того, как я попробовал разные варианты, лучший способ убедиться, что введенный html не вызывает конфликтов с приложением, это вставить его в iframe.
Мое единственное беспокойство заключается в том, что в некоторых крайних случаях может быть несколько iframe, скажем, от 50 до 100.
Это число фреймов вызовет проблему в современных браузерах?
Это не проблема, когда речь идет о количестве контента, потому что все так или иначе будет находиться на странице, это просто вопрос, является ли iframe слишком тяжелым элементом, который может использовать слишком много ресурсов, чтобы иметь в таком большом количестве.
EDIT
Мы уже используем ajax для загрузки контента, мы неоднократно пытались «санировать» контент, но всегда есть что-то, чего мы не допускали, например, неправильно сформированный html, элементы управления вводом, даже части наших собственных экранов приложений в основном все, что кто-то может вставить в электронное письмо.
iframe позволил бы нам изолировать контент в своем собственном документе и не беспокоиться о том, что это вызовет проблемы с остальной частью приложения.
Необходимость иметь несколько фреймов заключается в том, что в одном месте мы отображаем список электронных писем и не контролируем количество отображаемых таких элементов, хотя, как правило, это небольшое число, есть несколько крайних случаев, когда число может быть высоким. Я полагаю, мы могли бы виртуализировать экран, чтобы уменьшить количество существующих iframe одновременно.
Альтернатива - продолжать пытаться бороться с дезинфекцией контента.