上一篇文章中简单的介绍了使用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,因此在加载集合的时候,选择合适的查询条件对性能的影响至关重要。

最新文章

  1. C# 注册 Windows 热键
  2. maven test 运行 指定类或方法 打包 mvn clean assembly:assembly
  3. 【项目经验】 Html Select 遇上 Easyui
  4. 车牌识别LPR(四)-- 车牌定位
  5. IDEA下安装/配置Jrebel
  6. 笔记:java并发编程实践1
  7. Adobe/Flash Media Server 5.0 linux 64位系统下的安装
  8. 数据库数据用Excel导出的3种方法
  9. android handler looper thread
  10. YII2.0 数据库增删改查
  11. position在IE下的问题
  12. 08.Python网络爬虫之图片懒加载技术、selenium和PhantomJS
  13. ida脚本函数
  14. php分割最后一个逗号后面的字符
  15. nodejs遇到的问题
  16. PostgreSQL之oracle_fdw安装与使用
  17. 简单入门dos程序
  18. springMVC获取用户的数据
  19. 【七】ab压测
  20. input 和<fmt:formatDate>的结合使用

热门文章

  1. VC++ 中简单操作MP3音乐的方法,小结
  2. 想要隐藏navigationBar,同时又想支持右滑返回功能
  3. Python 黑魔法 --- 描述器(descriptor)
  4. Get the Uniqueid of Action Originate in the AMI
  5. lucene prefixQuery
  6. aps.net 图形验证码(转)
  7. 2.1 LibCurl编程流程(转)
  8. Search and Replace
  9. JSON的故事
  10. 2015/09/09夜晚js继续学习