sharepoint对象模型性能比较

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

 

1,splist

         有些人喜欢通过列表的名字去获得列表,

            using (SPSite site = new SPSite(strSite))

            {

                using (SPWeb web = site.OpenWeb())

                {

                    SPList oList = web.Lists ["MyList"]

                }

             }

        这个例子中,代码会先加载web下的所有OList,返回所有OList的title,然后去一个个比较title与listname后,得到OList;

using (SPSite site = new SPSite(strSite))

      {

       using (SPWeb web = site.OpenWeb())

        {

          SPList oList = web.GetList("http://Site/list/AllItem.aspx")

        }

      }

   在这个例子中,代码先根据url返回列表的guid,然后再根据guid去找web下的list

2,SPListItemColliction

using (SPSite site = new SPSite(strSite))

            {

                using (SPWeb web = site.OpenWeb())

                {

                  SPList oList = web.GetList("http://Site/list/AllItem.aspx");

                    for(int idx =0; idx< oList.ItemCount; idx ++)

                    {

                        string strLstItemName = oList.Items[idx].Name;

                    }

                }

            }

在这个例子中,   oList.Items[idx]每次都会加载一个SpListItemColliction,比如,如果你的列表有10000个Item,

oList.Items[idx]每次都会加载这10000个Item,这将会消耗不少内存去存这个SpListItemColliction;

 

using(SPSite site = new SPSite(strSite))

            {

                using (SPWeb web = site.OpenWeb())

                {

                   SPList oList = web.GetList("http://Site/list/AllItem.aspx");

                    SPListItemCollection oListItems = oList.Items;

                    for(int idx =0; idx< oList.ItemCount; idx ++)

                    {

                        string strLstItemName = oListItems[idx].Name;

                    }

                }

            }

在这个例子中,先去得到一个SpListItemColliction,这个内存只需去加载一次SpListItemColliction

3,SPListItem in event handlers

public override void ItemAdded(SPItemEventProperties properties)

 {

  using (SPSite oSite = new SPSite(properties.WebUrl))

   {

    using (SPWeb oWeb = oSite.OpenWeb())

    {

     SPList oList = oWeb.Lists[properties.ListId];

     SPListItem oListItem = oList.GetItemByUniqueId(properties.ListItemId);

    }

   }

 }

在这种情况下,我们多余的装载对象消耗了APIs,并且将装载一个SpListItemColliction,请看下面的方法:

public override void ItemAdded(SPItemEventProperties properties)

 {

  SPListItem oItem = properties.ListItem;

 }

这用该不用多说了吧

4,SPListItem Count

using (SPSite site = new SPSite(strSite))

      {

       using (SPWeb web = site.OpenWeb())

        {

          SPList oList = web.GetList("http://Site/list/AllItem.aspx");

          int iCount = oList.Items.Count;

        }

      }

oList.Items.Count,首先在内存中加载所有的items,并计算出Count;

 

using (SPSite site = new SPSite(strSite))

      {

       using (SPWeb web = site.OpenWeb())

        {

          SPList oList = web.GetList("http://Site/list/AllItem.aspx");

          int iCount = oList.ItemsCount;

        }

      }

ItemsCount是SPList的属性,没有过多的加载Items

5,Items

 

SPList.Items.Count

 

SPList.ItemsCount

 

SPList.Items[Guid]

 

SPList.GetItemByUniqueId(Guid)

 

SPList.Items[Int32]

 

SPList.GetItemById(Int32)

 

SPList.Items.GetItemById(Int32)

 

SPList.GetItemById(Int32)

列表左面的做了额外功,右面高效

转载于:https://www.cnblogs.com/hqbird/archive/2011/05/12/2043948.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267812.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

package.json---入门说明

直接的说&#xff1a;就是管理你本地安装的npm包 一个package.json文件可以做如下事情&#xff1a; 展示项目所依赖的npm包 允许你指定一个包的版本[范围] 让你建立起稳定&#xff0c;意味着你可以更好的与其他开发者共享 创建package.json 在你要创建的目录下执行&#xff1a;…

java多线程实战指南_学习笔记《Java多线程编程实战指南》二

2.1线程属性属性属性类型及用途只读属性注意事项编号(id)long型,标识不同线程是不适合用作唯一标识名称(name)String型&#xff0c;区分不同线程否设置名称有助于代码调试和问题定位线程类别(daemon)boolean型&#xff0c;true为守护线程&#xff0c;false为用户线程否在start方…

putty, puttycm区别

2019独角兽企业重金招聘Python工程师标准>>> 在windows上实现telnet, ssh等工具有几个方案可以选择, 本文总结了putty putty cm的方案, 并且简短地和 cygwin console2方案做了一下比较. 由于putty的安装 配置比较简单, 本文主要讨论了Putty cm的配置和中文的支持.…

思科网络基础之访问控制列表

loading....转载于:https://www.cnblogs.com/changha0/p/8185866.html

java编写日期_Java常用日期操作

//日期转字符串,根据需要调整格式Testpublic voidDateToString(){Date currentTime newDate();SimpleDateFormat formatter new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateStringformatter.format(currentTime);System.out.println(dateString);}字符串转…

使用jQuery Treeview插件实现树状结构效果

首先到一个国外网站上下载Treeview插件&#xff1a;http://bassistance.de/jquery-plugins/jquery-plugin-treeview/当然你也可以通过我博客的源文件直接下载&#xff1a;http://files.cnblogs.com/jishume/jquery_api_for_dw4.rar 为了形象一点&#xff0c;先看一个效果图&…

