2010-08-11 2 views
0

У меня есть веб-приложение для интрасети, которое использует iframe. На внешней веб-странице есть меню и iframe. Внутренняя веб-страница загружается внутри этого iframe на основе выбранного элемента меню на внешней странице. Все страницы используют много ExtJS, поэтому для того, чтобы свести к минимуму количества раз ExtJS библиотека загружается я решил загрузить его только один раз на внешних страницах и ссылки на него из внутренних страниц нравятся:access ExtJS from iframe

new top.Ext.grid.GridPanel(); 

Я понимаю, что я должен использовать функцию document.getElementById(), чтобы указать renderTo. Но у меня все еще есть ошибки. Возможно ли использовать ExtJs таким образом? И каковы другие ограничения?

+1

Мы просто загружаем ExtJS на все страницы, независимо от того, что кеширование должно уменьшить проблему загрузки ExtJS несколько раз и сохраняет любые побочные эффекты настройки типа один-ExtJS-to-rule-them-all. Плюс это интранет, поэтому передача не должна быть такой большой проблемой. – Lloyd

+0

Согласен с Ллойдом. Для приложения интрасети я не стал бы беспокоиться о необходимости повторного подключения Ext несколько раз по мере необходимости. ПОЦЕЛУЙ. –

ответ

0

Не могу не согласиться с комментариями в соответствии с вопросом.

В то время как Ext Js-файлы будут кэшироваться, при загрузке Ext-приложения многократно возникают большие накладные расходы. Я пробовал 4 iframes с ext в firefox, и он падает под нагрузкой.

Вы должны загружать контент с помощью объекта Updater или с помощью Panel.load().

+0

Да ... Когда у вас есть 4 IFrames, я считаю, что ваш браузер должен отслеживать 4 отдельных объекта DOM. Ваш браузер не будет счастлив. –

-1

Почему вы используете IFrames для загрузки вашего контента? Это soooo 1995.

Вы знаете, что есть эта вещь под названием AJAX, которая позволяет вам загружать отдельные фрагменты контента в разное время на одной и той же веб-странице?

Вы используете Viewport для организации своего контента? Возможно, вам стоит подумать о том, чтобы использовать объекты в библиотеке ExtJS для создания вашей страницы вместо встраивания их в HTML.

+1

Есть все еще действительные случаи для содержимого IFraming, и IMO всегда будет. Например, вам может понадобиться логика «песочницы», особенно в том случае, если вы можете включать контент, созданный третьей стороной. – Jonnio

+0

Да, единственный действительный случай, о котором я могу думать, - это обработать некоторые методы XSS. Из того, как излагается вопрос, я не вижу необходимости в XSS. –

+3

Не мог не согласиться больше. В настоящее время я создаю приложение, в котором нет возможности использовать IFrames для большого банка. Сторонние поставщики контента создают свои собственные виджеты. Теперь мы не можем загружать свои виджеты непосредственно в dom, поскольку они могут создавать ошибки, которые мы не контролируем. Это действительный прецедент и не имеет ничего общего с XSS. Спасибо за нижний уровень! – Jonnio