等待加载 SharePoint Webpart - 时间问题

Posted

技术标签:

【中文标题】等待加载 SharePoint Webpart - 时间问题【英文标题】:Wait on loading SharePoint Webparts - timing issue 【发布时间】:2011-06-27 08:06:51 【问题描述】:

在同一个 SharePoint 2007 网站中加载几个 Web 部件时,我遇到了时间问题。

目前我的网站上有几个 webpart,全部垂直对齐。我希望最后加载最底部的 webpart,因为它有一个组件将被渲染以执行 jQuery .offset().top(在执行代码时获取组件的左上角位置)。目前,每次我重新加载页面时,组件都会出现在不正确的位置。只有当它上面没有其他 webpart 时才会出现在正确的位置。

例如:

WebPartWithComponent 页面上的第一个:

WebPartWithComponent <-- component rendered here correctly.
WebPart1
WebPart2
WebPart3

页面上WebPartWithComoonent前面的其他webpart:

Webpart1
Webpart2 <-- component rendered here instead.
WebpartWithComponent <-- this is where the component should be rendered
Webpart4

是否有任何方法可以确保带有组件的 web 部件最后加载,或者在其他 web 部件完成加载时开始加载,或者在代码中的特定点等待直到其他 web 部件完成加载?

Webparts 在 jQuery (js) 文件中呈现。

谢谢。

【问题讨论】:

【参考方案1】:

您能否在上一个 Web 部件中使用 jQuery 就绪功能?

http://api.jquery.com/ready/

$(document).ready(function() 
   //do your stuff
);

或者,如果您有,请在您的 Web 部件中设置某种跟踪数组:

if(typeof(gWebParts)=="undefined") 
gWebParts = new Array()

gWebParts[gWebParts.length] = someobject

然后当它们加载后,设置一些变量

gWebParts[i].loaded = true

然后在您的最终 Web 部件中,设置一个计时器

setInterval(function() 
   if(gWebParts all loaded) 
      clearInterval()
      //do your stuff
   
, 250)

【讨论】:

以上是关于等待加载 SharePoint Webpart - 时间问题的主要内容,如果未能解决你的问题,请参考以下文章

Sharepoint 2010 在 jquery/javascript 中捕获 webpart 刷新

在 SharePoint WebPart 中加载外部库

为 SharePoint 2010 Rss 源 WebPart 编辑 XSL

SharePoint 2013 WebPart 管理工具分享[开源]

Sharepoint:WebPart 和 silverlight 控件之间的通信

从一个 webpart 访问信息并在 sharepoint 2010 中的另一个 webpart 中使用它