ECMAScript是基于javascript的客户端脚本语言,SharePoint 2010中支持使用ECMAScript来调用客户端对象模型
背景
众所周知客户端对象模型是SharePoint 2010 中相当实用的新特性之一,你可能已经了解在SharePoint2007中你如果不想再服务器端调用SharePoint对象,只有通过Web Services来实现。现在在SharePoint 2010 中你可以使用客户端对象模型来实现与SharePoint的交互,当然你也可以继续使用Web Services的方式。
SharePoint 客户端对象模型工作原理
SharePoint客户端对象模型是SharePoint的API之一运行在客户端,他通过应用程序将API调用转化为XML 请求,然后传输到SharePoint服务器端。在服务器端,XML请求被一个名为Client.svc的服务处理为SharePoint服务器端对象模型然后返回结果。得到结果后,Client.svc在把他们转化为JSON对象,并返回到客户端对象模型。最后在客户端JSON再被转义成ECMAScript 对象,从而提供ECMAScript服务。
参考1: http://msdn.microsoft.com/en-us/library/ee538253.aspx
参考2: http://msdn.microsoft.com/en-us/library/ee857094(office.14).aspx
使用ECMAScript
- 创建一个列表名为Product然后添加一些记录。
- 在页面库中创建一个ASPX 测试页面。
- 添加内容编辑web part并加入如下代码。
01 | <script type= "text/javascript" > |
03 | ExecuteOrDelayUntilScriptLoaded(MainFunction, "sp.js" ); |
10 | function MainFunction() { |
11 | objContext = new SP.ClientContext.get_current(); |
12 | objWeb = objContext.get_web(); |
13 | objList = objWeb.get_lists().getByTitle( "Product" ); |
15 | objContext.load(objList); |
17 | objContext.executeQueryAsync(Function.createDelegate( this , this .onSuccess), Function.createDelegate( this , this .onFail)); |
20 | function onSuccess(sender, args) { |
21 | alert( 'Item Count: ' + objList.get_itemCount()); |
24 | function onFail(sender, args) { |
25 | alert( 'Some error has occured.' ); |
说明
我们使用ExecuteOrDelayUntilScriptLoaded(Func, "sp.js") 来加载客户端对象模型。该函数是客户端对象模型的核心,并加载sp.js以及最为主函数的函数名。我们必须用过SP.ClientContext来获取站点上下文内容并通过get_web()方法获取网站的上下文内容,然后通过getByTitle方法来获取先前创建的list对象。在加载所有对象是可能引起延迟或性能下降。最后我们通过异步加载成功时调用OnSuccess()方法,失败是调用OnFail() 方法。
结论
ECMAScript是基于javascript的客户端脚本语言,SharePoint 2010中支持使用ECMAScript来调用客户端对象模型。用户能在SharePoint 2010的Aspx页面中使用ECMAScript,即使在没有VS或者SharePoint Designer的情况下,也能轻松调用的SharePoint中的内容并加入复杂的web services。
转载于:https://www.cnblogs.com/hayden/archive/2011/04/13/2014719.html