+ 1 за хороший вопрос. Я не знаю каких-либо различий в обработке памяти между фреймами и содержимым без фреймов; Я написал несколько парсеров XHTML и память это память; узлы занимают память независимо от того, где они хранятся. Все поиски идентификаторов выполняются с помощью ключей (хеш-таблицы), поэтому коллекции могут быть довольно большими с нелинейным воздействием.
Это сторона анализа и памяти; Однако я обнаружил, что время рендеринга может сильно пострадать при больших вставках innerHTML, поэтому попробуйте вместо этого использовать шаблон document.createElement
(если применимо). Я испытывал такое поведение в различных браузерах, включая IE7.
То, где происходят элементы DOM, также имеет значение. Все узлы отображаются на стороне сервера, или вы отправляете JSON клиенту и создаете дерево в JavaScript? Я могу подтвердить, что правильно построенные деревья объектов JavaScript могут очень эффективно обрабатывать тысячи узлов, поэтому, если ваша схема рендеринга основана на клиенте и все узлы не отображаются одновременно, фактический DOM будет намного меньше.
Реальным моментом принятия решения будет круговое отключение. Если вы перестраиваете сложную страницу снова и снова, это может быть достаточным основанием для разбивки ее на фреймы, так что весь этот контент не нужно пересылать по проводам снова и снова.