很多人在用client object model的时候,不知道何时或者该不该load,今天看到一个观点描述这个问题,觉得很有道理,和大家分享。那就是写client object model就像写sql语句一样。你可以随意使用写关系复杂的查询语句,当你要查看结果的时候,执行这个sql语句就行了。这里就不考虑什么代码效率的问题了,那是另一个话题。
放到client object model的意思是一样的,你可以随意使用对象以及对象的属性,构建你想要的对象,但是当你想使用这个结果对象或者想查看结果的时候,就是你该load的时候了。
典型的例子:
1. 当你想查询web title的时候,到了web那一级你就得load了。
web = context.web;
context.load(web, 'Title');
context.executQuery();
web.Title就可以得到了。
2. 当你想查询item的时候,web就不用load了,甚至list也不用load,你只需要构建需要listitemcollection对象,然后load这个listitemcollection对象
list = context.web.get_lists().getByTitle('asd')
oListItems = orgList.getItems(camlQuery);
context.load(oListItems );
只是我个人的一点看法。