上一篇文章中简单的介绍了使用CSOM进行编程。今天主要讲一下CSOM使用中一些小技巧,可以让你的程序运行的更快。

单独加载某些属性

在上文中的例子,需要返回Web对象信息的时候,我们使用了如下的代码:

var web= clientContext.Web;
clientContext.Load(web);//设置查询信息

进行查询Web的信息,这时候,Web会返回很多属性,很多是我们不需要的,如果我们只需要返回某些属性的时候,我们可以使用如下的方式:

var currentWeb = clientContext.Web;
clientContext.Load(currentWeb, web => web.Title, web => web.Url, web => web.WebTemplate);
clientContext.ExecuteQuery();

这时候返回的报文变成了如下格式:

我们可以看到报文格式中,只返回了我们需要的属性。

以上两种情况下对比,返回的Respone长度分别是1200 和500,因此在网络吞吐有限的情况下,尽量少的返回查询属性,对于效率的提升有很重要的作用。

集合属性的查询

CSOM如何处理集合信息的查询呢,比如获取web下所有的list信息,我们可以:

clientContext.Load(currentWeb.Lists);
clientContext.ExecuteQuery();

这时候,每一个list的所有信息都会返回来,如果我们只想回去某个list的Title和BaseTemplate,那么我们只需要:

var currentWeb = clientContext.Web;
clientContext.Load(currentWeb.Lists, lists => lists.Include(list => list.Title, list => list.BaseTemplate));

或者可以使用:

clientContext.LoadQuery(currentWeb.Lists.Include(list => list.Title, list => list.BaseTemplate));
clientContext.ExecuteQuery();

这两种情况下,在一个有25个list的Web中,Response的报文长度分别是38963 和8172,因此在加载集合的时候,选择合适的查询条件对性能的影响至关重要。

使用SharePoint CSOM 编写高效的程序的更多相关文章

  1. JVM性能优化系列-(4) 编写高效Java程序

    4. 编写高效Java程序 4.1 面向对象 构造器参数太多怎么办? 正常情况下,如果构造器参数过多,可能会考虑重写多个不同参数的构造函数,如下面的例子所示: public class FoodNor ...

  2. 使用ExceptionHandlingScope进行高效的SharePoint CSOM编程

    异常处理 在我们使用SharePoint API的时候,获取某些对象的时候,可能会出异常,那么CSOM如何处理这种情况呢. 我们在获取某个List的时候,代码如下: using (ClientCont ...

  3. 【ZZ】C 语言中的指针和内存泄漏 & 编写高效的C程序与C代码优化

    C 语言中的指针和内存泄漏 http://www.ibm.com/developerworks/cn/aix/library/au-toughgame/ 本文讨论了几种在使用动态内存分配时可以避免的陷 ...

  4. 编写高效的JavaScript程序

    作者: Addy Osmani  来源: CSDN  发布时间: 2013-01-10 14:15  阅读: 7952 次  推荐: 15   原文链接   [收藏] 英文原文:Writing Fas ...

  5. MySql如何编写高效的SQL

    最近应团队要求,研究整理了下,mysql相关的优化,有些是根据实际java项目中碰到的情况经验之谈.欢迎讨论~ SQL 语言是一种强大而且灵活的语言,在使用 SQL 语言来执行某个关系查询的时候,用户 ...

  6. 编写高效的Android代码

    编写高效的Android代码 毫无疑问,基于Android平台的设备一定是嵌入式设备.现代的手持设备不仅仅是一部电话那么简单,它还是一个小型的手持电脑,但是,即使是最快的最高端的手持设备也远远比不上一 ...

  7. 编写高效SQL最佳实践

    编写高效 SQL 语句的最佳实践 秦玮, 高级软件工程师, IBM 王广成, 软件工程师, IBM 王韵婷, 高级软件工程师, IBM 简介: 本文列举了一些在编写 SQL 查询语句时可能导致 DB2 ...

  8. 如何在Android上编写高效的Java代码

    转自:http://www.ituring.com.cn/article/177180 作者/ Erik Hellman Factor10咨询公司资深移动开发顾问,曾任索尼公司Android团队首席架 ...

  9. 编写高效Lua代码的方法

    编写高效Lua代码的方法 翻译自<Lua Programming Gems>Chapter 2:Lua Performance Tips:Basic fact By Roberto Ier ...

随机推荐

  1. 红星美凯龙CEO车建新的圆融和霸气

    待人接物中车建新有许多习惯,与别人一起行走时,走在靠马路的一边:吃饭时最好的菜留给客人.他说,做人往往就在细节中,别小看一个举动,无意中就会感染别人.和别人在一起,你要时时刻刻先考虑对方. 细节上体察 ...

  2. python 注册

    1.打开网址,点击 获得注册码 http://idea.qinxi1992.cn/  2.help -- register 第二步: http://jetbrains.tencent.click/   ...

  3. JQuery this 和 $(this) 详解

    this  this 在面向对象语言中,指代调用上下文对象,在js中,也是一模一样的概念,所以不管这个this出现在什么地方,只要追踪到当前调用对象是什么,那么this是什么也就一目了然了. 先看一个 ...

  4. [2015hdu多校联赛补题]hdu5324 Boring Class

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5324 题意:给你一个二维的序列,让你找出最长的第一维升第二维降的子序列(如果多个答案,输出字典序最小) ...

  5. linux中压缩与解压缩命令

    .tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) ——————————————— .gz 解压 ...

  6. css2选择器

    CSS1&2元素选择器 选择符  类型  版本  简介 * 通配选择符 CSS2 所有元素对象. E 类型(HTML)选择符 CSS1 以文档语言对象类型作为选择符. E#myid id选择符 ...

  7. Centos7 安装MPlayer过程详解

    使用自带的totem基本上都无法播放视频,各种格式都不支持,令人无语.想到了MPlayer,为了看片,决定编译安装,过程真的是折腾.如图是自带的Totem播放提示,安装了解码还是无法播放,反正要找其他 ...

  8. 权限<九>

     介绍 角色就是相关权限的命令集合,使用角色的主要目的就是为了简化权限的管理,假定有用户 a,b,c 为了让他们都拥有权限 1. 连接数据库 2. 在 scott.emp 表上 select,ins ...

  9. [php-src]理解Php内核中的函数与INI

    内容均以php-5.6.14为例. 一. 函数结构 内核中定义一个php函数使用 PHP_FUNCTION 宏 包装,扩展也不例外,该宏在 ./main/php.h:343 有着一系列类似以 PHP ...

  10. 【Java学习笔记】Map借口的子接口----HashMap

    存储在HashMap集合中的元素,必须覆盖hashCode和equals方法(与HashSet类似)   import java.util.HashMap; import java.util.Iter ...