CN110830537A - 一种页面处理方法及装置 - Google Patents

一种页面处理方法及装置 Download PDF

Info

Publication number
CN110830537A
CN110830537A CN201810917405.XA CN201810917405A CN110830537A CN 110830537 A CN110830537 A CN 110830537A CN 201810917405 A CN201810917405 A CN 201810917405A CN 110830537 A CN110830537 A CN 110830537A
Authority
CN
China
Prior art keywords
script
page
address
server
client
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.)
Granted
Application number
CN201810917405.XA
Other languages
English (en)
Other versions
CN110830537B (zh
Inventor
贺鹏
胡博
梁龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Singapore Holdings Pte Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201810917405.XA priority Critical patent/CN110830537B/zh
Publication of CN110830537A publication Critical patent/CN110830537A/zh
Application granted granted Critical
Publication of CN110830537B publication Critical patent/CN110830537B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供了一种页面处理方法及装置,涉及通信技术领域。本申请通过在第一页面中增加第一脚本,当客户端在获取到第一页面时,可相应获取到第一脚本,根据第一脚本确定第二脚本更新地址,以获取源服务器中的第二脚本,根据源服务器中的第二脚本对第一页面进行修改,当需要对第一页面进行修改时,只需更新源服务器中的第二脚本,就可达到所有页面统一修改的目的;且能够降低发布时间,提高发布成功率,不增加网站的可维护性。

Description

一种页面处理方法及装置
技术领域
本申请涉及通信技术领域,特别是涉及一种页面处理方法及装置。
背景技术
CMS(Content Management System,内容管理系统)服务器生成的页面,为了更好的用户体验,CMS服务器会将页面的HTML(HyperText Markup Language,超文本标记语言)文档、CSS(Cascading Style Sheets,层叠样式表)文件和脚本文件一并提交给CDN(Content Delivery Network,内容分发网络)服务器,通过CDN服务器进行网络的加速,并设置较长的缓存时间,来提升用户访问网站的速度和用户体验。随着网站使用CMS的时间越长,生成的页面会达到几十万,甚至百万量级。
当发现生成的页面有问题需要修改时,可采用以下两种方法进行修改,第一种方法是找出所有需要修改的页面,人工修改对应部分并重新发布到CDN服务器中;第二种方法是在CDN服务器中增加过滤规则,在CDN服务器中对页面进行修改,主要根据客户端发送的页面请求中的关键词或其他规则,将原本的页面替换为更新以后的页面,并向客户端返回最新的页面。
但是,对于第一种方法,当页面数量较少时,工作量相对可控,如果页面数量很多,通过人工修改的工作量大幅度增大,且批量修改并发布页面会存在发布时间过长、发布文件较多等问题,导致发布成功率降低;对于第二种方法,由于在CDN服务器中增加了过滤规则,因此,在对CDN服务器进行维护时会增加对过滤规则的维护,严重影响网站的可维护性。
发明内容
鉴于上述问题,本申请实施例提供一种页面处理方法,以通过接收目标服务器发送的第一页面,第一页面中包括第一脚本,根据第一脚本,确定第二脚本更新地址,向目标服务器发送包括第二脚本更新地址的第二脚本获取请求,并接收目标服务器返回的第二脚本,第二脚本为目标服务器根据第二脚本更新地址从源服务器获取,根据第二脚本对第一页面进行修改,获得第二页面,解决现有技术中对页面的修改,页面数量较多时工作量大,发布成功率低,且严重影响网站的可维护性的问题。
相应的,本申请实施例还提供了一种页面处理装置,用以保证上述方法的实现及应用。
为了解决上述问题,本申请实施例公开了一种页面处理方法,应用于客户端,包括:
接收目标服务器发送的第一页面;所述第一页面中包括第一脚本;
根据所述第一脚本,确定第二脚本更新地址;
向所述目标服务器发送包括所述第二脚本更新地址的第二脚本获取请求,并接收所述目标服务器返回的第二脚本;所述第二脚本为所述目标服务器根据所述第二脚本更新地址从源服务器获取;
根据所述第二脚本对所述第一页面进行修改,获得第二页面。
本申请实施例还公开了一种页面处理方法,应用于目标服务器,包括:
向客户端发送第一页面;所述第一页面中包括第一脚本;
接收所述客户端根据第一脚本发送的第二脚本获取请求;所述第二脚本获取请求包括第二脚本更新地址;
根据所述第二脚本更新地址从源服务器获取第二脚本;
向所述客户端发送所述第二脚本。
本申请实施例另外公开了一种页面处理方法,应用于源服务器,包括:
向目标服务器发送第一页面;所述第一页面中包括第一脚本,所述第一脚本用于使客户端执行并生成第二脚本更新地址。
相应的,本申请实施例还公开了一种页面处理装置,应用于客户端,包括:
第一页面接收模块,用于接收目标服务器发送的第一页面;所述第一页面中包括第一脚本;
更新地址确定模块,用于根据所述第一脚本,确定第二脚本更新地址;
第二脚本接收模块,用于向所述目标服务器发送包括所述第二脚本更新地址的第二脚本获取请求,并接收所述目标服务器返回的第二脚本;所述第二脚本为所述目标服务器根据所述第二脚本更新地址从源服务器获取;
修改模块,用于根据所述第二脚本对所述第一页面进行修改,获得第二页面。
本申请实施例还公开了一种页面处理装置,应用于目标服务器,包括:
第一页面第一发送模块,用于向客户端发送第一页面;所述第一页面中包括第一脚本;
第二脚本获取请求接收模块,用于接收所述客户端根据第一脚本发送的第二脚本获取请求;所述第二脚本获取请求包括第二脚本更新地址;
第二脚本获取模块,用于根据所述第二脚本更新地址从源服务器获取第二脚本;
第二脚本发送模块,用于向所述客户端发送所述第二脚本。
本申请实施例另外公开了一种页面处理装置,应用于源服务器,包括:
第一页面第二发送模块,用于向目标服务器发送第一页面;所述第一页面中包括第一脚本,所述第一脚本用于使客户端执行并生成第二脚本更新地址。
相应的,本申请实施例还公开了一种装置,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行一种页面处理方法。
相应的,本申请实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行一种页面处理方法。
本申请实施例包括以下优点:
本申请实施例通过接收目标服务器发送的第一页面,第一页面中包括第一脚本,根据第一脚本,确定第二脚本更新地址,向目标服务器发送包括第二脚本更新地址的第二脚本获取请求,并接收目标服务器返回的第二脚本,第二脚本为目标服务器根据第二脚本更新地址从源服务器获取,根据第二脚本对第一页面进行修改,获得第二页面。通过在第一页面中增加第一脚本,当客户端在获取到第一页面时,可相应获取到第一脚本,根据第一脚本确定第二脚本更新地址,以获取源服务器中的第二脚本,根据源服务器中的第二脚本对第一页面进行修改,当需要对第一页面进行修改时,只需更新源服务器中的第二脚本,就可达到所有页面统一修改的目的。
由于第二脚本仅仅是一个补丁文件,那么更新时不是对整个页面进行更新,而只需更新第二脚本,其发布的文件数量变少,内容也变少,能够降低发布时间,提高发布成功率。
并且,客户端每次获取到的第二脚本都是CDN服务器从源服务器中获取的,只需对源服务器中存储的第二脚本进行更新,客户端在获取到源服务器中最新的第二脚本后,就可对第一页面进行修改,该种方式,并未修改CDN服务器的规则,还是在CDN原有规则下进行的操作,对CDN而言,也不增加CDN规则的维护,不增加网站的可维护性。
附图说明
图1是本申请实施例的一种页面处理方法的架构图;
图2是本申请实施例的一种页面处理方法的交互图;
图3是本申请实施例的另一种页面处理方法的交互图;
图4是本申请实施例的一种页面处理方法的流程图;
图5是本申请实施例的一种页面处理方法的具体流程图;
图6是本申请实施例的另一种页面处理方法的流程图;
图7是本申请实施例的再一种页面处理方法的流程图;
图8是本申请实施例的一种页面处理装置的结构图;
图9是本申请实施例的另一种页面处理装置的结构图;
图10是本申请实施例的再一种页面处理装置的结构图;
图11是本申请实施例提供的一种客户端的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请的技术方案主要应用于互联网场景中,以实现对第一页面的修改。本申请实施例中的客户端也即是浏览器,例如电脑中的浏览器或手机中的浏览器,当然,可以是其他包括页面的应用,本申请实施例不对其加以限制。
参照图1,示出了本申请实施例的一种页面处理方法的架构图。
在实际应用中,为了提升用户访问网站的速度,按照区域划分会设置多个目标服务器,用户在访问页面时,会选择离自己最近的目标服务器提供服务。
客户端1、客户端2和客户端N均通过同一个目标服务器提供服务,当某一用户在客户端1中访问第一页面时,客户端1向目标服务器发送页面请求,目标服务器在接收到客户端发送的页面请求后,根据页面请求判断本地是否缓存有页面请求对应的第一页面,如果缓存有第一页面,则向客户端发送第一页面,客户端执行步骤P1:接收目标服务器发送的第一页面,如果目标服务器没有缓存第一页面,则向源服务器请求第一页面,在接收到源服务器返回的第一页面后,缓存第一页面并向客户端发送第一页面。
第一页面中包括第一脚本,客户端1根据第一脚本,确定第二脚本更新地址,接着,客户端1执行步骤P2:向目标服务器发送包括第二脚本更新地址的第二脚本获取请求,目标服务器则接收客户端根据第一脚本发送的第二脚本获取请求,该第二脚本获取请求包括第二脚本更新地址,并执行步骤P3:根据第二脚本更新地址从源服务器获取第二脚本,目标服务器在从源服务器中获取到第二脚本后,向客户端发送第二脚本,则客户端1执行步骤P4:接收目标服务器返回的第二脚本,最后,客户端1根据第二脚本对第一页面进行修改,获得第二页面。
当客户端2请求第一页面时,由于目标服务器中一定缓存有第一页面,则目标服务器直接向客户端2返回第一页面,后续的执行过程与客户端1类似。
其中,目标服务器可以是CDN服务器,源服务器可以是CMS服务器。
参照图2,示出了本申请实施例的一种页面处理方法的交互图。
在第一种情况下,目标服务器中没有缓存客户端请求的第一页面B。
当用户在客户端中需要访问第一页面B时,首先执行步骤A1:向目标服务器发送页面请求,目标服务器执行步骤A2:接收客户端发送的页面请求,由于目标服务器中没有缓存客户端请求的第一页面B,因此,目标服务器需要执行步骤A3:向源服务器发送页面请求,源服务器在接收到目标服务器发送的页面请求后,执行步骤A4:向目标服务器返回第一页面,其中,该第一页面B中包括第一脚本,目标服务器在接收到源服务器返回的第一页面B后,缓存该第一页面B并执行步骤A5:向客户端发送第一页面,客户端执行步骤A6:接收目标服务器发送的第一页面,接着执行步骤A7:根据第一脚本,确定第二脚本更新地址。
然后,客户端执行步骤A8:向目标服务器发送包括第二脚本更新地址的第二脚本获取请求,则目标服务器执行步骤A9:接收客户端根据第一脚本发送的第二脚本获取请求,接着依次执行步骤A10:从第二脚本获取请求中提取第二脚本更新地址,步骤A11:向源服务器发送包括第二脚本更新地址的脚本缓存请求,源服务器在接收到目标服务器发送的包括第二脚本更新地址的脚本缓存请求后,根据脚本缓存请求中的第二脚本更新地址向目标服务器返回第二脚本,则目标服务器执行步骤A12:接收源服务器根据脚本缓存请求中的第二脚本更新地址返回的第二脚本,目标服务器在接收到第二脚本后,执行步骤A13:向客户端发送第二脚本,客户端则执行步骤A14:接收目标服务器返回的第二脚本,最后,依次执行步骤A15:根据第二脚本对第一页面进行修改,获得第二页面,以及步骤A16:渲染第二页面。
参照图3,示出了本申请实施例的另一种页面处理方法的交互图。
在第二种情况下,目标服务器不是初次接收到客户端请求第一页面B的页面请求,因此,目标服务器在初次接收到客户端请求的第一页面B时,向源服务器请求并获取到第一页面B后,会缓存第一页面B。
用户在客户端中需要访问第一页面B时,首先执行步骤S1:向目标服务器发送页面请求,目标服务器执行步骤S2:接收客户端发送的页面请求,由于目标服务器中缓存有客户端请求的第一页面B,因此,目标服务器需要执行步骤S3:向客户端发送第一页面,客户端执行步骤S4:接收目标服务器发送的第一页面,接着执行步骤S5:根据第一脚本,确定第二脚本更新地址。
然后,客户端执行步骤S6:向目标服务器发送包括第二脚本更新地址的第二脚本获取请求,则目标服务器执行步骤S7:接收客户端根据第一脚本发送的第二脚本获取请求,接着依次执行步骤S8:从第二脚本获取请求中提取第二脚本更新地址,步骤S9:向源服务器发送包括第二脚本更新地址的脚本缓存请求,源服务器在接收到目标服务器发送的包括第二脚本更新地址的脚本缓存请求后,根据脚本缓存请求中的第二脚本更新地址向目标服务器返回第二脚本,则目标服务器执行步骤S10:接收源服务器根据脚本缓存请求中的第二脚本更新地址返回的第二脚本,目标服务器在接收到第二脚本后,执行步骤S11:向客户端发送第二脚本,客户端则执行步骤S12:接收目标服务器返回的第二脚本,最后,依次执行步骤S13:根据第二脚本对第一页面进行修改,获得第二页面,以及步骤S14:渲染第二页面。
需要说明的是,当客户端向目标服务器发送的针对第一页面B的页面请求,是目标服务器初次接收到的页面请求时,由于目标服务器中没有缓存该第一页面B,因此,目标服务器需要向源服务器请求该第一页面B,在接收到源服务器返回的第一页面B后,将第一页面B返回至客户端,同时缓存该第一页面B;但是当客户端向目标服务器发送的针对第一页面B的页面请求,不是目标服务器初次接收到的页面请求时,在目标服务器中缓存有第一页面B,因此,目标服务器直接将缓存的第一页面B返回至客户端。
可以理解,结合上述图1和图2,目标服务器在收到客户端的页面请求后,可以首先判断目标服务器本地是否有页面请求对应的第一页面,如果有则直接执行S3:向客户端发送第一页面,如果没有则执行A3至A5,从源服务器中获取第一页面并发送至客户端。
在本申请实施例中,通过接收目标服务器发送的第一页面,第一页面中包括第一脚本,根据第一脚本,确定第二脚本更新地址,向目标服务器发送包括第二脚本更新地址的第二脚本获取请求,并接收目标服务器返回的第二脚本,第二脚本为目标服务器根据第二脚本更新地址从源服务器获取,根据第二脚本对第一页面进行修改,获得第二页面。通过在第一页面中增加第一脚本,当客户端在获取到第一页面时,可相应获取到第一脚本,根据第一脚本确定第二脚本更新地址,以获取源服务器中的第二脚本,根据源服务器中的第二脚本对第一页面进行修改,当需要对第一页面进行修改时,只需更新源服务器中的第二脚本,就可达到所有页面统一修改的目的;由于第二脚本仅仅是一个补丁文件,那么更新时不是对整个页面进行更新,而只需更新第二脚本,其发布的文件数量变少,内容也变少,能够降低发布时间,提高发布成功率;并且,客户端每次获取到的第二脚本都是CDN服务器从源服务器中获取的,只需对源服务器中存储的第二脚本进行更新,客户端在获取到源服务器中最新的第二脚本后,就可对第一页面进行修改,该种方式,并未修改CDN服务器的规则,还是在CDN原有规则下进行的操作,对CDN而言,也不增加CDN规则的维护,不增加网站的可维护性。
实施例一
本申请实施例从客户端侧进行描述。
参照图4,示出了本申请实施例的一种页面处理方法的流程图,具体可以包括如下步骤:
步骤401,接收目标服务器发送的第一页面;所述第一页面中包括第一脚本。
在本申请实施例中,当用户在客户端中需要访问第一页面时,首先需要向目标服务器发送针对第一页面的页面请求,目标服务器在接收到客户端发送的针对第一页面的页面请求后,确定是否缓存有该第一页面。
如果目标服务器中没有缓存第一页面,目标服务器需要向源服务器发送针对第一页面的页面请求,源服务器根据针对第一页面的页面请求向目标服务器返回第一页面,目标服务器在接收到第一页面后,缓存该第一页面,并将第一页面返回至客户端,客户端则接收目标服务器根据页面请求发送的第一页面。
如果目标服务器中缓存有第一页面,目标服务器直接向客户端发送缓存的第一页面,客户端接收目标服务器根据页面请求发送的第一页面。
其中,在第一页面的HTML文档的底部内嵌有第一脚本,因此,客户端在接收到第一页面时,相应会接收到第一脚本。
客户端可基于HTTP(Hyper Text Transfer Protocol,超文本传输协议)向目标服务器发送针对第一页面的页面请求。
例如,针对第一页面B,在浏览器中输入第一页面B的链接地址www.mmm.com,通过链接地址www.mmm.com向目标服务器发针对第一页面B的页面请求;或者,在当前浏览的页面中点击某个触控按钮以触发向目标服务器发送针对第一页面B的页面请求,客户端接收目标服务器根据页面请求返回的第一页面B。
步骤402,根据所述第一脚本,确定第二脚本更新地址。
在本申请实施例中,客户端在接收到第一页面后,在加载第一页面的同时,提取第一页面中的第一脚本,根据第一脚本,确定第二脚本更新地址。
步骤403,向所述目标服务器发送包括所述第二脚本更新地址的第二脚本获取请求,并接收所述目标服务器返回的第二脚本;所述第二脚本为所述目标服务器根据所述第二脚本更新地址从源服务器获取。
在本申请实施例中,客户端向目标服务器发送包括第二脚本更新地址的第二脚本获取请求,目标服务器在接收到第二脚本获取请求后,根据第二脚本获取请求中的第二脚本更新地址从源服务器获取第二脚本,并将获取到的第二脚本返回至客户端,客户端接收目标服务器返回的第二脚本。
需要说明的是,源服务器中仅存储有一个最新的第二脚本,当需要对第一页面进行修改时,只需更新源服务器中的第二脚本,然后通过目标服务器从源服务器中获取最新的第二脚本,就可达到所有页面统一修改的目的。
当然,在第二脚本获取请求中还包括客户端的标识信息等内容。
步骤404,根据所述第二脚本对所述第一页面进行修改,获得第二页面。
在本申请实施例中,客户端在接收到第二脚本后,根据第二脚本对第一页面进行修改,获得第二页面。
其中,对第一页面的修改不仅包括对第一页面的HTML文档的修改,还包括第一页面中外联的CSS文件对应的样式,以及第一页面中外联的脚本文件对应的脚本的修改。
需要说明的是,第二脚本仅仅是一个补丁文件,对客户端的页面性能的影响较小;当需要对第一页面进行修改时,只需更新第二脚本,在客户端获取到第二脚本后,就可修改第一页面。
例如,根据第二脚本对第一页面中的HTML元素进行修改,或者,通过第二脚本加载一个修改按钮标题的脚本文件,在将加载的脚本文件替换第一页面原有的脚本文件后,第一页面的标题发生变化。
本申请实施例通过接收目标服务器发送的第一页面,第一页面中包括第一脚本,根据第一脚本,确定第二脚本更新地址,向目标服务器发送包括第二脚本更新地址的第二脚本获取请求,并接收目标服务器返回的第二脚本,第二脚本为目标服务器根据第二脚本更新地址从源服务器获取,根据第二脚本对第一页面进行修改,获得第二页面。通过在第一页面中增加第一脚本,当客户端在获取到第一页面时,可相应获取到第一脚本,根据第一脚本确定第二脚本更新地址,以获取源服务器中的第二脚本,根据源服务器中的第二脚本对第一页面进行修改,当需要对第一页面进行修改时,只需更新源服务器中的第二脚本,就可达到所有页面统一修改的目的。
由于第二脚本仅仅是一个补丁文件,那么更新时不是对整个页面进行更新,而只需更新第二脚本,其发布的文件数量变少,内容也变少,能够降低发布时间,提高发布成功率。
并且,客户端每次获取到的第二脚本都是CDN服务器从源服务器中获取的,只需对源服务器中存储的第二脚本进行更新,客户端在获取到源服务器中最新的第二脚本后,就可对第一页面进行修改,该种方式,并未修改CDN服务器的规则,还是在CDN原有规则下进行的操作,对CDN而言,也不增加CDN规则的维护,不增加网站的可维护性。
实施例二
本申请实施例从客户端侧进行描述。
参照图5,示出了本申请实施例的一种页面处理方法的具体流程图,具体可以包括如下步骤:
步骤501,接收目标服务器发送的第一页面;所述第一页面中包括第一脚本。
此步骤与上述实施例一中的步骤401原理类似,在此不再赘述。
步骤502,从所述第一脚本中提取第二脚本的源地址。
在本申请实施例中,在第一页面的HTML文档的底部内嵌有第一脚本,第一脚本包括第二脚本的源地址,在接收到第一页面后,从第一脚本中提取第二脚本的源地址。
例如,从第一页面B的第一脚本中,提取到的第二脚本的源地址为:www.xxx.com/b/c.js。
步骤503,在所述第二脚本的源地址中添加请求参数,获得所述第二脚本更新地址。
在本申请实施例中,在从第一脚本中提取到第二脚本的源地址后,在第二脚本的源地址中添加请求参数,获得第二脚本更新地址。
在本申请的一种实施例中,确定最新的时间戳;在所述第二脚本的源地址中添加所述时间戳,获得所述第二脚本更新地址。
其中,请求参数为时间戳;可获取客户端向目标服务器发送页面请求的时间,作为最新的时间戳,或者,还可以获取客户端接收目标服务器发送的第一页面的时间,作为最新的时间戳。在第二脚本的源地址中添加最新的时间戳,获得第二脚本更新地址。
需要说明的是,时间戳可以精确到秒,当然,可以设定更高的精度。
例如,客户端向目标服务器发送页面请求的时间为2018年7月1号12点00分00秒,则时间戳可以设置为:?t=20180701120000,在第二脚本的源地址www.xxx.com/b/c.js中添加时间戳?t=20180701120000,获得第二脚本更新地址为:www.xxx.com/b/c.js?t=20180701120000。
在本申请的另一种实施例中,从所述目标服务器获取所述第一页面的访问总次数;在所述第二脚本的源地址中添加所述访问总次数,获得所述第二脚本更新地址。
其中,请求参数为第一页面的访问总次数;目标服务器记录接收到的页面请求的总次数,即第一页面的访问总次数,将第一页面的访问总次数更新在缓存的第一页面的第一脚本中,客户端在接收到目标服务器发送的第一页面时,相应会接收到第一脚本中的第一页面的访问总次数,在第二脚本的源地址中添加访问总次数,获得第二脚本更新地址。
例如,目标服务器记录的第一页面的访问总次数为11111,则在第二脚本的源地址中添加第一页面的访问总次数11111,获得第二脚本更新地址为:www.xxx.com/b/c.js?t=11111。
步骤504,向所述目标服务器发送包括所述第二脚本更新地址的第二脚本获取请求,并接收所述目标服务器返回的第二脚本;所述第二脚本为所述目标服务器根据所述第二脚本更新地址从源服务器获取。
在本申请实施例中,在获得第二脚本更新地址后,客户端向目标服务器发送包括第二脚本更新地址的第二脚本获取请求,目标服务器在接收到第二脚本获取请求后,根据第二脚本获取请求中的第二脚本更新地址从源服务器获取第二脚本,目标服务器在获取到源服务器中的第二脚本后,缓存该第二脚本,并将第二脚本返回至客户端,客户端接收目标服务器返回的第二脚本。
其中,第二脚本存储于源服务器中,第二脚本的更新操作在源服务器中进行。
需要对第一页面进行修改时,只需在源服务器中更新第二脚本即可。
客户端在接收到第二脚本后也会缓存该第二脚本,且目标服务器和客户端在缓存第二脚本时,都是通过第二脚本的第二脚本更新地址进行缓存的。
需要说明的是,在第二脚本的源地址中必须添加请求参数,才可以获取到源服务器中最新的第二脚本。
如在第二脚本的源地址中不添加请求参数,客户端M1直接向目标服务器发送包括第二脚本的源地址的第二脚本获取请求,若目标服务器初次接收到包括第二脚本的源地址的第二脚本获取请求后,向源服务器发送包括第二脚本的源地址的第二脚本缓存请求,在接收到源服务器返回的第二脚本J1后,缓存第二脚本J1并将第二脚本J1返回至客户端,客户端在接收到第二脚本J1后也会相应缓存该第二脚本J1,且目标服务器和客户端在缓存第二脚本J1时都是通过第二脚本J1的源地址进行缓存的。当源服务器中的第二脚本J1更新后,且最新的第二脚本为J2,该客户端M1需要再次获取第二脚本时,发现客户端之前已经缓存过第二脚本J1,则直接获取缓存的第二脚本J1,而并没有获取到源服务器中最新的第二脚本J2;或者,客户端M2向目标服务器发送包括第二脚本的源地址的第二脚本获取请求,目标服务器在接收到包括第二脚本的源地址的第二脚本获取请求后,发现之前已经缓存过第二脚本J1,因此,直接向客户端返回缓存的第二脚本J1,而客户端B也没有获取到源服务器中最新的第二脚本J2。
因此,需要在第二脚本的源地址中添加请求参数,获得第二脚本更新地址,客户端向目标服务器发送的第二脚本获取请求中包括第二脚本更新地址,目标服务器在初次接收到包括第二脚本更新地址的第二脚本获取请求后,向源服务器发送包括第二脚本更新地址的脚本缓存请求,在接收到源服务器返回的第二脚本J1后,缓存第二脚本J1并将第二脚本J1返回至客户端,客户端在接收到第二脚本J1后也会相应缓存该第二脚本J1,且目标服务器和客户端在缓存第二脚本J1时是通过第二脚本J1的源地址和请求参数缓存的,即都是通过第二脚本更新地址缓存的。当源服务器中的第二脚本J1更新后,且最新的第二脚本为J2,该客户端M1需要再次获取第二脚本时,以请求参数是时间戳为例,由于两次请求第二脚本的时间不一样,因此,再次生成的第二脚本更新地址与初次生成的第二脚本更新地址不同,因此,客户端会向目标服务器发送的第二脚本获取请求,第二脚本获取请求中包括的是再次生成的第二脚本更新地址,而目标服务器中也没有缓存该再次生成的第二脚本更新地址对应的第二脚本,对于目标服务器来说,再次生成的第二脚本更新地址是目标服务器初次接收到的地址,最后,目标服务器从源服务器中获取最新的第二脚本J2,并将最新的第二脚本J2返回至客户端;或者,客户端M2向目标服务器发送包括第二脚本更新地址的第二脚本获取请求,目标服务器中也没有缓存该第二脚本更新地址对应的第二脚本,因此,目标服务器会向源服务器发送包括第二脚本更新地址的脚本缓存请求,获取源服务器返回的最新的第二脚本J2,最后,目标服务器将最新的第二脚本J2返回至客户端M2。
需要说明的是,由于目标服务器在接收到一次页面请求时,在原本的访问总次数上加1,例如,目标服务器第11110次接收到页面请求,返回第一页面给客户端,客户端向目标服务器发送的第二脚本获取请求中的第二脚本更新地址为www.xxx.com/b/c.js?t=11110,目标服务器向源服务器发送包括第二脚本更新地址的脚本缓存请求以获取第二脚本,在获取到第二脚本后,缓存该第二脚本,并将第二脚本返回至客户端,且目标服务器在缓存的第二脚本是通过第二脚本更新地址进行缓存的,则此时缓存的第二脚本更新地址为www.xxx.com/b/c.js?t=11110;然后,对源服务器中的第二脚本进行更新操作,当更新操作完成后,目标服务器再次接收到页面请求时,即第11111次,返回第一页面给客户端,客户端向目标服务器发送的第二脚本获取请求中的第二脚本更新地址为www.xxx.com/b/c.js?t=11111,与目标服务器中缓存的第二脚本更新地址不同,对于目标服务器来说,第二脚本更新地址www.xxx.com/b/c.js?t=111111是目标服务器初次接收到的地址,之前都没有接收到同样的第二脚本更新地址www.xxx.com/b/c.js?t=111111,因此,目标服务器需要从源服务器中获取最新的第二脚本。
步骤505,根据所述第二脚本对所述第一页面进行修改,获得第二页面。
在本申请实施例中,客户端在接收到第二脚本后,根据第二脚本对第一页面进行修改,获得第二页面。
其中,对第一页面进行修改主要包括以下几种:
第一种:根据所述第二脚本对所述第一页面的HTML文档进行修改,获得所述第二页面;其中,所述对所述第一页面的HTML文档进行修改包括:在所述HTML文档中增加新的代码、删除所述HTML文档中原有的代码以及对所述HTML文档中原有的代码进行替换中的一个或多个。
当第一页面的HTML文档需要进行修改时,在获取到第二脚本后,根据第二脚本对第一页面的HTML文档进行修改,获得第二页面。
其中,对第一页面的HTML文档进行修改包括:在HTML文档中增加新的代码、删除HTML文档中原有的代码以及对HTML文档中原有的代码进行替换中的一个或多个。
例如,第一页面的HTML文档包括的内容为:“专利”,HTML文档中“专利”对应的样式为斜体,即HTML文档中原有的代码为<i>专利</i>,当需要将“专利”对应的样式从斜体替换为粗体时,根据第二脚本将原有的代码<i>专利</i>替换为<b>专利</b>;也可以在HTML文档中增加新的代码<title>文档</title>;还可以删除HTML文档中原有的代码<h1>helloworld!</h1>。
第二种:根据所述第二脚本获取第一CSS文件;使用所述第一CSS文件替换所述第一页面原有的第二CSS文件,获得所述第二页面。
在第一页面中还外联有第二CSS文件,当需要对外联的第二CSS文件对应的样式进行修改时,根据第二脚本获取第一CSS文件,使用第一CSS文件替换第一页面原有的第二CSS文件,即通过第一CSS文件对应的样式覆盖第二CSS文件对应的样式,获得第二页面,在渲染第二页面时,展示的第二页面的样式为第一CSS文件对应的样式。
当然,还可以根据第二脚本直接修改外联的第二CSS文件,得到第二页面。
需要说明的是,对第一页面的样式的修改,可以包括对第一页面中其中一个或几个元素的样式的修改,还可以包括对整个第一页面的样式的修改。
第三种:根据所述第二脚本获取第一脚本文件;使用所述第一脚本文件替换所述第一页面原有的第二脚本文件,获得所述第二页面。
在第一页面中还外联有第二脚本文件,当需要对外联的第二脚本文件对应的脚本进行修改时,根据第二脚本获取第一脚本文件,使用第一脚本文件替换第一页面原有的第二脚本文件,获得第二页面。
步骤506,渲染所述第二页面。
在本申请实施例中,客户端在通过第二脚本对第一页面进行修改,得到第二页面后,渲染该第二页面,则在客户端的网页中展示的修改后的页面,即第二页面。
需要说明的是,在渲染第二页面时,不会再次触发向目标服务器发送包括第二脚本更新地址的第二脚本获取请求的操作,只有当客户端接收到目标服务器返回的第一页面,在加载第一页面时才会触发向目标服务器发送包括第二脚本更新地址的第二脚本获取请求的操作。
例如,通过第二脚本加载了一个修改按钮标题的脚本文件,在将加载的脚本文件替换第一页面原有的脚本文件后,渲染的第二页面与第一页面相比,标题发生了变化,但是在渲染第二页面时,不会触发客户端重新向目标服务器发送包括第二脚本更新地址的第二脚本获取请求的操作。
本申请实施例通过接收目标服务器发送的第一页面,从第一页面包括的第一脚本中提取第二脚本的源地址,在第二脚本的源地址中添加请求参数,获得第二脚本更新地址,向目标服务器发送包括第二脚本更新地址的第二脚本获取请求,并接收目标服务器返回的第二脚本,根据第二脚本对第一页面进行修改,获得第二页面,渲染第二页面。通过在第一页面中增加第一脚本,当客户端在获取到第一页面时,可相应获取到第一脚本,从第一脚本中提取第二脚本的源地址,并在第二脚本的源地址中添加请求参数,获得第二脚本更新地址,以获取源服务器中最新的第二脚本,根据源服务器中最新的第二脚本对第一页面进行修改获得第二页面并进行渲染,当需要对第一页面进行修改时,只需更新源服务器中的第二脚本,就可达到所有页面统一修改的目的。
由于第二脚本仅仅是一个补丁文件,那么更新时不是对整个页面进行更新,而只需更新第二脚本,其发布的文件数量变少,内容也变少,能够降低发布时间,提高发布成功率。
并且,由于CDN服务器对于每个第二脚本获取请求中的第二脚本更新地址,都认为其是初次接收到的地址,按照CDN服务器原有逻辑,对于新的地址,需要向该地址所在的源服务器请求对应内容进行缓存,因此CDN服务器每次都可以获取最新的第二脚本返回给客户端,客户端通过第二脚本即可使每次展示的页面都是最新的页面,该种方式,并未修改CDN服务器的规则,还是在CDN原有规则下进行的操作,对CDN而言,也不增加CDN规则的维护,不增加网站的可维护性
实施例三
本申请实施例从目标服务器侧进行描述。
参照图6,示出了本申请实施例的另一种页面处理方法的流程图,具体可以包括如下步骤:
步骤601,向客户端发送第一页面;所述第一页面中包括第一脚本。
在本申请实施例中,当用户在客户端中需要访问第一页面时,首先,客户端需要向目标服务器发送页面请求,目标服务器接收客户端发送的页面请求,然后该页面请求对应的第一页面是否有缓存,当目标服务器中缓存第一页面时,直接向客户端返回缓存的第一页面,当目标服务器中没有缓存第一页面时,目标服务器需要向源服务器发送针对第一页面的页面请求,源服务器根据针对第一页面的页面请求向目标服务器返回第一页面,目标服务器在接收到第一页面后,缓存该第一页面,并将第一页面返回至客户端。
在通过CMS生成第一页面时,在第一页面的HTML文档的底部内嵌第一脚本,使得第一页面中包括第一脚本。
步骤602,接收所述客户端根据第一脚本发送的第二脚本获取请求;所述第二脚本获取请求包括第二脚本更新地址。
在本申请实施例中,客户端在接收到第一页面后,提取第一页面中的第一脚本,根据第一脚本,确定第二脚本更新地址,向目标服务器发送包括第二脚本更新地址的第二脚本获取请求,目标服务器则接收客户端根据第一脚本发送的第二脚本获取请求。
步骤603,根据所述第二脚本更新地址从源服务器获取第二脚本。
在本申请实施例中,目标服务器在接收到第二脚本获取请求后,根据第二脚本获取请求中的第二脚本更新地址从源服务器获取第二脚本。
具体的,从所述第二脚本获取请求中提取所述第二脚本更新地址;向所述源服务器发送包括所述第二脚本更新地址的脚本缓存请求;接收所述源服务器根据所述脚本缓存请求中的第二脚本更新地址返回的第二脚本。
目标服务器在接收到客户端发送的第二脚本获取请求后,从第二脚本获取请求中提取第二脚本更新地址,向源服务器发送包括第二脚本更新地址的脚本缓存请求,源服务器接收目标服务器发送的包括第二脚本更新地址的脚本缓存请求,根据第二脚本更新地址提取第二脚本,具体的,是根据第二脚本更新地址中的第二脚本的源地址提取第二脚本的,并将第二脚本返回至目标服务器,目标服务器则接收源服务器根据脚本缓存请求中的第二脚本更新地址返回的第二脚本。
其中,第二脚本存储于源服务器中,第二脚本的更新操作在源服务器中进行;源服务器中仅存储有一个最新的第二脚本。
步骤604,向所述客户端发送所述第二脚本。
在本申请实施例中,目标服务器在接收到源服务器返回的第二脚本后,向客户端返回第二脚本,客户端在接收到第二脚本后,根据第二脚本对第一页面进行修改,获得第二页面。
需要说明的是,由于客户端每次获取到的第二脚本都是源服务器中最新的第二脚本,且目标服务器在从源服务器中获取第二脚本时,都会缓存第二脚本,为了防止目标服务器中缓存的第二脚本的数量过多影响目标服务器的性能,因此,目标服务器还执行以下步骤:
缓存所述第二脚本;判断所述缓存的第二脚本未被获取的时间周期是否大于阈值;如果大于阈值,则删除所述缓存的第二脚本。
目标服务器判断缓存的第二脚本未被获取的时间周期是否大于阈值,当缓存的第二脚本未被获取的时间周期大于阈值时,删除缓存的第二脚本,当缓存的第二脚本未被获取的时间周期小于或等于阈值时,则不进行任何操作。
例如,目标服务器中缓存的第二脚本包括J11、J12和J13,且阈值为30天,第二脚本J11未被获取的时间周期为15天,第二脚本J12未被获取的时间周期为20天,第二脚本J13未被获取的时间周期为40天,则删除第二脚本J13。
本申请实施例通过向客户端发送第一页面,接收客户端根据第一脚本发送的第二脚本获取请求,第二脚本获取请求包括第二脚本更新地址,根据第二脚本更新地址从源服务器获取第二脚本,向客户端发送第二脚本。通过在第一页面中增加第一脚本,当客户端在获取到第一页面时,可相应获取到第一脚本,根据第一脚本确定第二脚本更新地址,以获取源服务器中的第二脚本,根据源服务器中的第二脚本对第一页面进行修改,当需要对第一页面进行修改时,只需更新源服务器中的第二脚本,就可达到所有页面统一修改的目的。
由于第二脚本仅仅是一个补丁文件,那么更新时不是对整个页面进行更新,而只需更新第二脚本,其发布的文件数量变少,内容也变少,能够降低发布时间,提高发布成功率。
并且,客户端每次获取到的第二脚本都是CDN服务器从源服务器中获取的,只需对源服务器中存储的第二脚本进行更新,客户端在获取到源服务器中最新的第二脚本后,就可对第一页面进行修改,该种方式,并未修改CDN服务器的规则,还是在CDN原有规则下进行的操作,对CDN而言,也不增加CDN规则的维护,不增加网站的可维护性。
实施例四
本申请实施例从源服务器侧进行描述。
参照图7,示出了本申请实施例的再一种页面处理方法的流程图,具体可以包括如下步骤:
步骤701,向目标服务器发送第一页面;所述第一页面中包括第一脚本,所述第一脚本用于使客户端执行并生成第二脚本更新地址。
在本申请实施例中,当用户在客户端中需要访问第一页面时,首先需要向目标服务器发送针对第一页面的页面请求,目标服务器在接收到客户端发送的针对第一页面的页面请求后,确定没有缓存该第一页面时,向源服务器发送针对第一页面的页面请求,源服务器根据针对第一页面的页面请求向目标服务器返回第一页面。
其中,第一页面中包括第一脚本,第一脚本用于使客户端执行并生成第二脚本更新地址。
客户端在接收到第一页面后,提取第一页面中的第一脚本,根据第一脚本确定第二脚本更新地址。
在本发明一种优选的实施例中,还包括:接收所述目标服务器发送的包括第二脚本更新地址的脚本缓存请求;根据所述脚本缓存请求中的第二脚本更新地址向所述目标服务器返回第二脚本。
客户端在获得第二脚本更新地址后,向目标服务器发送包括第二脚本更新地址的第二脚本获取请求,目标服务器在接收到第二脚本获取请求后,从第二脚本获取请求中提取第二脚本更新地址,向源服务器发送包括第二脚本更新地址的脚本缓存请求,源服务器接收目标服务器发送的包括第二脚本更新地址的脚本缓存请求,根据脚本缓存请求中的第二脚本更新地址向目标服务器返回第二脚本,具体的,是根据第二脚本更新地址中的第二脚本的源地址提取源服务器中存储的最新的第二脚本,目标服务器接收源服务器返回的第二脚本,向客户端返回第二脚本,客户端在接收到第二脚本后,根据第二脚本对第一页面进行修改,获得第二页面。
本申请实施例通过向目标服务器发送第一页面,第一页面中包括第一脚本,,第一脚本用于使客户端执行并生成第二脚本更新地址。通过在第一页面中增加第一脚本,当客户端在获取到第一页面时,可相应获取到第一脚本,根据第一脚本确定第二脚本更新地址,以获取源服务器中的第二脚本,根据源服务器中的第二脚本对第一页面进行修改,当需要对第一页面进行修改时,只需更新源服务器中的第二脚本,就可达到所有页面统一修改的目的。
由于第二脚本仅仅是一个补丁文件,那么更新时不是对整个页面进行更新,而只需更新第二脚本,其发布的文件数量变少,内容也变少,能够降低发布时间,提高发布成功率。
并且,客户端每次获取到的第二脚本都是CDN服务器从源服务器中获取的,只需对源服务器中存储的第二脚本进行更新,客户端在获取到源服务器中最新的第二脚本后,就可对第一页面进行修改,该种方式,并未修改CDN服务器的规则,还是在CDN原有规则下进行的操作,对CDN而言,也不增加CDN规则的维护,不增加网站的可维护性。
实施例五
参照图8,示出了本申请实施例的一种页面处理装置的结构图,主要应用于客户端,该装置800具体可以包括如下模块:
第一页面接收模块801,用于接收目标服务器发送的第一页面;所述第一页面中包括第一脚本。
更新地址确定模块802,用于根据所述第一脚本,确定第二脚本更新地址。
第二脚本接收模块803,用于向所述目标服务器发送包括所述第二脚本更新地址的第二脚本获取请求,并接收所述目标服务器返回的第二脚本;所述第二脚本为所述目标服务器根据所述第二脚本更新地址从源服务器获取。
修改模块804,用于根据所述第二脚本对所述第一页面进行修改,获得第二页面。
可选的,所述更新地址确定模块802,包括:
源地址提取子模块,用于从所述第一脚本中提取第二脚本的源地址;
请求参数添加子模块,用于在所述第二脚本的源地址中添加请求参数,获得所述第二脚本更新地址。
可选的,所述请求参数为时间戳;所述请求参数添加子模块,包括:
时间戳确定单元,用于确定最新的时间戳;
时间戳添加单元,用于在所述第二脚本的源地址中添加所述时间戳,获得所述第二脚本更新地址。
可选的,所述请求参数为所述第一页面的访问总次数;所述请求参数添加子模块,包括:
访问总次数获取单元,用于从所述目标服务器获取所述第一页面的访问总次数;
访问总次数添加单元,用于在所述第二脚本的源地址中添加所述访问总次数,获得所述第二脚本更新地址。
可选的,所述修改模块804,包括:
文档修改子模块,用于根据所述第二脚本对所述第一页面的HTML文档进行修改,获得所述第二页面;
其中,所述对所述第一页面的HTML文档进行修改包括:在所述HTML文档中增加新的代码、删除所述HTML文档中原有的代码以及对所述HTML文档中原有的代码进行替换中的一个或多个。
可选的,所述修改模块804,包括:
第一CSS文件获取子模块,用于根据所述第二脚本获取第一CSS文件;
CSS文件替换子模块,用于使用所述第一CSS文件替换所述第一页面原有的第二CSS文件,获得所述第二页面。
可选的,所述修改模块804,包括:
第一脚本文件获取子模块,用于根据所述第二脚本获取第一脚本文件;
脚本文件替换子模块,用于使用所述第一脚本文件替换所述第一页面原有的第二脚本文件,获得所述第二页面。
可选的,所述装置800,还包括:
渲染模块,用于渲染所述第二页面。
可选的,所述第二脚本存储于所述源服务器中,所述第二脚本的更新操作在所述源服务器中进行。
本申请实施例通过接收目标服务器发送的第一页面,第一页面中包括第一脚本,根据第一脚本,确定第二脚本更新地址,向目标服务器发送包括第二脚本更新地址的第二脚本获取请求,并接收目标服务器返回的第二脚本,第二脚本为目标服务器根据第二脚本更新地址从源服务器获取,根据第二脚本对第一页面进行修改,获得第二页面。通过在第一页面中增加第一脚本,当客户端在获取到第一页面时,可相应获取到第一脚本,根据第一脚本确定第二脚本更新地址,以获取源服务器中的第二脚本,根据源服务器中的第二脚本对第一页面进行修改,当需要对第一页面进行修改时,只需更新源服务器中的第二脚本,就可达到所有页面统一修改的目的。
由于第二脚本仅仅是一个补丁文件,那么更新时不是对整个页面进行更新,而只需更新第二脚本,其发布的文件数量变少,内容也变少,能够降低发布时间,提高发布成功率。
并且,客户端每次获取到的第二脚本都是CDN服务器从源服务器中获取的,只需对源服务器中存储的第二脚本进行更新,客户端在获取到源服务器中最新的第二脚本后,就可对第一页面进行修改,该种方式,并未修改CDN服务器的规则,还是在CDN原有规则下进行的操作,对CDN而言,也不增加CDN规则的维护,不增加网站的可维护性。
实施例六
参照图9,示出了本申请实施例的另一种页面处理装置的结构图,主要应用于目标服务器,该装置900具体可以包括如下模块:
第一页面第一发送模块901,用于向客户端发送第一页面;所述第一页面中包括第一脚本。
第二脚本获取请求接收模块902,用于接收所述客户端根据第一脚本发送的第二脚本获取请求;所述第二脚本获取请求包括第二脚本更新地址。
第二脚本获取模块903,用于根据所述第二脚本更新地址从源服务器获取第二脚本。
第二脚本发送模块904,用于向所述客户端发送所述第二脚本。
可选的,所述第二脚本获取模块903,包括:
第二脚本更新地址提取子模块,用于从所述第二脚本获取请求中提取所述第二脚本更新地址;
脚本缓存请求发送子模块,用于向所述源服务器发送包括所述第二脚本更新地址的脚本缓存请求;
第二脚本接收子模块,用于接收所述源服务器根据所述脚本缓存请求中的第二脚本更新地址返回的第二脚本。
可选的,所述装置900,还包括:
第二脚本缓存模块,用于缓存所述第二脚本;
判断模块,用于判断所述缓存的第二脚本未被获取的时间周期是否大于阈值;
删除模块,用于如果大于阈值,则删除所述缓存的第二脚本。
可选的,所述第二脚本存储于所述源服务器中,所述第二脚本的更新操作在所述源服务器中进行。
本申请实施例通过向客户端发送第一页面,接收客户端根据第一脚本发送的第二脚本获取请求,第二脚本获取请求包括第二脚本更新地址,根据第二脚本更新地址从源服务器获取第二脚本,向客户端发送第二脚本。通过在第一页面中增加第一脚本,当客户端在获取到第一页面时,可相应获取到第一脚本,根据第一脚本确定第二脚本更新地址,以获取源服务器中的第二脚本,根据源服务器中的第二脚本对第一页面进行修改,当需要对第一页面进行修改时,只需更新源服务器中的第二脚本,就可达到所有页面统一修改的目的。
由于第二脚本仅仅是一个补丁文件,那么更新时不是对整个页面进行更新,而只需更新第二脚本,其发布的文件数量变少,内容也变少,能够降低发布时间,提高发布成功率。
并且,客户端每次获取到的第二脚本都是CDN服务器从源服务器中获取的,只需对源服务器中存储的第二脚本进行更新,客户端在获取到源服务器中最新的第二脚本后,就可对第一页面进行修改,该种方式,并未修改CDN服务器的规则,还是在CDN原有规则下进行的操作,对CDN而言,也不增加CDN规则的维护,不增加网站的可维护性。
实施例七
参照图10,示出了本申请实施例的再一种页面处理装置的结构图,主要应用于源服务器,该装置1000具体可以包括如下模块:
第一页面第二发送模块1001,用于向目标服务器发送第一页面;所述第一页面中包括第一脚本,所述第一脚本用于使客户端执行并生成第二脚本更新地址。
可选的,所述装置1000,还包括:
脚本缓存请求接收模块,用于接收所述目标服务器发送的包括第二脚本更新地址的脚本缓存请求;
第二脚本返回模块,用于根据所述脚本缓存请求中的第二脚本更新地址向所述目标服务器返回第二脚本。
本申请实施例通过向目标服务器发送第一页面,第一页面中包括第一脚本,,第一脚本用于使客户端执行并生成第二脚本更新地址。通过在第一页面中增加第一脚本,当客户端在获取到第一页面时,可相应获取到第一脚本,根据第一脚本确定第二脚本更新地址,以获取源服务器中的第二脚本,根据源服务器中的第二脚本对第一页面进行修改,当需要对第一页面进行修改时,只需更新源服务器中的第二脚本,就可达到所有页面统一修改的目的。
由于第二脚本仅仅是一个补丁文件,那么更新时不是对整个页面进行更新,而只需更新第二脚本,其发布的文件数量变少,内容也变少,能够降低发布时间,提高发布成功率。
并且,客户端每次获取到的第二脚本都是CDN服务器从源服务器中获取的,只需对源服务器中存储的第二脚本进行更新,客户端在获取到源服务器中最新的第二脚本后,就可对第一页面进行修改,该种方式,并未修改CDN服务器的规则,还是在CDN原有规则下进行的操作,对CDN而言,也不增加CDN规则的维护,不增加网站的可维护性。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
图11是本申请实施例提供的一种客户端的结构示意图。参见图11,客户端1100可以用于实施上述实施例一和实施例二中提供的页面处理方法。该客户端1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)1122(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1132和存储介质1130可以是短暂存储的或持久存储的。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1122可以设置为与存储介质1130通信,在客户端1100上执行存储介质1130中的一系列指令操作。
客户端1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158,一个或一个以上键盘1156,和/或,一个或一个以上操作系统1141,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。其中,中央处理器1122可以在客户端1100上执行以下操作的指令:
接收目标服务器发送的第一页面;所述第一页面中包括第一脚本;
根据所述第一脚本,确定第二脚本更新地址;
向所述目标服务器发送包括所述第二脚本更新地址的第二脚本获取请求,并接收所述目标服务器返回的第二脚本;所述第二脚本为所述目标服务器根据所述第二脚本更新地址从源服务器获取;
根据所述第二脚本对所述第一页面进行修改,获得第二页面。
本申请实施例还提供一种目标服务器,目标服务器可以用于实施上述实施例三中提供的页面处理方法。
本申请实施例另外提供了一种源服务器,源服务器可以用于实施上述实施例四中提供的页面处理方法。
该目标服务器和源服务器的具体结构可以参照图11所示的客户端1100的结构示意图,不同之处在于,目标服务器的中央处理器和客户端1100的中央处理器执行的操作指令不同,其执行目标服务器侧的方法,源服务器的中央处理器和客户端1100的中央处理器执行的操作指令也不同,其执行源服务器侧的方法。
本申请提供一种装置,其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行一种页面处理方法。
本申请还提供一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行一种页面处理方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种页面处理方法及装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (32)

1.一种页面处理方法,应用于客户端,其特征在于,包括:
接收目标服务器发送的第一页面;所述第一页面中包括第一脚本;
根据所述第一脚本,确定第二脚本更新地址;
向所述目标服务器发送包括所述第二脚本更新地址的第二脚本获取请求,并接收所述目标服务器返回的第二脚本;所述第二脚本为所述目标服务器根据所述第二脚本更新地址从源服务器获取;
根据所述第二脚本对所述第一页面进行修改,获得第二页面。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一脚本,确定第二脚本更新地址的步骤,包括:
从所述第一脚本中提取第二脚本的源地址;
在所述第二脚本的源地址中添加请求参数,获得所述第二脚本更新地址。
3.根据权利要求2所述的方法,其特征在于,所述请求参数为时间戳;所述在所述第二脚本的源地址中添加请求参数,获得所述第二脚本更新地址的步骤,包括:
确定最新的时间戳;
在所述第二脚本的源地址中添加所述时间戳,获得所述第二脚本更新地址。
4.根据权利要求2所述的方法,其特征在于,所述请求参数为所述第一页面的访问总次数;所述在所述第二脚本的源地址中添加请求参数,获得所述第二脚本更新地址的步骤,还包括:
从所述目标服务器获取所述第一页面的访问总次数;
在所述第二脚本的源地址中添加所述访问总次数,获得所述第二脚本更新地址。
5.根据权利要求1所述的方法,其特征在于,所述根据所述第二脚本对所述第一页面进行修改,获得第二页面的步骤,包括:
根据所述第二脚本对所述第一页面的HTML文档进行修改,获得所述第二页面;
其中,所述对所述第一页面的HTML文档进行修改包括:在所述HTML文档中增加新的代码、删除所述HTML文档中原有的代码以及对所述HTML文档中原有的代码进行替换中的一个或多个。
6.根据权利要求1所述的方法,其特征在于,所述根据所述第二脚本对所述第一页面进行修改,获得第二页面的步骤,包括:
根据所述第二脚本获取第一CSS文件;
使用所述第一CSS文件替换所述第一页面原有的第二CSS文件,获得所述第二页面。
7.根据权利要求1所述的方法,其特征在于,所述根据所述第二脚本对所述第一页面进行修改,获得第二页面的步骤,包括:
根据所述第二脚本获取第一脚本文件;
使用所述第一脚本文件替换所述第一页面原有的第二脚本文件,获得所述第二页面。
8.根据权利要求1所述的方法,其特征在于,在所述根据所述第二脚本对所述第一页面进行修改,获得第二页面的步骤之后,还包括:
渲染所述第二页面。
9.根据权利要求1所述的方法,其特征在于,所述第二脚本存储于所述源服务器中,所述第二脚本的更新操作在所述源服务器中进行。
10.一种页面处理方法,应用于目标服务器,其特征在于,包括:
向客户端发送第一页面;所述第一页面中包括第一脚本;
接收所述客户端根据第一脚本发送的第二脚本获取请求;所述第二脚本获取请求包括第二脚本更新地址;
根据所述第二脚本更新地址从源服务器获取第二脚本;
向所述客户端发送所述第二脚本。
11.根据权利要求10所述的方法,其特征在于,所述根据所述第二脚本更新地址从源服务器获取第二脚本的步骤,包括:
从所述第二脚本获取请求中提取所述第二脚本更新地址;
向所述源服务器发送包括所述第二脚本更新地址的脚本缓存请求;
接收所述源服务器根据所述脚本缓存请求中的第二脚本更新地址返回的第二脚本。
12.根据权利要求11所述的方法,其特征在于,还包括:
缓存所述第二脚本;
判断所述缓存的第二脚本未被获取的时间周期是否大于阈值;
如果大于阈值,则删除所述缓存的第二脚本。
13.根据权利要求10所述的方法,其特征在于,所述第二脚本存储于所述源服务器中,所述第二脚本的更新操作在所述源服务器中进行。
14.一种页面处理方法,应用于源服务器,其特征在于,包括:
向目标服务器发送第一页面;所述第一页面中包括第一脚本,所述第一脚本用于使客户端执行并生成第二脚本更新地址。
15.根据权利要求14所述的方法,其特征在于,还包括:
接收所述目标服务器发送的包括第二脚本更新地址的脚本缓存请求;
根据所述脚本缓存请求中的第二脚本更新地址向所述目标服务器返回第二脚本。
16.一种页面处理装置,应用于客户端,其特征在于,包括:
第一页面接收模块,用于接收目标服务器发送的第一页面;所述第一页面中包括第一脚本;
更新地址确定模块,用于根据所述第一脚本,确定第二脚本更新地址;
第二脚本接收模块,用于向所述目标服务器发送包括所述第二脚本更新地址的第二脚本获取请求,并接收所述目标服务器返回的第二脚本;所述第二脚本为所述目标服务器根据所述第二脚本更新地址从源服务器获取;
修改模块,用于根据所述第二脚本对所述第一页面进行修改,获得第二页面。
17.根据权利要求16所述的装置,其特征在于,所述更新地址确定模块,包括:
源地址提取子模块,用于从所述第一脚本中提取第二脚本的源地址;
请求参数添加子模块,用于在所述第二脚本的源地址中添加请求参数,获得所述第二脚本更新地址。
18.根据权利要求17所述的装置,其特征在于,所述请求参数为时间戳;所述请求参数添加子模块,包括:
时间戳确定单元,用于确定最新的时间戳;
时间戳添加单元,用于在所述第二脚本的源地址中添加所述时间戳,获得所述第二脚本更新地址。
19.根据权利要求17所述的装置,其特征在于,所述请求参数为所述第一页面的访问总次数;所述请求参数添加子模块,包括:
访问总次数获取单元,用于从所述目标服务器获取所述第一页面的访问总次数;
访问总次数添加单元,用于在所述第二脚本的源地址中添加所述访问总次数,获得所述第二脚本更新地址。
20.根据权利要求16所述的装置,其特征在于,所述修改模块,包括:
文档修改子模块,用于根据所述第二脚本对所述第一页面的HTML文档进行修改,获得所述第二页面;
其中,所述对所述第一页面的HTML文档进行修改包括:在所述HTML文档中增加新的代码、删除所述HTML文档中原有的代码以及对所述HTML文档中原有的代码进行替换中的一个或多个。
21.根据权利要求16所述的装置,其特征在于,所述修改模块,包括:
第一CSS文件获取子模块,用于根据所述第二脚本获取第一CSS文件;
CSS文件替换子模块,用于使用所述第一CSS文件替换所述第一页面原有的第二CSS文件,获得所述第二页面。
22.根据权利要求16所述的装置,其特征在于,所述修改模块,包括:
第一脚本文件获取子模块,用于根据所述第二脚本获取第一脚本文件;
脚本文件替换子模块,用于使用所述第一脚本文件替换所述第一页面原有的第二脚本文件,获得所述第二页面。
23.根据权利要求16所述的装置,其特征在于,还包括:
渲染模块,用于渲染所述第二页面。
24.根据权利要求16所述的装置,其特征在于,所述第二脚本存储于所述源服务器中,所述第二脚本的更新操作在所述源服务器中进行。
25.一种页面处理装置,应用于目标服务器,其特征在于,包括:
第一页面第一发送模块,用于向客户端发送第一页面;所述第一页面中包括第一脚本;
第二脚本获取请求接收模块,用于接收所述客户端根据第一脚本发送的第二脚本获取请求;所述第二脚本获取请求包括第二脚本更新地址;
第二脚本获取模块,用于根据所述第二脚本更新地址从源服务器获取第二脚本;
第二脚本发送模块,用于向所述客户端发送所述第二脚本。
26.根据权利要求25所述的装置,其特征在于,所述第二脚本获取模块,包括:
第二脚本更新地址提取子模块,用于从所述第二脚本获取请求中提取所述第二脚本更新地址;
脚本缓存请求发送子模块,用于向所述源服务器发送包括所述第二脚本更新地址的脚本缓存请求;
第二脚本接收子模块,用于接收所述源服务器根据所述脚本缓存请求中的第二脚本更新地址返回的第二脚本。
27.根据权利要求26所述的装置,其特征在于,还包括:
第二脚本缓存模块,用于缓存所述第二脚本;
判断模块,用于判断所述缓存的第二脚本未被获取的时间周期是否大于阈值;
删除模块,用于如果大于阈值,则删除所述缓存的第二脚本。
28.根据权利要求25所述的装置,其特征在于,所述第二脚本存储于所述源服务器中,所述第二脚本的更新操作在所述源服务器中进行。
29.一种页面处理装置,应用于源服务器,其特征在于,包括:
第一页面第二发送模块,用于向目标服务器发送第一页面;所述第一页面中包括第一脚本,所述第一脚本用于使客户端执行并生成第二脚本更新地址。
30.根据权利要求29所述的装置,其特征在于,还包括:
脚本缓存请求接收模块,用于接收所述目标服务器发送的包括第二脚本更新地址的脚本缓存请求;
第二脚本返回模块,用于根据所述脚本缓存请求中的第二脚本更新地址向所述目标服务器返回第二脚本。
31.一种装置,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行所述指令时,使得所述装置执行如权利要求1-15一个或多个的方法。
32.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行所述指令时,执行如权利要求1-15一个或多个的方法。
CN201810917405.XA 2018-08-13 2018-08-13 一种页面处理方法及装置 Active CN110830537B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810917405.XA CN110830537B (zh) 2018-08-13 2018-08-13 一种页面处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810917405.XA CN110830537B (zh) 2018-08-13 2018-08-13 一种页面处理方法及装置

Publications (2)

Publication Number Publication Date
CN110830537A true CN110830537A (zh) 2020-02-21
CN110830537B CN110830537B (zh) 2022-05-10

Family

ID=69546869

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810917405.XA Active CN110830537B (zh) 2018-08-13 2018-08-13 一种页面处理方法及装置

Country Status (1)

Country Link
CN (1) CN110830537B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111736926A (zh) * 2020-05-29 2020-10-02 北京慧博科技有限公司 在Java Web程序中低侵入式使用CDN加速服务的方法以及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110228763A1 (en) * 2010-03-17 2011-09-22 Samsung Electronics Co., Ltd. Method and apparatus for accessing services of a device
CN104392008A (zh) * 2014-12-19 2015-03-04 北京奇虎科技有限公司 网页数据获取方法、浏览器客户端及cdn服务器
JP2016091449A (ja) * 2014-11-10 2016-05-23 富士通株式会社 ローカルストレージ同期方法、ローカルストレージ同期装置およびローカルストレージ同期プログラム
CN106933890A (zh) * 2015-12-31 2017-07-07 华为技术有限公司 一种静态化页面的处理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110228763A1 (en) * 2010-03-17 2011-09-22 Samsung Electronics Co., Ltd. Method and apparatus for accessing services of a device
JP2016091449A (ja) * 2014-11-10 2016-05-23 富士通株式会社 ローカルストレージ同期方法、ローカルストレージ同期装置およびローカルストレージ同期プログラム
CN104392008A (zh) * 2014-12-19 2015-03-04 北京奇虎科技有限公司 网页数据获取方法、浏览器客户端及cdn服务器
CN106933890A (zh) * 2015-12-31 2017-07-07 华为技术有限公司 一种静态化页面的处理方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HUI ZHAO ET AL: ""A Web page malicious script detection method inspired by the process of immunoglobulin secretion"", 《2010 INTERNATIONAL SYMPOSIUM ON INTELLIGENCE INFORMATION PROCESSING AND TRUSTED COMPUTING》 *
张晓明等: ""一种AJAX结合CGI的嵌入式瘦Web服务器的研究"", 《信息技术》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111736926A (zh) * 2020-05-29 2020-10-02 北京慧博科技有限公司 在Java Web程序中低侵入式使用CDN加速服务的方法以及系统

Also Published As

Publication number Publication date
CN110830537B (zh) 2022-05-10

Similar Documents

Publication Publication Date Title
US9641591B1 (en) Modifying web content at a client
US9509764B1 (en) Updating cached web content
CN106575298B (zh) 包含动态内容和陈旧内容的网站的快速呈现
US9195638B2 (en) Method and apparatus of processing nested fragment caching of a web page
CN105095280B (zh) 一种浏览器缓存方法和装置
CA2839006C (en) Methods for making ajax web applications bookmarkable and crawlable and devices thereof
US9401949B1 (en) Client web content cache purge
US10009439B1 (en) Cache preloading
US10291738B1 (en) Speculative prefetch of resources across page loads
KR102151457B1 (ko) 통신 시스템에서 페이지 로딩 시간 단축 방법 및 장치
US10440140B2 (en) Browser cache management
WO2013041001A1 (zh) 一种访问网页的方法、装置、浏览器以及程序
CN109376318B (zh) 一种页面加载方法、计算机可读存储介质及终端设备
US9531829B1 (en) Smart hierarchical cache using HTML5 storage APIs
US10178147B1 (en) Client-side location address translation
CN110866204A (zh) 一种页面处理方法及装置
US10320934B1 (en) One-time cache
CN109634753B (zh) 切换浏览器内核的数据处理方法、装置、终端和存储介质
CN106933817B (zh) 一种基于b/s结构的内容查询方法及设备、系统
CN110830537B (zh) 一种页面处理方法及装置
CN108062352B (zh) 网页页面缓存处理方法和移动终端设备和介质产品
US9881101B2 (en) Dynamic file retrieving for web page loading
US8429247B1 (en) Method and apparatus for fulfilling browser requests from a local cache
CN106649792B (zh) 一种页面访问方法及装置
CN103838839B (zh) 一种ie内核浏览器的页面下载控制方法和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240228

Address after: 51 Belarusian Road, Singapore

Patentee after: Alibaba Singapore Holdings Ltd.

Country or region after: Singapore

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: ALIBABA GROUP HOLDING Ltd.

Country or region before: Cayman Islands