2010-08-11 64 views
0

我有一个使用iframe的Intranet Web应用程序。外部网页有一个菜单和一个iframe。内部网页基于外部页面中选定的菜单项加载到此iframe中。所有的页面都使用大量的ExtJS的,所以为了尽量减少次ExtJS的库加载我已决定在外部页面只有一次加载和内页引用它的数量,如:从iframe访问ExtJS

new top.Ext.grid.GridPanel(); 

我知道我必须使用document.getElementById()函数来指定renderTo。但我仍然有错误。这种方式甚至可以使用ExtJs吗?还有其他的限制是什么?

+1

我们只是将ExtJS加载到所有页面中,无论因为缓存应该多次减少加载ExtJS的问题并保存一个ExtJS-to-rule-them-all类型设置的任何副作用。 再加上这是内联网,所以转移不应该是一个问题。 – Lloyd 2010-08-11 16:17:24

+0

同意劳埃德。对于Intranet应用程序,我不会担心根据需要多次引用Ext。吻。 – 2010-08-11 19:18:30

回答

0

对这个问题下的意见不能不同意。

虽然Ext Js文件将被缓存,但在多次加载Ext应用程序时会有很大的开销。我已经在Firefox中尝试了4个带内置内存的iframe,并且在负载下崩溃。

您应该使用Updater对象或通过Panel.load()加载内容。

+0

是的......当你有4个IFrame时,我相信你的浏览器必须跟踪4个单独的DOM对象。你的浏览器不会很开心。 – 2012-01-12 17:00:21

-1

你为什么使用IFrame加载你的内容?这是如此1995.

你知道有这个叫做AJAX的东西,允许你在不同的时间在同一个网页上加载不同的内容片段吗?

您是否在使用视口来组织您的内容?您可能会考虑利用ExtJS库中的对象来构建页面,而不是将它们嵌入到HTML中。

+1

IFraming内容仍然存在有效的情况,IMO始终如此。例如,您可能需要沙盒逻辑,特别是在您可能包含由第三方创建的内容的情况下。 – Jonnio 2012-01-12 15:18:55

+0

是的,我能想到的唯一有效案例就是处理一些XSS技术。从提出问题的方式来看,我认为不需要XSS。 – 2012-01-12 16:56:15

+3

不能不同意更多。我目前正在构建一个应用程序,除了为大型银行使用IFrame之外别无选择。第三方内容提供商创建自己的小部件。现在我们无法直接将它们的小部件加载到DOM中,因为它们可能会造成我们无法控制的错误。这是一个有效的用例,与XSS无关。感谢downvote! – Jonnio 2012-01-13 11:08:29