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