自定义浏览器侧电子表格函数的制作方法

文档序号:6532671阅读:289来源:国知局
自定义浏览器侧电子表格函数的制作方法
【专利摘要】一种启用在主存页面中以及从电子表格内调用用户定义函数(UDF)的能力的体系结构。UDF可被用于向电子表格模型添加功能。电子表格计算跨后端计算服务器和web浏览器传播。电子表格计算状态随浏览器函数被计算而被维护。此外,浏览器UDF可被同步或异步执行。该体系结构还提供在运行时动态注册/注销UDF(随后可从电子表格模型中调用(并远程执行))的能力,以及定义可包括全部UDF定义的清单的能力。还防止无限计算循环的情况。UDF具有对页面DOM(文档对象模型)的完全访问。
【专利说明】自定义浏览器侧电子表格函数
[0001]背景
[0002]在构建围绕电子表格模型的解决方案时,通常需要提供除构建到电子表格应用内部的功能以外的功能。这对于可能有更少的特征的基于网络的服务特别适用。
[0003]然而,在基于网络的服务中提供可扩展性是复杂的。例如,实际计算服务可能是安全的,且不像本地地运行电子表格应用的个人计算机那样,基于网络的服务很少由创建/运行工作簿(或其它类型的文件格式)模型的用户“拥有”。因此,归因于整个服务的可靠性和安全性的关注,将终端用户代码运行成模型的部分通常是不可行的。

【发明内容】

[0004]下面提供了简化的
【发明内容】
,以便提供对此处所描述的一些新颖实施例的基本理解。本
【发明内容】
不是广泛的概览,并且它不旨在标识关键/重要元素或描绘本发明的范围。其唯一的目的是要以简化形式给出一些概念以为稍后给出的更加具体的说明之序。
[0005]所揭示的体系结构采用用户定义函数(UDF),以通过在用户个人计算机的web浏览器的上下文中运行自定义函数UDF来克服现有的限制。因此,UDF不对后端服务造成相同的可靠性和安全性关注,而仍允许作者的解决方案自定义(假设作者可对网页的内容进行写控制,该网页主存例如工作簿等文件的运行时表示)。
[0006]通常,该体系结构提供在主存页面内从电子表格内调用函数的能力,将电子表格计算跨后端计算服务器和web浏览器传播,随着浏览器函数被计算来维护电子表格计算状态,并提供同步或异步执行浏览器UDF的能力。此外,该体系结构提供在运行时动态注册/注销UDF(随后可从电子表格模型中调用(但远程执行))的能力、定义可包括全部UDF定义的清单的能力,并防止无限计算循环的情况。
[0007]为了实现上述及相关目的,本文结合下面的描述和附图来描述某些说明性方面。这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。结合附图阅读下面的详细描述,其他优点和新颖特征将变得显而易见。
【专利附图】