冲刺二周04

第四天&#xff1a; 昨天干什么&#xff1a;完成搜索界面 今天干什么&#xff1a;编写模糊查询搜索的代码 遇见什么问题&#xff1a;不熟悉 团队成员会议照&#xff1a; 转载于:https://www.cnblogs.com/ghl0518/p/8301051.html

[转]The Top 10 Attributes of a Great Programmer

With all the latest attention again on what does and doesn’t make a good programmer, I couldn’t help but put together my own top 10 list. Being a great problem solver.Being driven and lazy at the same time.Ability to understand other people’s codeHaving…

zabbix查看mysql同步_Zabbix 检测Mysql数据库的主从同步

在高并发网站架构中&#xff0c;MySQL数据库主从同步是不可或缺的&#xff0c;不过经常会发生由于网络原因或者操作错误&#xff0c;MySQL主从经常会出现不同步的情况&#xff0c;那么如何监控MySQL主从同步&#xff0c;也变成检测网站正常运行的重要环节。MySQL同步功能由3个线…

LeetCode String Compression

原题链接在这里&#xff1a;https://leetcode.com/problems/string-compression/description/ 题目&#xff1a; Given an array of characters, compress it in-place. The length after compression must always be smaller than or equal to the original array. Every elem…

瀑布模型 原型模型 增量模型 螺旋模型的优缺点

瀑布模型的优点&#xff1a;有利于大型软件开发过程中人员的组织、管理&#xff0c;有利于软件开发方法和工具的研究&#xff0c;从而提高了大型软件项目开发的质量和效率。瀑布模型的缺点&#xff1a;&#xff08;1&#xff09;开发过程一般不能逆转&#xff0c;否则代价太大&…

二手手机交易平台使用MYSQL的方法_安卓Android校园淘(二手交易)APP设计与实现(MySQL)...

安卓Android校园淘(二手交易)APP设计与实现(MySQL)(任务书,开题报告,中期检查表,文献综述,外文翻译,毕业论文14000字,程序代码,MySQL数据库)本项目就是一个基于Android平台的校园淘APP设计&#xff0c;采用了Struts技术&#xff0c;JDBC技术和Android的基础技术完成开发。收录了…

频繁项集-------产生强关联规则的过程

频繁项集------->产生强关联规则的过程 1.由Apriori算法&#xff08;当然别的也可以&#xff09;产生频繁项集 2.根据选定的频繁项集&#xff0c;找到它所有的非空子集 3.强关联规则需要满足最小支持度和最小置性度 &#xff08;假设关联规则是&#xff1a;A>B &#…

ADSL之PPPOE

大家好&#xff01;我是书记&#xff0c;今天我来小谈一下网络中的PPPOE技术。 PPPOE&#xff08;Point to Point Protocol over Ethernet&#xff09;以太网点到点协议&#xff0c;简单的说&#xff0c;是以太网协议和PPP协议结合后所产生的协议&#xff0c;是在PPP协…

java标号

标号用于控制循环执行流程&#xff1a; public static void main(String[] args) {mark:for(int i 0; i < 3; i) {System.out.printf("i %d\n", i);for (int j 0; j < 3; j) {System.out.printf("j %d\n", j);if (i 1 && j 1) {//brea…

LAMP环境下ECShop系统部署

作业环境服务器端&#xff1a;RHEL6.0 IP&#xff1a;10.8.110.8 客户端&#xff1a;Windows 7 IP&#xff1a;10.8.110.28 一、ECShop简介 ECShop是上海商派网络科技有限公司&#xff08;ShopEx&#xff09;旗下——B2C独立网店系统&#xff0c;适合企业及个人快速构建个…

date js 半年_JavaScript Date对象

Date对象源码下载最初接触编程&#xff0c;没有接触过非常讲究时间控制的领域&#xff0c;往往对时间没有概念&#xff0c;单片机编程&#xff0c;嵌入式开发&#xff0c;操作系统&#xff0c;无人及姿态控制往往会关注毫秒ms、微秒us级的时间概念。什么是并行&#xff0c;什么…

SQL Server代理的阶梯 - 第2级:作业步骤和子系列

作者&#xff1a;Richard Waymire&#xff0c;2017/10/11&#xff08;第一版&#xff1a;2011/02/17&#xff09; 原文链接&#xff1a;http://www.sqlservercentral.com/articles/SQLAgent/JobStepsandSubsystems/72268/ 该系列 本文是“Stairway系列&#xff1a;SQL Server代…

java动画闪烁_优化Java动画编程中的显示效果

Java动画编程有多种实现方法&#xff0c;但它们实现的基本原理是一样的&#xff0c;即在屏幕上画出一系列的帧来造成运动的感觉。Java多线程技术是Java动画编程中普遍运用的技术&#xff0c;它在控制动画程序的流程和动画的显示效果方面起着重要的作用。Java动画编程中的动画闪…

Visual C++ 2011-5-20

一.LockFile和UnlockFile 锁定文件部分区域&#xff0c;防止其他程序进行该部分区域的读写 #include <windows.h> #include <stdio.h>void main() {HANDLE hFile;HANDLE hAppend;DWORD dwBytesRead, dwBytesWritten, dwPos;BYTE buff[4096];// Open the existin…