一种关系链数据处理的方法和系统、客户端的制作方法

文档序号:6500738阅读:161来源:国知局
一种关系链数据处理的方法和系统、客户端的制作方法
【专利摘要】本发明公开了一种关系链数据处理的方法和系统、客户端,方法包括:解析页面描述语言文档,当解析到所述页面描述语言文档中的扩展标签时,根据扩展标签的属性查询获取关系链数据的接口,并获取相应的关系链数据;根据解析页面描述语言文档所得内容、以及获取到的关系链数据渲染网页。通过本发明,实现了在保证关系链安全性的基础上,第三方对关系链数据的展现形式和样式的灵活控制。
【专利说明】一种关系链数据处理的方法和系统、客户端

【技术领域】
[0001]本发明涉及互联网【技术领域】,尤其涉及一种关系链数据处理的方法和系统、客户端。

【背景技术】
[0002]在互联网技术的应用中,关系链是指通过网络、软件(如即时通讯、微博)等所建立的人与人之间的关系数据的统称,包括但不限于用户和好友的资料、用户与某用户是否为好友、用户与好友的互动信息等。关系链托管是指,第三方开发者使用关系链数据的功能时,关系链数据不暴露给第三方开发者,而是通过某种方式被安全的托管。
[0003]现有技术中,第三方开发者要使用关系链托管主要是激活运行环境的托管关系链弹窗,委托运行环境自身的分享窗口进行应用(App)的分享。如图1所示,是现有技术中一种第三方开发者使用关系链的运行示意图。
[0004]现有技术中的关系链托管主要存在以下缺陷:
[0005]1、提供利用关系链的功能单一,目前只能进行微博、好友间等的分享;
[0006]2、由于将关系链的应用托管到当前运行环境的窗口上,第三方很难对关系链的数据的行为及展现样式进行控制。


【发明内容】

[0007]有鉴于此,本发明的主要目的在于提供一种关系链数据处理的方法和系统、客户端,以实现在保证关系链安全性的基础上,第三方对关系链数据的展现形式和样式的灵活控制。
[0008]为达到上述目的,本发明的技术方案是这样实现的:
[0009]本发明提供一种关系链数据处理的方法,该方法包括:
[0010]解析页面描述语言文档,当解析到所述页面描述语言文档中的扩展标签时,根据扩展标签的属性查询获取关系链数据的接口,并获取相应的关系链数据;
[0011]根据解析页面描述语言文档所得内容、以及获取到的关系链数据渲染网页。
[0012]较佳的,所述根据解析页面描述语言文档所得内容、以及获取到的关系链数据渲染网页,包括:
[0013]根据获取到的关系链数据构建扩展的文档对象模型DOM树;
[0014]根据构建的扩展的DOM树、以及解析所述页面描述语言文档得到的层叠样式表CSS文本,构建渲染树;
[0015]从所述渲染树的根渲染对象开始,以递归的方式布局所述渲染树;
[0016]遍历布局后的渲染树并调用渲染对象的绘制方法,将所述渲染对象渲染到网页上。
[0017]较佳的,所述以递归的方式布局渲染树包括:
[0018]对于所述渲染树中递归的每一个渲染对象,根据解析所述页面描述语言文档得到的CSS文本,计算其显示的位置和大小,并根据所述位置和大小布局所述渲染树。
[0019]较佳的,所述页面描述语言文档为超文本标记语言(X)HTML文档。
[0020]较佳的,该方法进一步包括:
[0021]从所述(X)HTML文档中的扩展标签的开始标签中获取所述扩展标签的属性。
[0022]本发明还提供了一种客户端,包括:
[0023]文档解析模块,用于解析页面描述语言文档;
[0024]数据获取模块,用于在所述文档解析模块解析到所述页面描述语言文档中的扩展标签时,所述数据获取模块根据扩展标签的属性查询获取关系链数据的接口,并获取相应的关系链数据;
[0025]网页渲染模块,用于根据解析页面描述语言文档所得内容、以及获取到的关系链数据渲染网页。
[0026]较佳的,所述网页渲染模块包括:
[0027]文档对象模型DOM树构建子模块,用于根据获取到的关系链数据构建扩展的DOM树;
[0028]渲染树构建子模块,用于根据构建的扩展的DOM树、以及解析所述页面描述语言文档得到的层叠样式表CSS文本,构建渲染树;
[0029]布局子模块,用于从所述渲染树的根渲染对象开始,以递归的方式布局所述渲染树;
[0030]渲染子模块,用于遍历布局后的渲染树并调用渲染对象的绘制方法,将所述渲染对象渲染到网页上。
[0031]较佳的,所述以递归的方式布局渲染树包括:
[0032]对于所述渲染树中递归的每一个渲染对象,根据解析所述页面描述语言文档得到的CSS文本,计算其显示的位置和大小,并根据所述位置和大小布局所述渲染树。
[0033]较佳的,所述页面描述语言文档为超文本标记语言(X)HTML文档。
[0034]较佳的,所述数据获取模块进一步用于,从所述(X)HTML文档中的扩展标签的开始标签中获取所述扩展标签的属性。
[0035]本发明还提供了一种关系链数据处理系统,该系统包括:关系链数据平台、第三方服务器、以及本发明所述的客户端,其中,
[0036]所述第三方服务器,用于存储和提供页面描述语言文档;
[0037]所述关系链数据平台,用于从所述第三方服务器获取所述页面描述语言文档,并将获取的所述页面描述语言文档提供给所述客户端;
[0038]所述关系链数据平台还用于,通过所述客户端的获取关系链数据的接口,向所述客户端提供相应的关系链数据查询服务。
[0039]本发明所提供的一种关系链数据处理的方法和系统、客户端,实现了在保证关系链安全性的基础上,第三方对关系链数据的展现形式和样式的灵活控制。

