CN105447138A - 用于服务器的方法及系统 - Google Patents
用于服务器的方法及系统 Download PDFInfo
- Publication number
- CN105447138A CN105447138A CN201510812359.3A CN201510812359A CN105447138A CN 105447138 A CN105447138 A CN 105447138A CN 201510812359 A CN201510812359 A CN 201510812359A CN 105447138 A CN105447138 A CN 105447138A
- Authority
- CN
- China
- Prior art keywords
- journey
- display data
- association
- subscriber equipment
- data
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种用于服务器的方法,包括:从用户设备接收请求多个展示数据的数据请求;创建多个协程,每个协程分别用于获取多个展示数据中的一个;并发执行每个协程,等待和接收每个协程返回的展示数据;以及将展示数据合并,并向用户设备发送,以供用户设备使用。通过本发明提出的方法,用户设备能够从服务器一次接收所需要的数据,因而减少了用户设备上页面的异步加载次数,避免了页面抖动。由于只向用户设备发送需要更新的那部分展示数据,能够解决切换商品型号时直接刷新整个页面的问题,避免了流量浪费。
Description
技术领域
本发明涉及计算机领域,具体涉及用于服务器的方法及系统。
背景技术
用户设备在浏览电子商务网站商品详情页的过程中,如要切换颜色尺码,需要刷新页面以获取相应的数据,例如,价格、库存、促销信息、服务支持等。
现有技术一般通过Ajax异步加载,需要和服务器进行许多次交互才能获取到要展示的数据,整体体验不好。并且,这种多次Ajax调用展示的方式有个比较大的缺点就是异步加载造成页面重绘布局多次。即打开页面时页面多个部分区域内的内容加载造成页面结构/内容变化多次带来的页面抖动,造成用户体验极差。
现有技术采用的另一种方式是,在切换商品型号(例如,颜色尺码)时整个页面进行刷新。但是实际上,只要将所需要一部分数据,例如,图片列表、标题、价格等相关数据刷新即可。这种整体刷新将造成流量浪费,用户体验差。
发明内容
为解决上述问题。本发明提出了一种用于服务器的方法,包括:从用户设备接收请求多个展示数据的数据请求;创建多个协程,每个协程分别用于获取多个展示数据中的一个;并发执行每个协程,等待和接收每个协程返回的展示数据;以及将展示数据合并,并向用户设备发送,以供用户设备使用。
在一个实施例中,并发执行每个协程包括利用非阻塞I/O机制执行每个协程,其中每个协程发起网络请求后将CPU交给下一个协程进行处理。
在一个实施例中,所述方法还包括:如果多个协程中的一个或多个获取展示数据失败,则单独获取相应展示数据。
在一个实施例中,所述方法还包括:设置超时时间,并且当等待总时间超过超时时间时,将已接收的展示数据合并,并向用户设备发送。
在一个实施例中,所述协程是lua协程。
本发明还提出了一种用于服务器的装置,包括:接收单元,被配置为从用户设备接收请求多个展示数据的数据请求;协程创建单元,被配置为创建多个协程,每个协程分别用于获取多个展示数据中的一个;协程执行单元,被配置为并发执行每个协程,等待和接收每个协程返回的展示数据;以及合并单元,被配置为将展示数据合并,并向用户设备发送,以供用户设备使用。
在一个实施例中,协程执行单元还被配置为,利用非阻塞I/O机制执行每个协程,其中每个协程发起网络请求后将CPU交给下一个协程进行处理。
在一个实施例中,所述装置还包括单独获取单元,单独获取单元被配置为,如果多个协程中的一个或多个获取展示数据失败,则单独获取相应展示数据。
在一个实施例中,所述装置还包括被配置为设置超时时间的超时单元,当等待总时间超过超时时间时,合并单元将已接收的展示数据合并,并向用户设备发送。
在一个实施例中,所述协程是lua协程。
通过本发明提出的用于服务器的方法和装置,用户设备能够从服务器一次接收所需要的展示数据(即合并的展示数据),因而减少了用户设备上页面的异步加载次数,避免了页面抖动。并且,由于只向用户设备发送需要更新的那部分展示数据,能够解决切换商品型号(例如,商品的颜色尺码)时直接刷新整个页面的问题,避免了流量浪费。
附图说明
图1是现有技术的商品信息浏览系统。
图2是根据本发明实施例的商品信息浏览系统。
图3是示出根据本发明实施例的用于服务器的方法的流程图。
图4是示出根据本发明实施例的用于服务器的装置的框图。
具体实施方式
以下对本发明的示例性实施例做出说明,其中包括本发明实施例的各种细节以有助于理解,应当将它们认为仅仅是示例性的。因此,本领域的技术人员应当认识到,可对本文描述的实施例做出各种修改和改变,而不脱离本发明的范围和精神。
图1示出了现有技术中用户请求多个展示数据的系统100。系统100包括用户设备101以及商品数据系统110、价格系统120、库存系统130、促销系统140,这些系统一般用于保存与商品相关的信息,以便向用户展示。尽管图1中示出了上述四种系统,本领域技术人员能够理解,保存商品相关信息的系统不限于此。
当用户设备101在电子商务平台上浏览商品信息时,通常需要向用户展示商品的详细信息、价格、库存、促销等信息。这些信息一般通过用户设备101与相应系统之间的通信来获取,如图1所示。当用户切换商品的某个参数(例如颜色或尺码)时,就要重新从各个服务器系统110、120、130、140获取相应数据进行展示。当用户设备从任一个服务器系统接收到相应数据时,立即在用户设备上展示。因此用户设备上存在多次加载展示数据的问题,用户体验很差。
图2示出了根据本发明实施例的示例性系统200。该系统200示出了本发明的主要构思。与图1相比,在用户设备201和商品数据系统110、价格系统120、库存系统130、促销系统140之间还包括了合并系统202。尽管图1中示出了上述四种系统,本领域技术人员能够理解,保存商品信息的系统不限于此。
用户设备201经由合并系统202与商品数据系统110、价格系统120、库存系统130、促销系统140进行通信。在一个实施例中,当用户设备201切换所展示商品的参数(颜色或尺码)时,合并系统202并发地从上述四个系统210、220、230、240获取相应数据,合并后再向用户设备201发送。用户设备201接收合并数据后,同步展示这些数据(例如,商品数据、价格、库存、促销信息等)。
此外,用户设备201在界面中展示数据时,首先可以重置所有待展示数据为默认值,例如,将商品价格重置为默认价格、促销信息重置为无促销等。然后,利用从合并系统202接收的合并数据,同步加载各展示数据。可以看出,由于用户一次获得了需要展示的所有数据,所以不必多次加载,避免了页面抖动。
此外,用户设备201在切换商品的参数时,因为不需要将展示的商品信息全部重新加载,用户设备201可以只从合并系统接收需要刷新的展示数据,避免了流量浪费。
图3是示出根据本发明实施例的示例性方法300的流程图。方法300通常由服务器(如图2中的合并系统202)执行。
步骤301,从用户设备(如图2中的用户设备201)接收请求多个展示数据的数据请求。用户在用户设备上浏览商品时,可能需要查看同类商品的不同型号,例如具有不同颜色或尺寸的商品的相关展示数据。这时,服务器可从用户设备接收请求这些展示数据的请求。展示数据包括但不限于,商品数据、价格、库存情况、促销信息等。
在接收数据请求后,服务器并发地向各个数据系统请求相应的数据。并发处理可通过多种机制来实现:1、Java中的多线程机制,但是存在上下文切换,开销比较大;2、使用如NodeJS中的异步和回调机制,但是调试和性能监控不理想。因此,本发明使用lua协程来实现并发处理。其优点在于没有线程的上下文切换,执行效率高。
因此,服务器可执行步骤302,创建多个协程,每个协程分别用于获取多个展示数据中的一个;以及步骤303,执行每个协程,等待和接收每个协程返回的展示数据。
因为执行协程是网络操作,所以比如价格协程在发送网络请求时,可以把CPU交给下一个协程进行处理,如库存协程。也就是说,服务器使用了系统的非阻塞I/O机制。这么做是有益的,例如,如果发生阻塞且当前CPU被价格协程占用,则在等待网络的这段时间内将无法把CPU让出给其他协程。通过这种机制,并发执行多个协程的响应时间是最慢的那个协程的响应时间,而不是这些接口的响应时间的总和。
因此,在一个实施例中,服务器利用非阻塞I/O机制执行每个协程,其中每个协程发起网络请求后将CPU交给下一个协程进行处理。
在一个实施例中,如果多个协程中的一个或多个获取展示数据失败,服务器可单独获取相应展示数据。这时,服务器通过任何其他方式来获取以上通过协程未能获取的展示数据,防止数据不展示造成用户体验差。
然后,服务器执行步骤304,将展示数据合并,并向用户设备发送,以供用户设备使用。具体地,服务器可将所有展示数据合并为JSON串。
在一个实施例中,还可以设置整个响应的超时时间,当等待总时间超过超时时间时,将已接收的展示数据合并,并向用户设备发送。
由于用户设备能够从服务器一次接收所需要的数据(即合并的展示数据),因而减少了用户设备上页面的异步加载次数,避免了页面抖动。
图4示出了根据本发明实施例的示例性装置400,包括:接收单元401,被配置为从用户设备(如图2中的用户设备201)接收请求多个展示数据的数据请求;协程创建单元402,被配置为创建多个协程,每个协程分别用于获取多个展示数据中的一个;协程执行单元403,被配置为并发执行每个协程,等待和接收每个协程返回的展示数据;以及合并单元404,被配置为将展示数据合并,并向用户设备发送,以供用户设备使用。
在一个实施例中,协程执行单元403还被配置为,利用非阻塞I/O机制执行每个协程,其中每个协程发起网络请求后将CPU交给下一个协程进行处理。
在一个实施例中,所述装置400还包括单独获取单元405,单独获取单元405被配置为,如果多个协程中的一个或多个获取展示数据失败,则单独获取相应展示数据。
在一个实施例中,所述装置400还包括被配置为设置超时时间的超时单元406,所述合并单元404还被配置为当等待总时间超过超时时间时,将已接收的展示数据合并,并向用户设备发送。
需要注意的是,以上仅为本发明的较佳实施例及原理。本领域的技术人员会理解,本发明不限于这里的特定实施例。本领域的技术人员能够做出各种明显变化、调整和替代,而不脱离本发明的保护范围。本发明的范围由所附权利要求界定。
Claims (10)
1.一种用于服务器的方法,包括:
从用户设备接收请求多个展示数据的数据请求;
创建多个协程,每个协程分别用于获取多个展示数据中的一个;
并发执行每个协程,等待和接收每个协程返回的展示数据;以及
将展示数据合并,并向用户设备发送,以供用户设备使用。
2.根据权利要求1所述的方法,其中并发执行每个协程包括利用非阻塞I/O机制执行每个协程,其中每个协程发起网络请求后将CPU交给下一个协程进行处理。
3.根据权利要求1所述的方法,所述方法还包括:
如果多个协程中的一个或多个获取展示数据失败,则单独获取相应展示数据。
4.根据权利要求1所述的方法,所述方法还包括:
设置超时时间,并且当等待总时间超过超时时间时,将已接收的展示数据合并,并向用户设备发送。
5.根据权利要求1所述的方法,所述协程是lua协程。
6.一种用于服务器的装置,包括:
接收单元,被配置为从用户设备接收请求多个展示数据的数据请求;
协程创建单元,被配置为创建多个协程,每个协程分别用于获取多个展示数据中的一个;
协程执行单元,被配置为并发执行每个协程,等待和接收每个协程返回的展示数据;以及
合并单元,被配置为将展示数据合并,并向用户设备发送,以供用户设备使用。
7.根据权利要求6所述的装置,所述协程执行单元还被配置为,利用非阻塞I/O机制执行每个协程,其中每个协程发起网络请求后将CPU交给下一个协程进行处理。
8.根据权利要求6所述的装置,所述服务器系统还包括单独获取单元,单独获取单元被配置为,如果多个协程中的一个或多个获取展示数据失败,则单独获取相应展示数据。
9.根据权利要求6所述的装置,还包括被配置为设置超时时间的超时单元,所述合并单元还被配置为当等待总时间超过超时时间时,将已接收的展示数据合并,并向用户设备发送。
10.根据权利要求6所述的装置,其中所述协程是lua协程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510812359.3A CN105447138A (zh) | 2015-11-20 | 2015-11-20 | 用于服务器的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510812359.3A CN105447138A (zh) | 2015-11-20 | 2015-11-20 | 用于服务器的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105447138A true CN105447138A (zh) | 2016-03-30 |
Family
ID=55557315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510812359.3A Pending CN105447138A (zh) | 2015-11-20 | 2015-11-20 | 用于服务器的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105447138A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109246235A (zh) * | 2018-09-30 | 2019-01-18 | 广州圣亚科技有限公司 | 监测数据的接收方法、装置和数据监测系统 |
CN109299061A (zh) * | 2018-10-26 | 2019-02-01 | 苏州浪潮智能软件有限公司 | 一种自助售货平台的三维向量式货道标识合并方法 |
CN111078628A (zh) * | 2018-10-18 | 2020-04-28 | 深信服科技股份有限公司 | 一种多盘并发数据迁移方法、系统、装置及可读存储介质 |
CN111209094A (zh) * | 2018-11-21 | 2020-05-29 | 北京小桔科技有限公司 | 请求处理方法、装置、电子设备及计算机可读存储介质 |
CN111831508A (zh) * | 2020-06-12 | 2020-10-27 | 新浪网技术(中国)有限公司 | 一种动态监控数据采集方法及装置 |
CN113360807A (zh) * | 2021-06-24 | 2021-09-07 | 平安普惠企业管理有限公司 | 混合模式移动应用的页面显示方法、装置及相关设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090113436A1 (en) * | 2007-10-25 | 2009-04-30 | Microsoft Corporation | Techniques for switching threads within routines |
CN101719926A (zh) * | 2009-12-03 | 2010-06-02 | 成都耀邦科技有限责任公司 | web service多线程文件上传系统 |
CN102932390A (zh) * | 2011-08-11 | 2013-02-13 | 阿里巴巴集团控股有限公司 | 一种网络请求的处理方法和系统、网络服务提供装置 |
CN103412786A (zh) * | 2013-08-29 | 2013-11-27 | 苏州科达科技股份有限公司 | 一种高性能服务器架构系统及数据处理方法 |
-
2015
- 2015-11-20 CN CN201510812359.3A patent/CN105447138A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090113436A1 (en) * | 2007-10-25 | 2009-04-30 | Microsoft Corporation | Techniques for switching threads within routines |
CN101719926A (zh) * | 2009-12-03 | 2010-06-02 | 成都耀邦科技有限责任公司 | web service多线程文件上传系统 |
CN102932390A (zh) * | 2011-08-11 | 2013-02-13 | 阿里巴巴集团控股有限公司 | 一种网络请求的处理方法和系统、网络服务提供装置 |
CN103412786A (zh) * | 2013-08-29 | 2013-11-27 | 苏州科达科技股份有限公司 | 一种高性能服务器架构系统及数据处理方法 |
Non-Patent Citations (3)
Title |
---|
李晟: "浅谈如何提高服务器并发能力", 《电脑知识与技术》 * |
王鹏等: "《Go语言程序设计》", 31 January 2014, 清华大学出版社 * |
陈圣国等: "《Java程序设计 第3版》", 31 July 2014, 西安电子科技大学出版社 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109246235A (zh) * | 2018-09-30 | 2019-01-18 | 广州圣亚科技有限公司 | 监测数据的接收方法、装置和数据监测系统 |
CN109246235B (zh) * | 2018-09-30 | 2021-12-10 | 广州圣亚科技有限公司 | 监测数据的接收方法、装置和数据监测系统 |
CN111078628A (zh) * | 2018-10-18 | 2020-04-28 | 深信服科技股份有限公司 | 一种多盘并发数据迁移方法、系统、装置及可读存储介质 |
CN111078628B (zh) * | 2018-10-18 | 2024-02-23 | 深信服科技股份有限公司 | 一种多盘并发数据迁移方法、系统、装置及可读存储介质 |
CN109299061A (zh) * | 2018-10-26 | 2019-02-01 | 苏州浪潮智能软件有限公司 | 一种自助售货平台的三维向量式货道标识合并方法 |
CN109299061B (zh) * | 2018-10-26 | 2022-08-09 | 浪潮金融信息技术有限公司 | 一种自助售货平台的三维向量式货道标识合并方法 |
CN111209094A (zh) * | 2018-11-21 | 2020-05-29 | 北京小桔科技有限公司 | 请求处理方法、装置、电子设备及计算机可读存储介质 |
CN111831508A (zh) * | 2020-06-12 | 2020-10-27 | 新浪网技术(中国)有限公司 | 一种动态监控数据采集方法及装置 |
CN113360807A (zh) * | 2021-06-24 | 2021-09-07 | 平安普惠企业管理有限公司 | 混合模式移动应用的页面显示方法、装置及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105447138A (zh) | 用于服务器的方法及系统 | |
US11561825B2 (en) | Methods and systems of scheduling computer processes or tasks in a distributed system | |
CN103714115B (zh) | 一种网页内容的加载方法和装置 | |
US20170295062A1 (en) | Method, device and system for configuring runtime environment | |
CN105071976A (zh) | 数据传输方法和装置 | |
US9098607B2 (en) | Writing and analyzing logs in a distributed information system | |
CN110413911A (zh) | 网络图片加载方法、装置、终端设备及计算机可读存储介质 | |
CN113505302A (zh) | 支持动态获取埋点数据的方法、装置、系统及电子设备 | |
US11449671B2 (en) | Dynamic content recommendation for responsive websites | |
US9575772B2 (en) | Model-based user interface | |
US11240562B1 (en) | Set-top box reboot and polling tool | |
CN110442406A (zh) | 分页控件处理数据的方法及分页控件、电子设备 | |
US8478654B2 (en) | Information providing device, method, and system | |
US20140040772A1 (en) | Highlighting graphical user interface components based on usage by other users | |
US9696887B2 (en) | Integrated user interface using linked data | |
CN115964591A (zh) | 页面多屏展示方法、装置、设备及存储介质 | |
CN113268183B (zh) | 一种列表页面倒计时显示方法及装置 | |
US9639250B2 (en) | Systems and methods for reconfiguring a matrix in a display | |
CN105787754A (zh) | 一种广告库存可视化方法和装置 | |
CN113515328A (zh) | 页面渲染的方法、装置、电子设备和存储介质 | |
CN111989668A (zh) | 数据项显示方法、装置及系统和计算机可读存储介质 | |
US20110320954A1 (en) | Related web feed correlation with dynamic content access | |
CN109634492A (zh) | 下拉框指定值输入方法、装置、及计算机可读存储介质 | |
CN113259431B (zh) | 服务调用方法、服务调用装置、电子设备以及存储介质 | |
CN108958740A (zh) | 一种数据处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160330 |
|
RJ01 | Rejection of invention patent application after publication |