saundy 发表于 2019-2-3 15:59:28

sharepoint对象模型性能比较

sharepoint的对象模型的属性和方法有多种,可能对于一些初学者不明白他们之间有什么区别,那种更优越,在何种情况下用那种属性或方法,通过这篇文章你会有所了解

1,splist
         有些人喜欢通过列表的名字去获得列表,
            using                using (SPWeb web = site.OpenWeb())
                }
(SPSite site = new SPSite(strSite))
      {
      }
   在这个例子中,代码先根据url返回列表的guid,然后再根据guid去找web下的list
2,SPListItemColliction
using                using (SPWeb web = site.OpenWeb())
                  SPList oList = web.GetList("http://Site/list/AllItem.aspx");
                        string strLstItemName = oList.Items.Name;
            }
在这个例子中,   oList.Items每次都会加载一个SpListItemColliction,比如,如果你的列表有10000个Item,
oList.Items每次都会加载这10000个Item,这将会消耗不少内存去存这个SpListItemColliction;

using(SPSite site = new SPSite(strSite))
                {
                  {
                }
3,SPListItem in event handlers
override void ItemAdded(SPItemEventProperties properties)
   {
   SPList oList = oWeb.Lists;
    }
在这种情况下,我们多余的装载对象消耗了APIs,并且将装载一个SpListItemColliction,请看下面的方法:
override void ItemAdded(SPItemEventProperties properties)
}
(SPSite site = new SPSite(strSite))
      {
      }
using       using (SPWeb web = site.OpenWeb())
          int iCount = oList.ItemsCount;
ItemsCount是SPList的属性,没有过多的加载Items
5,Items

SPList.SPList.Items
GetItemById(Int32)
Items.GetItemById(Int32)
GetItemById(Int32)

列表左面的做了额外功,右面高效
以上只代表个人观点,如果你不这么认为,偏要那么用,你的权利



页: [1]
查看完整版本: sharepoint对象模型性能比较