SharePoint Online 开发篇:App Part
admin
2023-01-25 08:42:46
0

Blog链接:https://blog.51cto.com/13969817

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

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

Sample Code:

'use strict';
 
var context = SP.ClientContext.get_current();
var user = context.get_web().get_currentUser();
 
// This code runs when the DOM is ready and creates a context object which is needed to use the SharePoint object model
$(document).ready(function () {
 getUserName();
});
 
// This function prepares, loads, and then executes a SharePoint query to get the current users information
function getUserName() {
 context.load(user);
 context.executeQueryAsync(onGetUserNameSuccess, onGetUserNameFail);
}
 
// This function is executed if the above call is successful
// It replaces the contents of the 'message' element with the user name
function onGetUserNameSuccess()
 $('#message').text('Hello ' + user.get_title());
}
 
// This function is executed if the above call fails
function onGetUserNameFail(sender, args) {
 alert('Failed to get user name. Error:' + args.get_message());

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

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

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

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

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

相关内容

热门资讯

德国总理:美国正在被伊朗羞辱 德国之声4月27日报道,德国总理默茨在访问一所学校时表示,在当前的持续冲突中,伊朗领导层正试图羞辱美...
理响中国|“长”歌以行,风云激... 光阴如梭,东方潮阔。这里是中国的长三角,世界的长三角。无论过去、现在还是未来,这片土地都因时代而生,...
白宫:特朗普及其国安团队开会讨... 新华社华盛顿4月27日电 美国白宫新闻秘书莱维特27日在记者会上证实,总统特朗普及其国家安全团队当天...
人民日报刊文:日本放开杀伤性武... 日本放开杀伤性武器出口推高地缘冲突风险(国际论坛)常思纯《人民日报》(2026年04月28日 第 0...
医疗保障法草案二审:明确生育保... 满足多样化健康保障需求本报记者 彭 波4月27日,医疗保障法草案二审稿提请十四届全国人大常委会第二十...
天津一景区发生自转旋翼机事故1... 澎湃新闻记者 吕新文中国民用航空华北地区管理局4月22日公布《豪客通航“10•1”天津长芦汉盐旅游区...
卡塔尔埃米尔与美国总统特朗普通... 当地时间24日,卡塔尔埃米尔塔米姆与美国总统特朗普通电话,重点就中东地区局势以及伊朗与美国谈判问题交...
男子30年前被扣押2859克黄... 澎湃新闻记者 王鑫家住辽宁省大连市的潘永嘉近日向澎湃新闻反映称,三十年前,他在大连周水子机场被盖州市...
商务部:取消反制欧盟两家金融机... 中华人民共和国商务部令二〇二六年 第1号鉴于欧盟已取消对中国两家金融机构的制裁措施,现公布《关于取消...
过去24小时共有5艘船只通过霍... 总台记者当地时间24日获悉,过去24小时内,共有5艘船只通过霍尔木兹海峡,其中包括一艘伊朗油轮。(总...