2013-01-03 11 views
2

我在SharePoint 2007中包含一个内容编辑器Web部件,其中包含一个用不同JavaScript源在页面上插入多个标签的功能。在SharePoint中加载JavaScript API - 计时问题

出于某种原因,它需要大约4-5分钟和几次刷新,以便获取我的JavaScript源代码(API)加载。通常情况下,这只会在我第一次访问我的SharePoint网站时在早上发生。

使用更频繁地出现此问题,但因为我已经放置了一系列触发在网页上的脚本源代码的函数的重载按钮(见下面的代码块:感谢埃尔韦Tourpe)

有人能告诉我为什么会发生这种情况?

有关更多信息,我正在使用MIT Simile Timeline API。通常,一旦我在早上登录到网站,页面上的错误是“时间轴”未定义(显然,它是API文件中最整体的类)。

对我来说,这要么意味着执行时间表的功能尚未等待足够长的API来加载,或有某种问题具有以下功能:

function includeJSScript(p_file) { 
    // before we insert this script, we need to check if it already exists 
    var bAlreadyExists = false; 
    var scripts = document.getElementsByTagName('script'); 

    for (var i = 0; i < scripts.length; i++) { 
    if (scripts[i].src == p_file) { 
    bAlreadyExists = true; 
    break; 
    } 
    } 

    if (!bAlreadyExists) { 
    var v_script = document.createElement('script'); 
    v_script.type = 'text/javascript'; 
    v_script.src = p_file; 
    document.getElementsByTagName('head')[0].appendChild(v_script); 
    } 
} 
+0

是请求以正确的顺序被炒鱿鱼吗?什么是服务器回复?提供静态JS文件真的不应该是这么麻烦。 – Halcyon

回答

0

我认为您的问题是时间安排,并且通常是内容编辑器Web部件。

问题在于零件最后呈现并且在SharePoint中有重载的DOM,这意味着它有时加载速度不够快(我在使用jQuery的Chrome中遇到过这个问题)。更经常地在早上体验它是由于SharePoint的缓存。

有几种方法来解决这个问题,你可以通过他们各自的工作,直到解决:

要下手:为缓慢,一定要使用SPWakeUp3 Codeplex上 - 这将“唤醒”(即缓存)您的网站和脚本; SP每24小时转储缓存 - 这将解决这个问题。

对于脚本本身:

试试这个:取码出一部分,放入一个文本文件,并上传到文档库 - 在CEWP指向该文件来代替。

如果没有变化,尝试使用HTML/JS渲染CodePlex从Web部件 - 这避免了与CEWP的一般性问题:如果仍无法正常工作,您可以尝试http://davidmsterling.blogspot.com/2012/12/htmljavascript-rendering-web-part.html

-

嵌入脚本进入页面布局并使用CEWP或HTML/JS Render(再次使用文件保存脚本调用)或

将脚本嵌入主页面(但这可能是开销,您可能不需要)

I很确定上面的其中一个应该可以解决问题。

David M.英镑

http://davidmsterling.blogspot.com

http://www.sterling-consulting.com

http://www.sharepoint-blog.com

+0

仅供参考:HTML/JavaScript Render Web部分适用于2010年 - 如果需要,您可以下载代码并将其转换回2007年(容易做到 - 只需打开2007年的新WP项目并剪切/粘贴代码即可。 –