2010-06-11 74 views
0

我正在開發一個離線唯一幫助系統,它需要將大量搜索相關數據加載到iframe中才能使用搜索功能。由於項目的文件夾結構,我無法使用Ajax相關的後臺加載方法,因爲我需要的文件會「加載」幾個目錄。背景將JavaScript加載到iframe中而不使用jQuery/Ajax?

我寫了一些代碼,它會延遲加載幫助數據,直到加載網頁的其餘部分。幫助數據由一系列JavaScript文件組成,其中包含有關係統中安裝的幫助手冊中存在的術語等信息。

該網頁工作正常,直到我開始加載這個幫助數據到一個隱藏的iframe。在JavaScript文件加載時,我無法使用任何網頁。需要下載小文件的鏈接懸停播放效果不會顯示,JavaScript(頁面切換標籤)無效。

我想知道這是否只是JavaScript的工作方式的限制,或者如果有什麼其他事情在這裏。一旦爲幫助系統加載所有文件,網頁就會按預期工作。

function test(){ 
    var MGCFrame = eval("parent.parent"); 
    if((ALLFRAMESLOADED == true)){ 
     t2 = MGCFrame.setTimeout("this.IHHeader.frames[0].loadData()",1); 

} 
    else{ 

    t1 = MGCFrame.setTimeout("this.IHHeader.frames[0].test()",1000); 
    } 
    } 

加載數據只是啓動數據加載過程。

感謝您提供的任何幫助。

回答

0

我正在加載不少JavaScript文件---大約200個左右。我通過組合一些文件來最小化延遲,併爲其他文件使用jQuery的getScript函數。爲了幫助瀏覽器在加載所有這些文件時不鎖定,我使用需要下載的文件列表填充全局數組,然後遞歸調用等待100ms的幫助函數,然後調用getScript,然後調用它自己。這有助於後臺加載文件而不會使瀏覽器無法使用。

+0

在此處繼續此主題:http://stackoverflow.com/questions/4158102/loading-large-amount-of-data-into-memory-most-efficient-way-to-do-this – user210099 2010-11-11 19:50:34