2010-08-11 93 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