SharePoint网上开发篇:应用程序部分

  

博客链接:https://blog.51cto.com/13969817

  

web部件基本上是每个门户项目中必不可少的,但是对中于SharePoint Online开发部件并不是很随意,已经不能像On-Permise环境中可以随意开发视觉部件了,我们需要根据具体的功能进行具体的分析。

  
比如:Visual Studio在应用。js中创建一个带有hello-worldish脚本的应用程序。该脚本检索当前用户的显示名,并将其放入默认应用页面默认. aspx的中。
  

示例代码:

  

使用严格的;

=SP.ClientContext.get_current var上下文();
var用户=context.get_web () .get_currentUser ();

//这段代码运行时,DOM是准备并创建一个上下文对象需要使用SharePoint对象模型
美元(文档)。准备好(函数(){
getUserName ();
});

//这个函数准备,加载,然后执行一个SharePoint的查询来获得当前用户信息
函数getUserName () {
context.load(用户),
上下文。executeQueryAsync (onGetUserNameSuccess onGetUserNameFail);
}

//执行这个函数如果上述调用成功
//它取代“消息”的内容与用户名
元素函数onGetUserNameSuccess ()
$(“#消息”)。文本(“Hello”+ user.get_title ());
}

//执行这个函数如果上面的函数调用失败
onGetUserNameFail(发送方,args) {
警报(“没有得到用户名。错误:' + args.get_message ());

  

为了提高效率,首先我们需要分析某个区域的信息显示能否通过SharePoint的OOB的部件来实现,而不是需要每个部件都要自己开发。如果确实OOB的web部件无法实现,我们在考虑使用应用程序的一部分来实现。

  

对应用于上一部分面中需要的js和css尽量使用CDN的方式引入,因为如果一个应用程序包中包含多个应用部分并且在同一个页面上添加这些应用部分,会导致请求过多有些应用css和js站点中无法加载。使用CDN的方式能减少部分请求,也可以避免部分这样的问题。

  

为了避免多个应用使一部分用一个应用程序的网站,如果同一页面放了很多这样的应用部分会导致对这个应用网站的请求资源过多,带来意想不到的问题,最好每个应用部分单独开发一个应用程序。
尽量减少请求次数,对于不必须要的请求我们可以通过应用程序的一部分属性来替代,例如:一个完整功能的应用部分内部可能需要点跳击项目转到视图条目页面,那么这个URL可以通过属性来配置,而不是通过REST API单独请求一次。

  

比如SharePoint主机的应用程序部分借助SharePoint REST API或者JSOM来获取数据,并且画出我们想要的效果,但是这种方式我们过于依赖于SharePoint站点,也就是我们需要用到的css和javascript都在SharePoint站点中存在,如果我们把这个部件移植到另一个站点中,这个站点也必须部署相应的js和css文件,依赖性比较强。这里我们要求使用SharePoint主机应用程序的应用程序部分来代替,因为应用部分实际上是一个Iframe,我们开发的应用部分中使用到的js和css都是独立存在应用网站中的,这样便于移植。

  

希望本文总结对大家日后开发有所帮助。

SharePoint网上开发篇:应用程序部分