SharePoint服务+ JQuery -并行加载(iGoogle风格加载)
本文关键字:加载 iGoogle 风格 并行 服务 JQuery SharePoint | 更新日期: 2023-09-27 17:52:37
我有一个自定义的SharePoint应用程序页面,我在其中加载了不同的用户控件(甚至可以调用为web部件)。
每个控件/web部件从不同的数据源提取数据并呈现数据。因此,当请求页面时,所有控件都按顺序加载数据,并花费更多时间交付给客户端。
我需要的是iGoogle风格的加载,其中页面立即交付,页面的不同部分(天气,体育新闻,股票详细信息等)异步加载(并并行)和拉数据。
我们都知道Asp。Net Ajax不能同时处理多个异步请求。所以我想到了以下选项——
- 用户SharePoint客户端对象模型获取数据
- 使用JQuery创建ajax请求到OOTB SharePoint服务并获取数据。
- 使用JQuery创建ajax请求一个自定义SharePoint web服务,并获得你想要的数据
但这里是上面SP客户端对象的缺点-
- 客户端对象模型仅适用于SP 2010
- 无法从其他站点提取数据
- 将只在SharePoint页面 中工作
JQuery/SP服务的想法只能在IE中工作。我无法在Firefox上使用它。我想这应该是一个认证问题。此外,跨站点脚本是不可能与JQuery/SP服务。我不知道这种方法有任何其他漏洞/问题。
对这些有什么见解吗?
这里有几个选项
- 使用iframe来加载你的内容岛。每个iframe内部的页面处理将在服务器上的不同线程上进行,您可以将页面存储在数据来自的服务器上(没有跨域问题)。浏览器本身一次只处理来自同一域(包括您的iframes)的两个下载。iframes的加载可能会与其他下载(css/js/images)竞争。你可以在不同的域上托管iframe,或者在javascript中编写一些逻辑来延迟iframe的加载,直到其他页面资源下载完成(稍后设置iframe的src)。
- 使用Silverlight作为跨域访问的垫片。如果你可以在你正在访问的服务器上放一个clientaccessppolicy .xml文件,你可以使用Silverlight跨域检索你的数据,并在结果返回时操纵DOM。
- 使用JQuery和JSONP跨域检索数据。您可能需要编写自定义web服务,安装在SharePoint框上以这种方式返回数据。
SPServices的跨站点问题是什么意思?我唯一遇到的问题是在Web应用程序之外,它应该在同一个Web应用程序中跨站点工作。即使这样,您也可以使用页面查看器Web部件来显示来自另一个Web应用程序的SPServices数据。