【附图说明】
[0008]图1示出根据所公开的体系结构的系统。
[0009]图2示出了在后端计算服务和客户机侧浏览器之间的流程图。
[0010]图3示出了在后端计算服务和客户机侧浏览器之间的替换的流程图。
[0011]图4示出根据所公开的体系结构的方法。
[0012]图5示出图4的方法的更多方面。
[0013]图6示出根据所公开的体系结构的替代方法。
[0014]图7示出图6的方法的更多方面。
[0015]图8示出了执行根据所公开的体系结构的浏览器侧用户定义函数的计算系统的框图。【具体实施方式】
[0016]所揭示的体系结构允许在主存页中以及从主存在web页面中的电子表格内调用函数(UDF—用户定义函数)的能力。UDF可被用于向电子表格模型添加功能。电子表格计算跨后端计算服务器和web浏览器传播。电子表格计算状态随浏览器函数被计算而被维护。此外,浏览器UDF可被同步或异步执行。该体系结构还提供在运行时动态注册/注销UDF(随后可从电子表格模型中调用(并远程执行))的能力,以及定义可包括全部UDF定义的清单的能力。还防止无限计算循环的情况。UDF可具有对网页DOM(文档对象模型)以及由电子表格运行时环境使得对其可用的任何其它资源的完全访问(这些资源可能不存在于包含网页上)。
[0017]用户定义函数(例如JavaScript?)是可由网页的作者创作的UDF,并通过主存在同一页中的电子表格文件格式(诸如工作簿)来调用。(以下,文件格式指工作簿;但是,可以理解该描述一般适用于可被用作电子表格的部分的任何文件格式。)这些UDF允许和其它电子表格UDF(例如计算、外部数据等)相同类型的可扩展性,但是目标是web类型的情形,因为UDF依赖于网页上下文来实现。
[0018]由于JavaScript UDF在网页中(主体包含在其中)而不是在工作簿中实现,所以UDF可以(经由div聚合(亦称div嵌入);div HTML(超文本标记语言标签))从嵌入在页面中的工作簿调用。
[0019]现在将参考附图,全部附图中相同的附图标记用于指代相同的元素。在下面的描述中,为了进行说明,阐述了很多具体细节以便提供对本发明的全面理解。然而,显而易见,可以没有这些具体细节的情况下实施各新颖实施例。在其他情况下,以框图形式示出了各个公知的结构和设备以便于描述本发明。本发明将涵盖落入所要求保护的主题的精神和范围内的所有修改、等效方案和替换方案。
[0020]图1不出根据所公开的体系结构的系统100。系统100可包括在客户机设备的web浏览器104的上下文中运行的用户定义函数102。用户定义函数102可经由web浏览器104从主存在网页108中的电子表格106调用。用户定义函数102根据脚本语言(例如JavaScript)来编写。web浏览器104和后端计算服务110共享用户定义函数102的电子表格计算。随着用户定义函数102被计算,电子表格计算状态被维护。用户定义函数102可被同步或异步执行。用户定义函数102可在运行时被动态注册和注销。用户定义函数102可被列在清单中,并从该清单加载。电子表格106基于div聚合嵌入在网页108中。
[0021]图2示出了在后端计算服务110和客户机侧浏览器104之间的流程图200。该总体流程图在采用电子表格计算服务110 (例如可包括Excel计算服务ECS的Excel服务?)以及用于呈现Excel文件格式(被称为工作簿)的web前端的上下文中描述。Excel服务可使用异步模型来计算JavaScript UDF。
[0022]流从202开始,客户机侧的用户访问网页来使得服务110通过浏览器104呈现工作簿。在204,(例如,通过编辑、刷新等)计算操作从(通过访问了 Excel web应用一 EWA的)浏览器104开始,直到服务110,其中服务110计算其尽可能多的计算链(执行一遍计算)。当服务110遭遇(例如,因为改变了的参数或因为UDF易失)要被计算的JavaScriptUDF(被表示为JS UDF)时,在206,JavaScript UDF被添加到函数的列表以在浏览器104中计算。
[0023]一旦没有更多依赖性可被服务110计算时,“半计算”结果连同JavaScript UDF的列表被发送回浏览器104中的EWA,以在浏览器104中计算。浏览器104计算该JavaScriptUDF0浏览器104(通过EWA)按照以下顺序(例如串行地)发起每个JavaScript UDF的计算:异步 JavaScript UDF,随后是同步 JavaScript UDF。在 208, —旦全部的 JavaScript UDF被计算,结果被返回服务110,以被插入计算链,且用返回的值重新开始计算。在210,计算结果在浏览器104(它的EWA)中呈现。
[0024]图3示出了在后端计算服务110和客户机侧浏览器104之间的示意流程图300。服务110和浏览器104之间的移交可被配置以在单个计算操作期间发生预定次数(例如,五),以防止无限计算的情形。因此,在302,第二或附加的一遍计算可在步骤208之后被执行,而不是移到在前面的流程图200中的210以呈现计算结果。一旦服务110确定全部的依赖性已经被计算,且计算完成了或服务110已到达了循环计数限制,则服务110通知(浏览器104的)EWA计算操作完成。在302,计算结果在浏览器104 (它的EWA)中呈现。继续直到到达循环限制。在304,JavaScript UDF被返回到浏览器104中的EWA,且在210,计算结果在浏览器104(它的EWA)中呈现。
[0025]在计算操作期间,可通过将单元格的值设置为诸如#GETTING_DATA等值来通知用户未决的计算。因为触及循环限制而未计算的JavaScript UDF留在#GETTING_DATA状态中。
[0026]由于在浏览器104中每轮计算JS UDF之后,计算在服务器(服务110)重新开始,所以使用迭代计算的工作簿可显得已经通过了每轮JS UDF计算的迭代。
[0027]由于计算操作,EWA将不阻止用户交互。在整个计算操作完成之前改变模型的任何用户操作将中止当前的计算操作,并从头重新开始该计算操作。已中止的计算操作的异步JavaScript UDF所返回的值将被忽略。由于JavaScript可导致浏览器阻塞,所以同步的JavaScript UDF可有效地阻止在JavaScript UDF正在被计算的部分计算操作期间的用户交互。JavaScript UDF在所有计算模式中(例如,自动、手动等)相同地重新计算。当计算被调用时,所有的identically重新计算,不论状态。
[0028]在一个示例情形中,用户可使用通常从证券报价网站获得的功能来通过浏览器提供对工作簿的“任何地方”访问。在这个示例中,用户可复制并粘贴JavaScript的部分,并获得用户的工作簿的嵌入式代码。然后,用户能够在工作簿中输入公式和证券报价,例如,开始实时显示。粘贴到浏览器页面的使之可行的JavaScript可看起来如下:
[0029]
【权利要求】
1.一种系统,包括: 在客户机设备的web浏览器的上下文中运行的用户定义函数,所述用户定义函数能够从主存在网页中的电子表格调用,所述网页经由所述web浏览器来访问;以及 处理器,它执行与所述用户定义函数相关联的计算机可执行指令。
2.如权利要求1所述的系统,其特征在于,所述用户定义函数是根据脚本语言编写的。
3.如权利要求1所述的系统,其特征在于,所述web浏览器和后端计算服务共享所述用户定义函数的电子表格计算。
4.如权利要求1所述的系统,其特征在于,随着所述用户定义函数被计算,电子表格计算状态被维护。
5.如权利要求1所述的系统,其特征在于,基于div聚合,所述电子表格嵌入在所述网页中。
6.一种方法,包括以下动作: 从嵌入在网页中的电子表格调用嵌入在所述网页中的用户定义函数,所述用户定义函数通过客户机的浏览器来处理; 使用所述浏览器和后端计算服务来计算所述用户定义函数; 随着所述用户定义函数被计算,维护电子表格计算状态; 基于所述计算将结果呈现在所述电子表格中;以及 利用执行储存于存储器中的指令的处理器来执行所述调用、计算、维护或呈现中的至少一个动作。
7.如权利要求6所述的方法,其特征在于,还包括通过所述用户定义函数访问所述网页的文档对象模型。
8.如权利要求6所述的方法,其特征在于,还包括限制计算处理以防止无限计算循环的情形。
9.如权利要求6所述的方法,其特征在于,还包括在运行时注册和注销所述用户定义函数以用于由所述电子表格调用以及远程执行。
10.如权利要求6所述的方法,其特征在于,还包括在所述web浏览器的上下文中运行所述用户定义函数。
【文档编号】G06F17/21GK104040535SQ201380005102
【公开日】2014年9月10日 申请日期:2013年1月7日 优先权日:2012年1月9日
【发明者】D·C·巴塔金, S·普里什 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1