【专利附图】

【附图说明】
[0040]图1为现有技术中一种第三方开发者使用关系链的运行示意图;
[0041]图2为本发明实施例的一种关系链数据处理的方法流程图;
[0042]图3为本发明实施例中根据获取的关系链数据渲染网页的流程图;
[0043]图4为本发明实施例的一种关系链数据处理的示意图;
[0044]图5为本发明实施例的一种关系链数据处理的系统的结构示意图。

【具体实施方式】
[0045]下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
[0046]为安全地利用关系链,关系链数据不应暴露给第三方,即不开放数据接口给第三方,而仅仅让第三方可以控制展现关系链数据的形式和样式。对于数据的渲染,则由运行WebApp的浏览器内核完成。WebApp是基于浏览器内核和Web技术开发的应用。
[0047]为实现上述目的,本发明实施例提供的一种关系链数据处理的方法,如图2所示,主要包括以下步骤:
[0048]步骤201,解析页面描述语言文档,当解析到所述页面描述语言文档中的扩展标签时,根据扩展标签的属性查询获取关系链数据的接口,并获取相应的关系链数据。
[0049]本发明实施例的页面描述语目可以是⑴HTML,⑴HTML是超文本标记语目(HTML, HyperText Markup Language)和可扩展超文本标记语言(XHTML, ExtensibleHyperText Markup Language)的统称,为描述方便,后续统称为超文本标记语言,(X)HTML是网页的重要组成部分。HTML文档包括HTML标签和纯文本,XHTML的表现形式和作用与HTML类似,但在语法上更加严格。(X)HTML的主要作用就是描述网页,浏览器可以解析用(X)HTML描述的网页,并将网页展示给用户。
[0050]其中,(X)HTML标签是由尖括号包围的关键词,如标签通常是成对出现的,如<b>和</b>。⑴HTML标签是⑴HTML文档的重要组成部分,⑴HTML文档和⑴HTML元素是通过(X) HTML标签进行标记的。其中,开始标签是被括号包围的元素名,如<b>表示开始标签,结束标签是被括号包围的斜杠和元素名,如</b>表示结束标签。
[0051](X) HTML元素是指从开始标签到结束标签的所有代码。(X) HTML属性是(X) HTML标签拥有的属性,属性提供了有关(X)HTML元素的更多信息。属性是名称/值对的形式,比如:name=〃value〃 ;且属性是在HTML元素的开始标签中规定。例如,对于以下(X)HTML元素:〈ahref=//http://www.qq.com//>This is a Iink</a>,^Pf3Jhref=^http://www.qq.com^ 1--该a标签的一个属性。相应的,可以从(X)HTML文档中的扩展标签的开始标签中获取扩展标签的属性。
[0052]浏览器最核心的部分是解释引擎(Rendering Engine),也称为浏览器内核,其主要负责对页面语法的解释并渲染(显示)网页。如对(X)HTML文档进行解析并渲染网页。
[0053]以⑴HTML为例,本发明实施例对⑴HTML标签进行扩展,增加一种元素名为自定义名的(X)HTML标签,如〈qq>〈/qq>、〈myTag>〈/myTag>等等,以实现第三方想要的功能。第三方可以如传统操作标签一样操作扩展标签,例如,用层叠样式表(CSS,Cascading StyleSheets)控制其样式,用JavaScript (—种脚本)控制其行为,但第三方无法控制其所展现出的数据内容,因为这部分数据由运行WebApp的浏览器内核负责。这样,能够保证关系链数据的安全。
[0054]需要说明的是,本发明实施例中的扩展标签可以为一种新增的元素名为自定义名的标签,设定其标签属性,使其满足第三方想要的功能;当然,也可以选择已有标签进行扩展,对已有标签的属性进行更改,使扩展标签能够满足第三方想要的功能。
[0055]步骤202,根据解析页面描述语言文档所得内容、以及获取到的关系链数据渲染网页。
[0056]其中,根据获取的关系链数据渲染网页具体过程,如图3所示,主要包括:
[0057]步骤301,根据获取到的关系链数据构建扩展的文档对象模型(DOM)树;
[0058]步骤302,根据构建的扩展的DOM树、以及解析所述页面描述语言文档得到的CSS文本,构建渲染树;
[0059]当扩展的DOM树构建完成时,开始构建渲染树。渲染树是由元素显示序列中的可见元素组成,它是文档的可视化表示,构建渲染树是为了以正确的顺序绘制文档内容。在不同的浏览器中,对渲染树中的元素叫法不同,例如:Firefox浏览器将渲染树中的元素称为frames, WebKit浏览器则用renderer或渲染对象来描述这些元素。本发明实施例为描述方便,统一将渲染树中的元素称为渲染对象。每个渲染对象用一个与相应节点的CSS盒模型相对应的矩形区域(包含诸如宽、高和位置之类的集合信息)来表示。
[0060]针对不同的浏览器,创建渲染树的操作是不同的,例如:在Firefox浏览器中,监听到DOM更新的监听器请求构建器(Frame Constructor)创建frame,该构建器计算样式并创建frame ;在WebKit浏览器中,计算样式并生成渲染对象的过程成为attachment,每个DOM节点有一个attach方法,attachment的过程是同步的,调用新节点的attach方法将节点插入到DOM树中。对于渲染树中的每个渲染对象的可视属性,可以通过计算每个元素的样式属性得到。
[0061]步骤303,从渲染树的根渲染对象开始,以递归的方式布局所述渲染树;
[0062]当渲染对象被创建并添加到渲染树中时,其并没有位置和大小,计算位置和大小的过程称为布局渲染树。布局是一个递归的过程,由根渲染对象开始,其对应(X) HTML文档元素,布局继续递归的通过一些或所有的frame层级,为每个需要几何信息的渲染对象进行计算。
[0063]具体的,对于所述渲染树中的每一个渲染对象,根据解析所述页面描述语言文档得到的CSS文本,计算其显示的位置和大小,并根据所述位置和大小布局所述渲染树。
[0064]步骤304,遍历布局后的渲染树并调用渲染对象的绘制方法,将所述渲染对象渲染到网页上。
[0065]在绘制渲染树阶段,遍历渲染树并调用渲染对象的paint (绘制)方法将渲染对象的内容显示在屏幕的网页上,而绘制则使用一些用户界面(UI, User Interface)基础组件或系统提供的应用程序编程接口(API, Applicat1n Programming Interface)完成。
[0066]也就是说,渲染树是由一些包含由颜色和大小等属性的矩形组成,它们将被按照正确的顺序显示到屏幕上;渲染树构建好后,将会执行布局过程,布局过程将确定每个节点在屏幕上的准确坐标;布局后执行绘制过程,即遍历渲染树,使用UI后端层绘制每个节点。
[0067]出于安全性方面的考虑,需要改造浏览器内核用以限制JavaScript DOM API (应用程序接口)对扩展标签显示的关系链核心数据的接近,以防止关系链数据流入到第三方开发者的应用内。具体的,在调用DOM API时,在相应函数处理中做判断,不符合预设规则的不予返回数据或返回既定数据。
[0068]需要说明的是,图2所示的关系链数据处理的方法通常由客户端侧来执行,而本发明实施例中的扩展标签由关系链数据平台提供,第三方服务器可以利用关系链数据平台提供的扩展标签实现对要展现的关系链数据的形式和样式的控制,但第三方服务器无法从关系链数据平台获得关系链数据、即关系链数据平台不开放数据接口给第三方服务器。其中,利用扩展标签实现对要展现的关系链数据的形式和样式的控制包括但不限于:通过CSS控制关系链数据展现的样式,通过JavaScript控制对关系链数据的具体处理。这些对关系链数据的扩展控制都可以通过第三方服务器对扩展标签的调用来实现。
[0069]优选的,编辑好的用于实现网页展示的页面描述语言文档保存在第三方服务器中。关系链数据平台可以从第三方服务器获取页面描述语言文档,并将获取的页面描述语言文档提供给客户端;关系链数据平台还能够通过客户端的获取关系链数据的接口,向客户端提供相应的关系链数据查询服务。那么,客户端执行的关系链数据处理如图4所示,客户端解析关系链数据平台提供的页面描述语言文档,如果解析到页面描述语言文档中的扩展标签,则根据扩展标签的属性查询客户端提供的获取关系链数据的接口,通过该接口从关系链数据平台获取相应的关系链数据,并根据解析页面描述语言文档所得内容、以及获取到的关系链数据渲染网页;如果没有解析到页面描述语言文档中的扩展标签,则按照对页面描述语言文档中正常标签的解析处理流程,进行网页渲染。网页渲染的处理包括:构建扩展的DOM树、构建渲染树、布局渲染树、绘制渲染树等等。具体操作如本发明的前述实施例所述,此处不再赘述。
[0070]为描述方便,下面以自定义的一种元素名为qq的(X)HTML标签为例进行说明。
[0071]凡是第三方开发者开发的WebApp,要向用户展示关系链数据,需要在开发的(X)HTML页面引入QQ标签。一个QQ标签的完整构成,需要有QQ标签及QQ标签的属性,例如:
[0072]〈qq qqType="ShowNickName">〈/qq>
[0073]其中,qqType=〃ShowNickName〃就是该QQ标签的一个属性。
[0074]不属于标准(X)HTML属性的QQ标签的属性都是以qq开头,如qqType、qqOpenID、qqShowNum等。当然,QQ标签也可以使用大多数标准的(X)HTML属性,形如:
[0075]〈qq qqType="ShowNickName"style="width:1OOpx;">〈/qq>
[0076]下面列出QQ标签的几种使用场景和使用标准:
[0077]一、显示用户数据
[0078]A、显示用户的头像:
[0079]指定qqType=〃ShowAvatar〃,示例代码如下:
[0080]〈qq qqType="ShowAvatar"X/qq>
[0081]B、显示用户的昵称:
[0082]指定qqType=〃ShowNickName〃,不例代码如下:
[0083]〈qq qqType="ShowNickName">〈/qq>
[0084]二、显示好友数据
[0085]A、显示最近联系人:
[0086]指定qqType=〃ShowRecentList〃,同时指定要显示的最大数量,如qqShowMaxNum=〃5〃,不例代码如下:
[0087]

