CN103379127B - 服务器与客户端间的数据交互方法及装置 - Google Patents
服务器与客户端间的数据交互方法及装置 Download PDFInfo
- Publication number
- CN103379127B CN103379127B CN201210107292.XA CN201210107292A CN103379127B CN 103379127 B CN103379127 B CN 103379127B CN 201210107292 A CN201210107292 A CN 201210107292A CN 103379127 B CN103379127 B CN 103379127B
- Authority
- CN
- China
- Prior art keywords
- client
- server
- character string
- file
- webpage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本申请涉及一种服务器与客户端间的数据交互方法及装置,所述方法包括以下步骤:S11.在服务器中预设XML数据文件和JavaScript文件,并创建待请求的网页页面;S12.当在客户端发起页面访问请求时,服务器将预设的XML数据文件转换成JSON字符串,并将转换后的JSON字符串与预设的JavaScript文件的地址链接嵌入到网页页面中,以及将网页页面发送到客户端;以及S13.当JavaScript文件监听到在客户端输入的输入信息时,对JSON字符串进行处理,并将对应于所述输入信息的处理结果显示在网页页面中。本申请可将服务器的数据处理逻辑转移到客户端来进行,从而有效地减少了服务器与客户端实时交互服务器的次数,降低了网络处理延时,减少了频繁请求带来的安全隐患,保证了在数据处理逻辑上的一致性。
Description
技术领域
本申请涉及互联网领域,尤其涉及一种服务器与客户端间的数据交互方法及装置。
背景技术
一般来说,当用户通过客户端对网站进行访问时可能会在网页中进行大量的信息输入,这时,客户端仅用于接收用户的输入信息,而大量的实时数据处理过程则需要由服务器来完成。例如,假设想要注册成为某网站的新用户,那么就需要在该网站的客户端的注册新用户页面上填写相关的注册信息,若该页面上的注册信息输入项和选择框共有35个,那么客户端就会向服务器发送至少35次HTTP请求;此外,对输入信息的质量等级评定处理(如,密码强度、信息填写完整度等)也同样需要服务器来完成,因此,这种大量的、频繁的、复杂的数据实时处理请求可能会导致以下两个问题:一是浪费了网络的带宽,增加了服务器的承载压力;二是影响了页面的响应速度,即无法在页面上实现对信息处理后的结果的快速、实时、动态的显示。
此外,采用频繁的、多次的实时处理请求方式,虽然能够保证用户输入信息的质量等级评定处理在逻辑上的一致性,但对于服务器的硬件及网络带宽等的要求也是很高的,也就是说,若采用频繁的、多次的实时处理请求方式就需要增加服务器的硬件(如,增加服务器的数量)及网络带宽的投入;同时,通过实时请求处理后,再对返回的响应数据作相应的动态显示的效果在实时性上也不是很强。
发明内容
鉴于上述相关技术的缺陷,本申请的主要目的在于提供一种服务器与客户端间的数据交互方法及装置,以解决相关技术存在的上述问题。
为了实现上述目的,本申请的实施例提供一种服务器与客户端间的数据交互方法,所述方法包括以下步骤:S11.在所述服务器中预设XML数据文件和JavaScript文件,并创建待请求的网页页面;S12.当在所述客户端发起页面访问请求时,所述服务器将所述预设的XML数据文件转换成JSON字符串,并将转换后的所述JSON字符串与所述预设的JavaScript文件的地址链接嵌入到所述网页页面中,以及将所述网页页面发送到所述客户端;以及S13.当所述JavaScript文件监听到在所述客户端输入的输入信息时,对所述JSON字符串进行处理,并将对应于所述输入信息的处理结果显示在所述网页页面中。
本申请的实施例还提供一种服务器与客户端间的数据交互装置,所述装置包括:数据设置模块,用于在所述服务器中预设XML数据文件和JavaScript文件,并创建待请求的网页页面;数据转换模块,用于当在所述客户端发起页面访问请求时,所述服务器将所述预设的XML数据文件转换成JSON字符串,并将转换后的所述JSON字符串与所述预设的JavaScript文件的地址链接嵌入到所述网页页面中,以及将所述网页页面发送到所述客户端;以及数据处理模块,用于当所述JavaScript文件监听到在所述客户端输入的输入信息时,对所述JSON字符串进行处理,并将对应于所述输入信息的处理结果显示在所述网页页面中。
综上所述,本申请的服务器与客户端间的数据交互方法及装置可利用客户端的技术优势对服务器的数据处理逻辑进行转移,也就是使服务器的部分数据存储和运算的任务转移到客户端来进行,从而解决了网站在高并发下、当多信息输入页面时,服务器与客户端实时交互信息输入场景所产生的网络延时与服务器的压力问题;此外,将部分数据存储和运算的任务转移到浏览端来进行,不仅有效地减少了服务器与客户端实时交互服务器的次数,降低了网络处理延时,同时也减少了频繁请求服务器所带来的安全隐患。
附图说明
图1为本申请服务器与客户端间的数据交互方法的实施例流程图;
图2为本申请服务器与客户端间的数据交互装置的实施例结构框图。
具体实施方式
下面将详细描述本申请的具体实施例。应当注意,这里描述的实施例只用于举例说明,并不用于限制本申请。
目前,服务器与客户端间的数据传输格式有很多种(如,XML、JSON、字符串等),但为了便于在各种不同的信息输入场景下进行数据传输,通常会采用比较流行的公共标准格式——XML。然而,相关技术还不能很好地解决服务器与客户端间的无损转换和传输问题;此外,服务器与客户端间为了遵循公共的标准,全部采用统一的XML来传递数据,但由于XML的编码比较复杂且冗余较多,因此造成传输文件容量增大,从而导致占用大量网络带宽、解析速度较慢、动态信息显示延迟等问题。因此,本申请通过将XML数据文件转换成JSON字符串的方法来实现服务器与客户端间的数据交互。
图1为本申请服务器与客户端间的数据交互方法的实施例流程图。如图所示,所述方法包括以下步骤S11、S12和S13。
S11.在服务器中预设XML数据文件和JavaScript文件,并创建待请求的网页页面。
在一个实施例中,开发人员会根据不同的信息输入场景在服务器中预设XML数据文件。这里,之所以预设XML数据文件主要是因为XML数据文件是基本数据文件,其内容相对来说也比较固定。具体而言,以新浪网为例,在注册新浪会员时需要填写邮箱名称、登录密码、再次输入密码、昵称、验证码等信息,而在注册新浪微博用户时则需要填写邮箱、密码、昵称、性别、所在地、姓名、证件号等信息;由此可见,对于同一网站的不同的信息输入场景来说,需要填写的信息内容是不同的;但对于网站的服务器来说,则需要存储各个不同的信息输入场景下所需的全部信息,也就是说,邮箱名称、登录密码、再次输入密码、昵称、验证码、性别、所在地、姓名、证件号等信息都要预先存储在服务器中预设的XML数据文件里。
这里,XML(Extensible Markup Language)是一种可扩展标记语言,其与HTML一样,是SGML(Standard Generalized Markup Language,标准通用标记语言)的子集。XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据占用的空间更多,但XML极其简单易于掌握和使用。
通常,XML数据文件必须以一个文档声明语句开头,包括声明XML的版本号、所使用的字符集以及是否为独立文档等信息,例如:<?xmlversion=″1.0″encoding=″GB2312″standalone=″yes″?>;而一个XML元素由一个起始标记、一个结束标记,以及夹在这两个标记之间的数据内容所组成,其基本形式如下:<标记名>数据内容</标记名>。
接下来,将通过以下编码来更好地理解XML数据文件,其中所述编码表示中国部分省市的数据:
从上述编码可以看出,XML的版本号为“1.0”,所使用的字符集为“utf-8”(默认编码)。其中,国家“中国”,包括“黑龙江”和“广东”两个省,而“黑龙江”包括“哈尔滨”和“大庆”两个城市,“广东”则包括“广州”、“深圳”和“珠海”三个城市。
此外,在一个实施例中,XML数据文件中存储有预设的XML树状结构与JSON键值对结构一一对应的数值关系,这样,当如下文所述在客户端触发HTTP页面请求时,服务器根据上述数值关系来实现XML数据文件和JSON字符串之间的转换,即将XML数据文件转换成JSON字符串。因此,可以理解的是,开发人员在服务器中预设的XML数据文件相当于一张存储有XML树状结构与JSON键值对结构一一对应的数值关系的表,用于使预设的XML数据文件与JSON字符串相关联。
这里,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-2623rd Edition-December 1999)的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言,易于人阅读和编写,同时也易于机器解析和生成。
具体而言,JSON建构于两种结构:一是“名称/值”对的集合,在不同的语言中,它被理解为对象(object)、记录(record)、结构(struct)、字典(dictionary)、哈希表(hash table)、键列表(keyed list)或者关联数组(associative array),其形式例如可以是:{″firstName″:″Brett″,″lastName″:″Marry″,″email″:″[email protected]″};二是值的有序列表(An ordered list ofvalues),在大部分语言中,它被理解为数组(array),其形式例如可以是:
下面,将上文中用XML表示的中国部分省市的数据转换成用JSON字符串的形式来表示,以便与XML进行比较,具体如下:
从上述两段编码可以清楚地看出,与上述XML的编码相比,JSON在编码上更简单、更简短、也更清晰,并且在解析速度上也优于XML,因此,这是本申请将XML数据文件转换成JSON字符串的一个原因。
此外,在一个实施例中,JSON字符串中存储有输入信息与处理结果相关联的映射关系,需要注意的是,所述映射关系是当XML数据文件转换成JSON字符串时,从XML数据文件中继承的映射关系;这样,当如下文所述在客户端收到输入的输入信息时,JavaScript文件根据上述映射关系来实现对JSON字符串的处理,即将输入信息与处理结果相关联。因此,可以理解的是,转换后的JSON字符串相当于一张存储有输入信息与处理结果一一对应的映射关系的表,用于使输入信息与处理结果相关联。
接续,在一个实施例中,开发人员还会在服务器中预设JavaScript文件。所述JavaScript是一种基于对象和事件驱动的客户端脚本语言(即一种轻量级的编程语言),也是因特网上最流行的脚本语言,其可在所有主要的浏览器(例如Internet Explorer、Mozilla、Firefox、Netscape、Opera等)中运行,且通常被直接嵌入HTML页面或向HTML页面添加交互行为。具体而言,在一个实施例中,JavaScript文件是一个单独的文件,主要起到以下两个作用:一是监听用户的操作;二是存储程序处理逻辑,并根据所述程序处理逻辑来访问上述JSON字符串对应的JSON对象。在下文中会对上述两个作用进行具体说明,故在此不再进行赘述。
此外,由于JSON是JavaScript文件的一个子集,其可将JavaScript文件中表示的一组数据转换成字符串,并在函数之间轻松地进行字符串的传递,或者在异步应用程序中将字符串从客户端传递到服务器,因此,这也是本申请将XML数据文件转换成JSON字符串的另一个原因。
接续,在一个实施例中,开发人员还需要预先在服务器中创建待用户访问的网页页面,为了便于理解,在下文中将其称为HTML页面,这样,当用户在客户端的地址栏中输入想要访问的网址时才会链接到所述HTML页面。例如,以新浪网为例,开发人员会预先在新浪网的服务器中创建好新浪网首页;当用户在客户端的地址栏中输入新浪网的网址http://www.sina.com时,就可以通过地址链接访问到新浪网首页了。
S12.当在客户端发起页面访问请求时,服务器将预设的XML数据文件转换成JSON字符串,并将转换后的JSON字符串与预设的JavaScript文件的地址链接嵌入到网页页面中,以及将网页页面发送到客户端。
在一个实施例中,当服务器第一次接收到用户通过在客户端触发的HTTP页面请求后将预设的XML数据文件转换成JSON字符串。这里,HTTP页面请求是指在客户端的地址栏中输入网址后对HTML页面的请求;以新浪网为例,当在客户端的地址栏中输入http://www.sina.com并按下回车键后,HTML页面会跳转到新浪网首页,这个请求就是所谓的HTTP页面请求。
此外,需要注意的是,HTTP页面请求仅在用户第一次访问HTML页面时被触发,也就是说,用户只需要触发一次HTTP页面请求,或者也可以理解为HTTP页面请求仅仅被发送到服务器一次。
参考上述内容,在一个实施例中,假设预设的XML数据文件为<XML><name>1.5</name><sex>1.2</sex></XML>,那么,当第一次在客户端触发HTTP页面请求时,服务器根据预设在其中的XML数据文件中存储的XML树状结构与JSON键值对结构一一对应的数值关系,将XML数据文件转换成JSON字符串{name:1.5,sex:1.2}。需要注意的是,将XML数据文件转换成JSON字符串的方式有很多,例如,通过Java、C++等程序语言都可以实现上述转换。
此外,在一个实施例中,JSON字符串用于根据行内专家对各个行业中不同信息所占权重的评定来对输入信息的质量等级进行评定。需要注意的是,JSON字符串是由服务器的XML数据文件动态生成的,因此,当在服务器对XML数据文件进行修改后,在HTML页面初始化时动态生成的JSON字符串也会同步进行修改,这样,能够保证数据的一致性。另外,在上述实例中,转换后的JSON字符串{name:1.5,sex:1.2}还表示当输入用户名(name)时可以得到1.5分,当输入性别(sex)时可以得到1.2分。
具体而言,在一个实施例中,JavaScript文件根据JSON字符串中存储的输入信息与处理结果的映射关系,通过对输入信息的得分进行统计,并与预设的质量等级标准进行比较,可判断出输入信息的质量等级,并在客户端的HTML页面中用“☆”表示,通常,用五颗星(☆☆☆☆☆)来表示最高的质量等级。参考上述内容,在一个实施例中,例如,以某商务网站的公司库信息发布的HTML页面为例;在所述HTML页面中,公司信息完整度用“☆”表示,假设每颗星代表的分数为2分,那么五颗星就表示满分10分(即,信息完整度为100%)。当用户输入公司名称、企业类型和经营模式这三项信息时,可相应得到0.8分、0.6分和0.7分,那么用户输入信息的累计得分即为2.1分,将其与预设的等级质量标准相比会得到一颗星的评定结果,这时,在HTML页面中就会用一颗星(☆)来表示信息填写的完整度(即,输入信息的质量等级);若用户还输入了主营产品、主营行业、经营地址、邮编、公司网址和公司简介等信息,可相应得到1.0分、1.0分、1.5分、0.2分、0.5分和2.0分,那么此时用户输入信息的累计得分即为8.3分,这样在HTML页面中就会用四颗星(☆☆☆☆)来表示信息填写的完整度。
接续,在一个实施例中,将转换后的JSON字符串与预设的JavaScript文件的地址链接嵌入到HTML页面的底部,这样,通过所述地址链接,客户端可以很容易地将预设在服务器中的JavaScript文件加载到客户端,从而使JavaScript文件起到如上文中所述的作用。具体而言,JSON字符串是以<script>标签的方式嵌入到HTML的代码中的,这样HTML中加载的JavaScript文件就可以访问到所述此JSON字符串。
接续,在一个实施例中,服务器将对应于上述HTTP页面请求的HTML页面发送到客户端,其中,所述HTTP页面包括转换后的JSON字符串和JavaScript文件的地址链接。
参考上述内容,在一个实施例中,首先,假设开发人员在服务器中预设的XML数据文件为<XML><name>1.5</name><ip>1.1.1.1</ip></XML>;其次,当用户通过在客户端的地址栏中输入想要访问的HTML页面的网址来触发HTTP页面请求时,服务器根据预设在其中的XML树状结构与JSON键值对结构一一对应的数值关系,将上述预设的XML数据文件转换成JSON字符串{name:1.5,ip:1.3},并与JavaScript文件的地址连接一起嵌入到HTML页面的底部,最后,将HTML页面发送到客户端。
接续,在步骤S12之后、步骤S13之前还包括步骤S121。
S121.根据网页页面中嵌入的所述地址链接,在客户端中加载预设的JavaScript文件。
在一个实施例中,客户端接收并显示服务器发送的HTML页面,同时根据嵌入到HTML页面中的地址链接,将预设的JavaScript文件加载到客户端。这样,当用户在客户端的HTML页面中实时输入信息时,加载到客户端中的JavaScript文件便能够及时监听用户的操作,即HTML页面上的变化,并通过JavaScript语言来对HTML页面中嵌入的JSON字符串进行访问,并将处理结果动态显示给用户。
需要注意的是,在服务器中,使用JAVA语言来实现对XML数据文件的转换;而在客户端中,使用JavaScript语言来实现对JSON字符串的访问,也就是说,在服务器和客户端中使用的编程语言是不同的。
S13.当JavaScript文件监听到在客户端输入的输入信息时,对JSON字符串进行处理,并将对应于输入信息的处理结果显示在网页页面中。
参考上述内容,在一个实施例中,只有当用户第一次触发HTTP页面请求后,才能在客户端中打开HTML页面,进而才能让用户在所述HTML页面中输入信息。接续,当用户在客户端中实时输入信息时,可直接通过加载到客户端的JavaScript文件来访问想要的JSON字符串,而不需要频繁的对服务器发起HTTP页面请求;也就是说,当用户在HTML页面中实时输入信息时,不需要再将实时HTTP页面请求发送至服务器,而是可以直接通过调用加载到客户端中的JavaScript文件来对用户输入的信息进行实时处理并动态显示给用户,因此,能够有效地降低由于频繁的实时HTTP页面请求给服务器带来的承载压力。
下文将以某商务网站的公司信息注册页面为例,通过一个示例来对上述服务器与客户端间的数据交互方法进行具体描述。
首先,开发人员在服务器中预设XML数据文件,用aa.xml来表示;所述预设的XML数据文件的XML代码具体如下:
从上述代码可以看出,XML数据文件包括生产加工(manufacturer)、经销批发(wholesale)两部分内容,其中生产加工和经销批发分别包括:公司名称(companyName)、主营产品(productCategory)、公司简介(introduction)、员工人数(staffNum)和经营地址(address)以及其根据存储的映射关系分别对应的值(value)。以上内容就是开发人员根据公司信息注册这一场景在服务器预设的XML数据文件。
接续,开发人员在服务器中预设JavaScript文件,用bb.js表示,所述预设的JavaScript文件的JavaScript代码具体如下:
从上述代码可以看出,JavaScript文件包含了对JSON字符串的程序处理逻辑,如eval(′(′+jsonStr+′),其中“jsonStr”表示JSON字符串;通过上述程序处理逻辑,JavaScript文件便可以很容易地访问到此JSON字符串对应的JSON对象。
接续,开发人员还会在服务器预先创建待用户访问的HTML页面,如“http://www.test.com/company/cc.html”,供用户进行访问。
其次,当用户第一次在客户端的地址栏中输入想要访问的网址如“http://www.test.com/company/cc.html”时,会将服务器中预设的XML数据文件转换成JSON字符串,并将转换后的JSON字符串与JavaScript文件的地址连接一起嵌入到HTML页面的底部,此时的HTML页面用cc.html来表示,具体代码如下:
从上述代码可以看出,HTML页面中包含了转换后的JSON字符jsonStr=′{″manufacturer″:{″companyName″:10,″productCategory″:20,″introduction″:30,″staffNum″:20,″address″:20},″wholesale″:{″companyName″:15,″productCategory″:20,″introduction″:25,″staffNum″:30,″address″:10}}′以及JavaScript文件的地址连接“bb.js”,通过该地址连接便可以将上述预设的JavaScript文件加载到客户端,这样,当用户再次在客户端输入信息时,JavaScript文件便更够监听到用户的操作,根据用户的操作来处理用户的请求,并将请求的处理结果动态展示在HTML页面中。
具体而言,假设用户在“经营模式”中选择“生产加工”,并在“公司名称”中输入了公司的名称,那么此时并不会将用户的请求发送到服务器,而是由加载到客户端的JavaScript文件根据用户的请求来调用相应的JSON字符串,并将该字符串所对应的值10与预设的分数等级进行比较,若其小于30则当前星级为0;若用户还输入了员工人数,那么其所对应的值为30,此时的累计分数(score)应为40(即,10+30),与预设分数相比可知30<=累计分数<45,因此当前的星级为1,即用一颗红色的星(☆)来表示;若用户将其它信息如主营产品、公司简介、经营地址全部填写完整,此时的累计分数应为100(即,10+20+30+20+20),与预设分数相比可知累计分数>=90,因此当前的星级为5,即用五颗红色的星(☆☆☆☆☆)来表示。
需要注意的是,当用户在客户端填写好注册信息并点击“提交”按钮时,会将用户填写的注册信息发送到服务器,服务器会根据用户的填写情况重新计算累计分数,并将计算结果返回给客户端;也就是说,整个过程仅需要在开始和结束时向服务器端发送两次请求,因此,避免了频繁输入信息导致的频繁向服务器发送HTTP请求的问题,从而减少了服务器与客户端间实时交互的次数,降低了网络处理延时,也减少了频繁请求服务器处理所带来的安全隐患。
由上述技术方案可知,本实施例的交互方法可利用客户端的技术优势对服务器的数据处理逻辑进行转移,也就是使服务器的部分数据存储和运算的任务转移到客户端来进行,从而解决了网站在高并发下、当多信息输入页面时,服务器与客户端实时交互信息输入场景所产生的网络延时与服务器的压力问题;另外,将部分数据存储和运算的任务转移到浏览端来进行,不仅有效地减少了服务器与客户端间实时交互的次数,降低了网络处理延时,同时也减少了频繁请求服务器处理所带来的安全隐患;此外,由于JSON字符串是由XML数据文件动态生成的,且其可以随着XML数据文件的改变而同步改变,因此,保证了在数据处理逻辑上的一致性;此外,还可以对输入信息的质量等级进行评定。
图2为本申请服务器与客户端间的数据交互装置的实施例结构框图。如图2所示,本实施例的一种服务器与客户端间的数据交互装置,包括数据设置模块11,用于在服务器中预设XML数据文件和JavaScript文件,并创建待请求的网页页面;数据转换模块12,用于当在客户端发起页面访问请求时,服务器将预设的XML数据文件转换成JSON字符串,并将转换后的JSON字符串与预设的JavaScript文件的地址链接嵌入到网页页面中,以及将网页页面发送到客户端;以及数据处理模块14,用于当JavaScript文件监听到在客户端输入的输入信息时,对JSON字符串进行处理,并将对应于输入信息的处理结果显示在网页页面中。
在一个实施例中,开发人员根据不同的信息输入场景在服务器的数据设置模块11中预设XML数据文件。这里,之所以预设XML数据文件主要是因为XML数据文件是基本数据文件,其内容相对来说也比较固定。具体而言,以新浪网为例,在注册新浪会员时需要填写邮箱名称、登录密码、再次输入密码、昵称、验证码等信息,而在注册新浪微博用户时则需要填写邮箱、密码、昵称、性别、所在地、姓名、证件号等信息;由此可见,对于同一网站的不同的信息输入场景来说,需要填写的信息内容是不同的;但对于网站的服务器来说,则需要存储各个不同的信息输入场景下所需的全部信息,也就是说,邮箱名称、登录密码、再次输入密码、昵称、验证码、性别、所在地、姓名、证件号等信息都要预先存储在数据设置模块11中的JavaScript文件里。
在一个实施例中,预设的XML数据文件用于存储XML树状结构与JSON键值对结构一一对应的数值关系,使预设的XML数据文件与JSON字符串相关联;则数据转换模块12根据数值关系,在服务器实现对预设的XML数据文件的转换。可以理解的是,开发人员在服务器中预设的XML数据文件相当于一张存储有XML树状结构与JSON键值对结构一一对应的数值关系的表,用于使预设的XML数据文件与JSON字符串相关联。
在一个实施例中,JSON字符串用于存储的输入信息与处理结果相关联的映射关系,使输入信息与处理结果相关联;则数据处理模块14根据映射关系在客户端实现对JSON字符串的处理。可以理解的是,转换后的JSON字符串相当于一张存储有输入信息与处理结果一一对应的映射关系的表,用于使输入信息与处理结果相关联。
接续,在一个实施例中,开发人员还会在数据设置模块11中预设JavaScript文件。这里,JavaScript文件是一个单独的文件,主要起到以下两个作用:一是监听用户的操作;二是存储程序处理逻辑,并根据所述程序处理逻辑来访问上述JSON字符串对应的JSON对象。
接续,在一个实施例中,开发人员还需要预先在数据设置模块11中创建待用户访问的HTML页面。当用户在客户端的地址栏中输入想要访问的网址时才会链接到所述HTML页面。例如,以新浪网为例,开发人员会预先在新浪网的服务器中创建好新浪网首页;当用户在客户端的地址栏中输入新浪网的网址http://www.sina.com时,就可以通过地址链接访问到新浪网首页了。
接续,在一个实施例中,当服务器第一次接收到用户通过在客户端触发的HTTP页面请求后,数据转换模块12将预设的XML数据文件转换成JSON字符串。这里,HTTP页面请求是指在客户端的地址栏中输入网址后对HTML页面的请求;以新浪网为例,当在客户端的地址栏中输入http://www.sina.com并按下回车键后,HTML页面会跳转到新浪网首页,这个请求就是所谓的HTTP页面请求。
此外,需要注意的是,HTTP页面请求仅在用户第一次访问HTML页面时被触发,也就是说,用户只需要触发一次HTTP页面请求,或者也可以理解为HTTP页面请求仅仅被发送到服务器一次。
参考上述内容,在一个实施例中,假设数据设置模块11中预设的XML数据文件为<XML><name>1.5</name><sex>1.2</sex></XML>,那么,当第一次在客户端触发HTTP页面请求时,数据转换模块12根据预设在数据设置模块11中预设的XML数据文件中存储的XML树状结构与JSON键值对结构一一对应的数值关系,将XML数据文件转换成JSON字符串{name:1.5,sex:1.2}。
此外,在一个实施例中,JSON字符串用于根据行内专家对各个行业中不同信息所占权重的评定来对输入信息的质量等级进行评定。由于JSON字符串是由服务器的XML数据文件动态生成的,因此,当在服务器对XML数据文件进行修改后,在HTML页面初始化时动态生成的JSON字符串也会同步进行修改,这样,能够保证数据的一致性。另外,在上述实例中,转换后的JSON字符串{name:1.5,sex:1.2}还表示当输入用户名(name)时可以得到1.5分,当输入性别(sex)时可以得到1.2分。
具体而言,在一个实施例中,JavaScript文件根据JSON字符串中存储的输入信息与处理结果的映射关系,通过对输入信息的得分进行统计,并与预设的质量等级标准进行比较,可判断出输入信息的质量等级,并在客户端的HTML页面中用“☆”表示,通常,用五颗星(☆☆☆☆☆)来表示最高的质量等级。参考上述内容,在一个实施例中,例如,以某商务网站的公司库信息发布的HTML页面为例;在所述HTML页面中,公司信息完整度用“☆”表示,假设每颗星代表的分数为2分,那么五颗星就表示满分10分(即,信息完整度为100%)。当用户输入公司名称、企业类型和经营模式这三项信息时,可相应得到0.8分、0.6分和0.7分,那么用户输入信息的累计得分即为2.1分,将其与预设的等级质量标准相比会得到一颗星的评定结果,这时,在HTML页面中就会用一颗星(☆)来表示信息填写的完整度(即,输入信息的质量等级);若用户还输入了主营产品、主营行业、经营地址、邮编、公司网址和公司简介等信息,可相应得到1.0分、1.0分、1.5分、0.2分、0.5分和2.0分,那么此时用户输入信息的累计得分即为8.3分,这样在HTML页面中就会用四颗星(☆☆☆☆)来表示信息填写的完整度。
接续,在一个实施例中,数据转换模块12将转换后的JSON字符串与预设的JavaScript文件的地址链接嵌入到HTML页面的底部,这样,通过地址链接,客户端可以很容易地将预设在数据设置模块11中的JavaScript文件加载到客户端,以使JavaScript文件起到如上文中所述的作用。
参考上述内容,在一个实施例中,首先,假设开发人员在服务器的数据转换模块11中预设的XML数据文件为<XML><name>1.5</name><ip>1.1.1.1</ip></XML>;其次,当用户通过在客户端的地址栏中输入想要访问的HTML页面的网址来触发HTTP页面请求时,数据转换模块12根据预设在其中的XML树状结构与JSON键值对结构一一对应的数值关系,将上述预设的XML数据文件转换成JSON字符串{name:1.5,ip:1.3},并与JavaScript文件的地址连接一起嵌入到HTML页面的底部,最后,通过数据发送模块13将HTML页面发送到客户端。
接续,在一个实施例中,所述交互装置还包括数据加载模块13,用于根据网页页面中嵌入的地址链接,在客户端中加载预设的JavaScript文件。
在一个实施例中,客户端接收并显示服务器发送的HTML页面,同时根据嵌入到HTML页面中的地址链接,通过数据加载模块13将预设的JavaScript文件加载到客户端。这样,当用户在客户端的HTML页面中实时输入信息时,加载到客户端中的JavaScript文件便能够及时监听用户的操作,即HTML页面上的变化,并通过JavaScript语言来对HTML页面中嵌入的JSON字符串进行访问,并将处理结果动态显示给用户。
需要注意的是,在服务器中,使用JAVA语言来实现对XML数据文件的转换;而在客户端中,使用JavaScript语言来实现对JSON字符串的访问,也就是说,在服务器和客户端中使用的编程语言是不同的。
由上述技术方案可知,本实施例的交互装置相对于相关技术的交互装置具有结构简单、配置灵活等特点,能够动态显示数据的处理结果。
综上所述,本实施例的服务器与客户端间的数据交互方法及装置可利用客户端的技术优势对服务器的数据处理逻辑进行转移,使服务器的部分数据存储和运算的任务转移到客户端来进行,从而解决了网站在高并发下、当多信息输入页面时,服务器与客户端实时交互信息输入场景所产生的网络延时以及频繁的HTTP请求给服务器带来的承载压力和安全隐患等问题;同时,由于HTTP请求从服务器转移到了客户端,因此,也减少了硬件投入(如,增加服务器的数量)以及节省了网络带宽;此外,由于JSON字符串是由XML数据文件动态生成的,且其可以随着XML数据文件的改变而同步改变,因此,保证了在数据处理逻辑上的一致性,此外,还可以对输入信息的质量等级进行评定。
虽然已参照典型实施例描述了本申请,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本申请能够以多种形式具体实施而不脱离发明的精神或实质,所以应当理解,上述实施例不限于任何前述的细节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。
Claims (6)
1.一种服务器与客户端间的数据交互方法,所述方法包括以下步骤:
S11.在所述服务器中预设XML数据文件和JavaScript文件,并创建待请求的网页页面;
S12.当在所述客户端发起页面访问请求时,所述服务器将所述预设的XML数据文件转换成JSON字符串,并将转换后的所述JSON字符串与所述预设的JavaScript文件的地址链接嵌入到所述网页页面中,以及将所述网页页面发送到所述客户端;
S121.根据所述网页页面中嵌入的所述地址链接,在所述客户端中加载所述预设的JavaScript文件;以及
S13.当所述JavaScript文件监听到在所述客户端输入的输入信息时,对所述JSON字符串进行处理,并将对应于所述输入信息的处理结果显示在所述网页页面中。
2.根据权利要求1所述的数据交互方法,其中,所述预设的XML数据文件用于存储XML树状结构与JSON键值对结构一一对应的数值关系,使所述预设的XML数据文件与所述JSON字符串相关联;则所述步骤S12根据所述数值关系,在所述服务器实现对所述预设的XML数据文件的转换。
3.根据权利要求1所述的数据交互方法,其中,所述JSON字符串用于存储的所述输入信息与所述处理结果相关联的映射关系,使所述输入信息与所述处理结果相关联;则所述步骤S13根据所述映射关系在所述客户端实现对所述JSON字符串的处理。
4.一种服务器与客户端间的数据交互装置,所述装置包括:
数据设置模块,用于在所述服务器中预设XML数据文件和JavaScript文件,并创建待请求的网页页面;
数据转换模块,用于当在所述客户端发起页面访问请求时,所述服务器将所述预设的XML数据文件转换成JSON字符串,并将转换后的所述JSON字符串与所述预设的JavaScript文件的地址链接嵌入到所述网页页面中,以及将所述网页页面发送到所述客户端;
数据加载模块,用于根据所述网页页面中嵌入的所述地址链接,在所述客户端中加载所述预设的JavaScript文件;以及
数据处理模块,用于当所述JavaScript文件监听到在所述客户端输入的输入信息时,对所述JSON字符串进行处理,并将对应于所述输入信息的处理结果显示在所述网页页面中。
5.根据权利要求4所述的数据交互装置,其中,所述预设的XML数据文件用于存储XML树状结构与JSON键值对结构一一对应的数值关系,使所述预设的XML数据文件与所述JSON字符串相关联;则所述数据转换模块根据所述数值关系,在所述服务器实现对所述预设的XML数据文件的转换。
6.根据权利要求4所述的数据交互装置,其中,所述JSON字符串用于存储的所述输入信息与所述处理结果相关联的映射关系,使所述输入信息与所述处理结果相关联;则所述数据处理模块根据所述映射关系在所述客户端实现对所述JSON字符串的处理。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210107292.XA CN103379127B (zh) | 2012-04-12 | 2012-04-12 | 服务器与客户端间的数据交互方法及装置 |
HK13114277.0A HK1186881A1 (zh) | 2012-04-12 | 2013-12-25 | 服務器與客戶端間的數據交互方法及裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210107292.XA CN103379127B (zh) | 2012-04-12 | 2012-04-12 | 服务器与客户端间的数据交互方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103379127A CN103379127A (zh) | 2013-10-30 |
CN103379127B true CN103379127B (zh) | 2016-08-17 |
Family
ID=49463686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210107292.XA Active CN103379127B (zh) | 2012-04-12 | 2012-04-12 | 服务器与客户端间的数据交互方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103379127B (zh) |
HK (1) | HK1186881A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106161521B (zh) * | 2015-04-01 | 2019-09-10 | 阿里巴巴集团控股有限公司 | 超文本传输协议请求的处理方法及装置 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593199B (zh) * | 2013-11-29 | 2016-08-24 | 迈普通信技术股份有限公司 | 数据转换的方法和*** |
US9853956B2 (en) * | 2014-02-11 | 2017-12-26 | Texas Instruments Incorporated | JSON encryption and hashing with indication added to key-value |
CN104899212B (zh) * | 2014-03-05 | 2019-11-12 | 腾讯科技(深圳)有限公司 | 网页展示方法、服务器及*** |
CN104932931B (zh) * | 2014-03-17 | 2019-05-03 | 腾讯科技(深圳)有限公司 | 处理信息的方法及装置 |
CN103984246B (zh) * | 2014-04-14 | 2016-09-14 | 美的集团股份有限公司 | 可执行脚本的家电设备及其控制方法 |
CN103957211B (zh) * | 2014-04-30 | 2017-06-30 | 北界创想(北京)软件有限公司 | 客户端与前端页面之间的数据通信方法及装置 |
CN104410667B (zh) * | 2014-10-31 | 2017-12-12 | 北京思特奇信息技术股份有限公司 | 一种xml报文到json报文的转换方法及*** |
CN104410645B (zh) * | 2014-12-15 | 2017-10-27 | 北京国双科技有限公司 | 数据交互方法、装置及*** |
CN104834595B (zh) * | 2015-02-15 | 2017-09-12 | 网易(杭州)网络有限公司 | 一种可视化自动测试方法及*** |
CN104933589B (zh) * | 2015-07-07 | 2018-07-03 | 北京齐尔布莱特科技有限公司 | 一种订单生成***和方法 |
CN106535152B (zh) * | 2015-09-14 | 2020-03-17 | 腾讯科技(深圳)有限公司 | 一种基于终端的应用数据处理方法、装置及*** |
CN105335523A (zh) * | 2015-12-01 | 2016-02-17 | 深圳市迪菲特科技股份有限公司 | 一种数据交互方法及Web服务器 |
CN105404514B (zh) * | 2015-12-01 | 2019-02-15 | 广州华多网络科技有限公司 | JavaScript渲染方法和装置 |
CN105824752B (zh) * | 2016-03-16 | 2018-09-14 | 北京齐尔布莱特科技有限公司 | 一种接口自动化测试方法、装置和计算设备 |
CN107689968B (zh) * | 2016-08-03 | 2021-06-04 | 阿里巴巴集团控股有限公司 | 任务的处理***、方法及装置 |
CN106251180A (zh) * | 2016-08-12 | 2016-12-21 | 福建中金在线信息科技有限公司 | 一种高并发量广告投放网站的方法 |
CN108132954B (zh) * | 2016-11-30 | 2021-12-28 | 深圳联友科技有限公司 | 一种html页面的本地化加载方法及装置 |
CN108882006A (zh) * | 2018-07-03 | 2018-11-23 | 武汉斗鱼网络科技有限公司 | 一种消息格式的转换方法、装置、存储介质及安卓终端 |
CN109522073A (zh) * | 2018-11-06 | 2019-03-26 | 网宿科技股份有限公司 | 基于json的多层级页面存储方法、装置及电子设备 |
CN111626018B (zh) * | 2019-02-28 | 2023-07-28 | 北京数聚鑫云信息技术有限公司 | 一种构建json格式化数据的方法及装置 |
CN112131257B (zh) * | 2020-09-14 | 2023-10-27 | 泰康保险集团股份有限公司 | 数据查询方法和装置 |
CN112835793B (zh) * | 2021-01-29 | 2024-06-28 | 杭州网易智企科技有限公司 | 一种网页调试方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101572696A (zh) * | 2008-04-29 | 2009-11-04 | 华为技术有限公司 | 一种网页表单数据验证的方法和装置 |
CN101847142A (zh) * | 2009-03-25 | 2010-09-29 | 上海斯年信息技术有限公司 | 基于数据表模型封装的网页开发方法 |
CN102385598A (zh) * | 2010-09-03 | 2012-03-21 | 上海实方软件有限公司 | 一种关系数据与xml数据无缝查询与更新接口 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5268274B2 (ja) * | 2007-03-30 | 2013-08-21 | キヤノン株式会社 | 検索装置、方法、プログラム |
-
2012
- 2012-04-12 CN CN201210107292.XA patent/CN103379127B/zh active Active
-
2013
- 2013-12-25 HK HK13114277.0A patent/HK1186881A1/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101572696A (zh) * | 2008-04-29 | 2009-11-04 | 华为技术有限公司 | 一种网页表单数据验证的方法和装置 |
CN101847142A (zh) * | 2009-03-25 | 2010-09-29 | 上海斯年信息技术有限公司 | 基于数据表模型封装的网页开发方法 |
CN102385598A (zh) * | 2010-09-03 | 2012-03-21 | 上海实方软件有限公司 | 一种关系数据与xml数据无缝查询与更新接口 |
Non-Patent Citations (2)
Title |
---|
Improving Data Transmission in Web Applications via the Translation between XML and JSON;Guanhua Wang;《2011 Third International Conference on Communications and Mobile Computing》;20111231;全文 * |
利用JSON进行网站客户端与服务器数据交互;王魁生 等;《软件导刊》;20100331;第9卷(第3期);全文 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106161521B (zh) * | 2015-04-01 | 2019-09-10 | 阿里巴巴集团控股有限公司 | 超文本传输协议请求的处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
HK1186881A1 (zh) | 2014-03-21 |
CN103379127A (zh) | 2013-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103379127B (zh) | 服务器与客户端间的数据交互方法及装置 | |
CN106575298B (zh) | 包含动态内容和陈旧内容的网站的快速呈现 | |
US8515969B2 (en) | Splitting a character string into keyword strings | |
US8661335B2 (en) | Methods and systems for identifying content elements | |
US8706728B2 (en) | Calculating reliability scores from word splitting | |
US20100180192A1 (en) | Dynamically configuring a presentation layer associated with a webpage delivered to a client device | |
US8631394B2 (en) | Static resource processing | |
JP2018508058A5 (zh) | ||
US9836438B2 (en) | Methods and systems of outputting content of interest | |
CN104063401B (zh) | 一种网页样式地址合并的方法和装置 | |
CN101122921A (zh) | 基于ajax与html标记形成树形显示结构的方法 | |
US20110208800A1 (en) | Domain appraisal algorithm | |
CN106126693A (zh) | 一种网页的相关数据的发送方法及装置 | |
US20240095767A1 (en) | System and method for domain name valuation | |
CN105283843A (zh) | 可嵌入的媒体内容搜索微件 | |
CN104980464B (zh) | 一种网络请求处理方法、网络服务器和网络*** | |
US11281729B2 (en) | Method for automatically generating a wrapper for extracting web data, and a computer system | |
US20110208731A1 (en) | Automated semantic domain spinning tools | |
CN109639559A (zh) | 一种微信h5传播监测分析方法及相关设备 | |
EP2431891A1 (en) | Methods and systems of outputting content of interest | |
US20110208767A1 (en) | Semantic domain name spinning | |
US20110208720A1 (en) | Appraising domain names using comparative data | |
US20150156168A1 (en) | Suggesting name identifiers using interactive keywords | |
CN104205093B (zh) | 经翻译的新闻 | |
US8301726B2 (en) | Method and system for bit streaming for data centric applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1186881 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1186881 Country of ref document: HK |