2010-06-11 46 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