【权利要求】
1.一种关系链数据处理的方法,其特征在于,该方法包括: 解析页面描述语言文档,当解析到所述页面描述语言文档中的扩展标签时,根据扩展标签的属性查询获取关系链数据的接口,并获取相应的关系链数据; 根据解析页面描述语言文档所得内容、以及获取到的关系链数据渲染网页。
2.根据权利要求1所述关系链数据处理的方法,其特征在于,所述根据解析页面描述语言文档所得内容、以及获取到的关系链数据渲染网页,包括: 根据获取到的关系链数据构建扩展的文档对象模型DOM树; 根据构建的扩展的DOM树、以及解析所述页面描述语言文档得到的层叠样式表CSS文本,构建渲染树; 从所述渲染树的根渲染对象开始,以递归的方式布局所述渲染树; 遍历布局后的渲染树并调用渲染对象的绘制方法,将所述渲染对象渲染到网页上。
3.根据权利要求2所述关系链数据处理的方法,其特征在于,所述以递归的方式布局渲染树包括: 对于所述渲染树中递归的每一个渲染对象,根据解析所述页面描述语言文档得到的CSS文本,计算其显示的位置和大小,并根据所述位置和大小布局所述渲染树。
4.根据权利要求1、2或 3所述关系链数据处理的方法,其特征在于,所述页面描述语言文档为超文本标记语言(X)HTML文档。
5.根据权利要求4所述关系链数据处理的方法,其特征在于,该方法进一步包括: 从所述(X)HTML文档中的扩展标签的开始标签中获取所述扩展标签的属性。
6.一种客户端,其特征在于,包括: 文档解析模块,用于解析页面描述语言文档; 数据获取模块,用于在所述文档解析模块解析到所述页面描述语言文档中的扩展标签时,所述数据获取模块根据扩展标签的属性查询获取关系链数据的接口,并获取相应的关系链数据; 网页渲染模块,用于根据解析页面描述语言文档所得内容、以及获取到的关系链数据渲染网页。
7.根据权利要求6所述客户端,其特征在于,所述网页渲染模块包括: 文档对象模型DOM树构建子模块,用于根据获取到的关系链数据构建扩展的DOM树;渲染树构建子模块,用于根据构建的扩展的DOM树、以及解析所述页面描述语言文档得到的层叠样式表CSS文本,构建渲染树; 布局子模块,用于从所述渲染树的根渲染对象开始,以递归的方式布局所述渲染树;渲染子模块,用于遍历布局后的渲染树并调用渲染对象的绘制方法,将所述渲染对象渲染到网页上。
8.根据权利要求7所述客户端,其特征在于,所述以递归的方式布局渲染树包括: 对于所述渲染树中递归的每一个渲染对象,根据解析所述页面描述语言文档得到的CSS文本,计算其显示的位置和大小,并根据所述位置和大小布局所述渲染树。
9.根据权利要求6、7或8所述客户端,其特征在于,所述页面描述语言文档为超文本标记语言(X) HTML文档。
10.根据权利要求9所述客户端,其特征在于,所述数据获取模块进一步用于,从所述(X)HTML文档中的扩展标签的开始标签中获取所述扩展标签的属性。
11.一种关系链数据处理系统,其特征在于,该系统包括:关系链数据平台、第三方服务器、以及权利要求5-10任一项所述的客户端,其中, 所述第三方服务器,用于存储和提供页面描述语言文档; 所述关系链数据平台,用于从所述第三方服务器获取所述页面描述语言文档,并将获取的所述页面描述语言文档提供给所述客户端; 所述关系链数据平台还用于,通过所述客户端的获取关系链数据的接口,向所述客户端提供相应的关系链数据查询服务。
【文档编号】G06F17/30GK104050190SQ201310082137
【公开日】2014年9月17日 申请日期:2013年3月14日 优先权日:2013年3月14日
【发明者】黄奎, 屈超, 魏亚民, 潘祥智, 张赟, 董航, 周志超, 李斌, 谢昕虬 申请人:腾讯科技(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1