CN105159686B - 一种网站页面开发方法和装置 - Google Patents

一种网站页面开发方法和装置 Download PDF

Info

Publication number
CN105159686B
CN105159686B CN201510628616.8A CN201510628616A CN105159686B CN 105159686 B CN105159686 B CN 105159686B CN 201510628616 A CN201510628616 A CN 201510628616A CN 105159686 B CN105159686 B CN 105159686B
Authority
CN
China
Prior art keywords
page
module
script
modules
declared
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
Application number
CN201510628616.8A
Other languages
English (en)
Other versions
CN105159686A (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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co 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 Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201510628616.8A priority Critical patent/CN105159686B/zh
Publication of CN105159686A publication Critical patent/CN105159686A/zh
Application granted granted Critical
Publication of CN105159686B publication Critical patent/CN105159686B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种网站页面开发方法和装置。方法包括:对于待开发的一个页面,将该页面划分为多个模块;对于划分的每个模块,开发生成该模块,以及声明该模块所依赖的其他模块;在配置文件中声明该页面的入口模块;以所述配置文件中声明的入口模块为起始节点,根据各模块中所声明的依赖关系,获取到该页面的全部内容,对于获取到该页面的全部内容进行编译处理生成该页面。该技术方案能够有序实现网站页面所需的功能,解决了依赖关系声明不确切的问题,能够高效、迅速地开发网站页面。

Description

一种网站页面开发方法和装置
技术领域
本发明涉及互联网技术领域,具体涉及一种网站页面开发方法和装置。
背景技术
在互联网技术飞速发展的今天,用户浏览各类网页的需求也日益增多,现有的网站页面开发方法也在不断更新。而一个页面需要向用户提供不同的功能,各功能的开发需要将相关资源进行编译,有些功能还存在相互依赖的关系。
例如,存在如下场景:某网站的一个页面包括功能1、功能2、功能3、功能4,其中只有功能2需要依赖资源a进行实现。现有技术通常通过构建配置文件来声明该页面依赖的所有资源,则在该页面的配置文件中声明需要依赖资源a。当网站更换了一批开发人员后,如果需要将功能2下线,此时资源a已不再是该页面依赖的资源,而新更换的开发人员阅读配置文件不能确定资源a是否不再需要,只能将其加以保留。因此,需要对网站页面的功能进行合理有序的开发。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的网站页面开发方法和装置。
依据本发明的一个方面,提供了一种网站页面开发方法,包括:对于待开发的一个页面,将该页面划分为多个模块;对于划分的每个模块,开发生成该模块,以及声明该模块所依赖的其他模块;在配置文件中声明该页面的入口模块;以所述配置文件中声明的入口模块为起始节点,根据各模块中所声明的依赖关系,获取到该页面的全部内容,对于获取到该页面的全部内容进行编译处理生成该页面。
可选地,所述对于待开发的一个页面,将该页面划分为多个模块包括:根据该页面需要实现的不同功能,划分为一个或多个UI类模块,和/或,一个或多个非UI类模块。
可选地,所述生成该模块包括:生成该模块的JS脚本以及获取该JS脚本所需引用的静态资源;所述声明该模块所依赖的其他模块包括:声明该模块的JS脚本所依赖的其他JS脚本。
可选地,所述以所述配置文件中声明的入口模块为起始节点,根据各模块中所声明的依赖关系,获取到该页面的全部内容包括:以所述配置文件中声明的入口模块的JS脚本为起始点,根据各个模块中所声明的JS脚本间的依赖关系,获取该页面的各个模块的JS脚本,以及获取该页面的每个JS脚本所需引用的静态资源。
可选地,所述对于获取到该页面的全部内容进行编译处理包括:将该页面的各模块中所包含的JS脚本归为一类放入编译文件中;以及将该页面的各模块中的各JS脚本所需引用的静态资源,按照不同的文件类别分别归类放入编译文件中。
可选地,所述对于获取到该页面的全部内容进行编译处理还包括:为每个JS脚本和每个静态资源,都分别生成唯一的名称;将每个JS脚本/静态资源都用其唯一的名称进行重命名,并且在声明的依赖关系中都用相应的唯一的名称替换原来的名称。
可选地,为每个JS脚本和每个静态资源,都分别生成唯一的名称包括:对于一个JS脚本/静态资源,取该JS脚本/静态资源的内容计算MD5值,将所计算出的MD5值作为该JS脚本/静态资源的唯一的名称;或者,对于一个JS脚本/静态资源,计算其相对于指定根目录的相对路径的MD5值;将所计算出的MD5值作为该JS脚本/静态资源的唯一的名称。
依据本发明的另一方面,提供了一种网站页面开发装置,包括:页面划分单元,适于对于待开发的一个页面,将该页面划分为多个模块;开发处理单元,适于对于划分的每个模块,开发生成该模块,以及声明该模块所依赖的其他模块;在配置文件中声明该页面的入口模块;编译处理单元,适于以所述配置文件中声明的入口模块为起始节点,根据各模块中所声明的依赖关系,获取到该页面的全部内容,对于获取到该页面的全部内容进行编译处理生成该页面。
可选地,所述页面划分单元,适于根据该页面需要实现的不同功能,划分为一个或多个UI类模块,和/或,一个或多个非UI类模块。
可选地,所述开发处理单元,具体适于对于划分的每个模块,生成该模块的JS脚本以及获取该JS脚本所需引用的静态资源,以及声明该模块的JS脚本所依赖的其他JS脚本。
可选地,所述编译处理单元,适于以所述配置文件中声明的入口模块的JS脚本为起始点,根据各个模块中所声明的JS脚本间的依赖关系,获取该页面的各个模块的JS脚本,以及获取该页面的每个JS脚本所需引用的静态资源。
可选地,所述编译处理单元,适于将该页面的各模块中所包含的JS脚本归为一类放入编译文件中;以及将该页面的各模块中的各JS脚本所需引用的静态资源,按照不同的文件类别分别归类放入编译文件中。
可选地,所述编译处理单元,还适于为每个JS脚本和每个静态资源,都分别生成唯一的名称;将每个JS脚本/静态资源都用其唯一的名称进行重命名,并且在声明的依赖关系中都用相应的唯一的名称替换原来的名称。
可选地,所述编译处理单元,适于对于一个JS脚本/静态资源,取该JS脚本/静态资源的内容计算MD5值,将所计算出的MD5值作为该JS脚本/静态资源的唯一的名称;或者,适于对于一个JS脚本/静态资源,计算其相对于指定根目录的相对路径的MD5值;将所计算出的MD5值作为该JS脚本/静态资源的唯一的名称。
由上述可知,本发明提供的技术方案,将待开发的一个页面划分为多个模块以实现不同功能,对每个模块开发生成,对于模块间存在依赖关系的情况加以声明,并进一步在配置文件中声明该页面的入口模块,还以所述配置文件中声明的入口模块为起始节点,根据各模块中所声明的依赖关系,获取到该页面的全部内容,再对于获取到该页面的全部内容进行编译处理生成该页面。该技术方案能够有序实现网站页面所需的功能,解决了依赖关系声明不确切的问题,能够高效、迅速地开发网站页面。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种网站页面开发方法的流程图;
图2示出了根据本发明一个实施例的一种网站页面开发装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种网站页面开发方法的流程图,如图1所示,该方法包括:
步骤S110,对于待开发的一个页面,将该页面划分为多个模块。
对于向用户呈现的不同功能,由不同的模块来进行实现。例如,在网站某些位置设置广告,在另一些位置提供登录,在又一些位置播放视频等,将这些功能划分给多个模块来进行实现,如登录模块、视频播放模块等。如果对页面进行整体开发,所要维护的文件远远大于维护一个模块的文件,而本步骤使得在页面的维护和开发中都减轻了相关人员的负担。
步骤S120,对于划分的每个模块,开发生成该模块,以及声明该模块所依赖的其他模块。
对于步骤S110中划分出的多个模块进行开发生成,而如果一个模块还依赖于其他模块,则要对其加以声明。例如,页面上存在多个展示类的模块,如登录框、抽奖界面等,但也存在将这些展示类模块加以联系的模块,如播放列表模块,需要根据用户实际在播放视频、音乐的展示模块的操作来进行内容的更改。又例如,页面包括登录功能,但具体的登录入口可能在多个模块中都存在,需要将其串联起来,声明其依赖关系。
步骤S130,在配置文件中声明该页面的入口模块。
步骤S110至步骤S130是网站页面开发过程中需要进行的设计,并不涉及最终编译,该过程状态可以定义为网站页面的开发态。
步骤S140,以配置文件中声明的入口模块为起始节点,根据各模块中所声明的依赖关系,获取到该页面的全部内容,对于获取到该页面的全部内容进行编译处理生成该页面。
例如,在配置文件中声明模块A为入口模块,则在页面开发时,以模块A作为起始节点,根据模块A声明依赖关系获取其所依赖的模块和资源,如模块A依赖模块B和模块C,还需要资源a和资源b,接下来进一步获取模块B和模块C各自的依赖关系,以此类推就可以获取到该页面的全部内容,再将获取到该页面的全部内容进行编译处理,如使用编程语言HTML(Hyper Text Markup Language,超文本标记语言),或样式语言JS(JavaScript)、CSS(Cascading Style Sheets,层叠样式表)可生成该页面。本步骤中编译生成的页面即是所开发的网站页面的最终态。
可见,图1所示的方法,将待开发的一个页面划分为多个模块以实现不同功能,对每个模块开发生成,对于模块间存在依赖关系的情况加以声明,并进一步在配置文件中声明该页面的入口模块,还以配置文件中声明的入口模块为起始节点,根据各模块中所声明的依赖关系,获取到该页面的全部内容,再对于获取到该页面的全部内容进行编译处理生成该页面。该技术方案能够有序实现网站页面所需的功能,解决了依赖关系声明不确切的问题,能够高效、迅速地开发网站页面。
在本发明的一个实施例中,图1所示的方法中,步骤S110对于待开发的一个页面,将该页面划分为多个模块包括:根据该页面需要实现的不同功能,划分为一个或多个UI(User Interface,用户界面)类模块,和/或,一个或多个非UI类模块。
UI类模块是指用户在网站页面中可以直接看到的模块,例如前述实施例中提及的各类展示类模块如登录框等,这些是在网站页面中直接加以呈现的模块。非UI类模块主要完成功能实现的具体逻辑关系,以视频播放功能为例,在网站页面中需要设置可视化的播放界面模块,在具体利用该模块播放视频时,需要记录用户的播放记录、播放列表等信息,同样地在页面上也可以在播放界面模块实现该功能的可视化,但是在用户不可见的后台,实现该功能需要记录用户的观看历史,以及用户手动新增、删除播放列表项等操作,这些数据的管理同样需要模块来进行实现,但由于实现上述功能并不会在网站页面呈现具体的UI,故该类模块属于非UI类模块。设计UI类模块的一个优点是可以对其进行复用,即UI类模块具有通用性。例如网站登录框,在论坛类网站中往往需要用户登录,而实现该功能的后台逻辑可能不同,非UI类模块的复用率较低,但在网页中呈现的UI可以是相同的。尤其是网站的多个页面中都需要设置登录框,为每个页面单独进行开发就会造成资源的浪费。
在本发明的一个实施例中,图1所示的方法中,生成该模块包括:生成该模块的JS脚本以及获取该JS脚本所需引用的静态资源;声明该模块所依赖的其他模块包括:声明该模块的JS脚本所依赖的其他JS脚本。
如前文所述,JS即JavaScript,是网站页面开发时使用的一种样式语言。JS脚本是依据一定的格式编写的可执行文件,又称作宏或批处理文件,通常可以由应用程序临时调用并执行。例如,某网站希望开发页面1,在开发过程中需要设计模块A来实现功能A,则为此编写JS脚本1.js。1.js通常并不能直接实现所需功能,需要引用相应的静态资源如视频、图片等,也可能还要依赖其他模块,而由于模块的实现需要生成对应的JS脚本,则实际上需要声明1.js所依赖的其他JS脚本。
在本发明的一个实施例中,上述方法中,以配置文件中声明的入口模块为起始节点,根据各模块中所声明的依赖关系,获取到该页面的全部内容包括:以配置文件中声明的入口模块的JS脚本为起始点,根据各个模块中所声明的JS脚本间的依赖关系,获取该页面的各个模块的JS脚本,以及获取该页面的每个JS脚本所需引用的静态资源。
例如,指定了入口模块中的1.js为起始点,依据1.js中声明的依赖关系,获取到1.js依赖的JS脚本和资源,如1.jpg,2.jpg,2.js,3.js。接下来需要依据2.js和3.js中声明的依赖关系,获取到其依赖的JS脚本和资源,以此类推,最终获取到该页面依赖的所有JS脚本和JS脚本所需引用的静态资源。
在本发明的一个实施例中,上述方法中,对于获取到该页面的全部内容进行编译处理包括:将该页面的各模块中所包含的JS脚本归为一类放入编译文件中;以及将该页面的各模块中的各JS脚本所需引用的静态资源,按照不同的文件类别分别归类放入编译文件中。
将文件进行分类使得管理更加合理有序,如本方法示出的将各模块中所包含的JS脚本归为一类放入编译文件中,便于统一编译生成页面。类似地,可以将所引用的静态资源如图片归类放入图片文件夹,视频归类放入视频文件夹等,在网站上线及维护过程中可以规范地进行管理。
然而,将同一类别的静态资源放入同一文件夹,可能出现下述情形:在模块A的开发过程中,开发人员将该模块设计为需引用图片1、图片2和图片3,为方便起见分别将其命名为1.jpg,2.jpg,3.jpg。类似地,在模块B的开发过程中,开发人员将该模块设计为需引用图片4、图片5和图片6,但由于该模块仅仅引用了这三幅图片,在本模块的开发过程中依然为方便起见分别将其命名为1.jpg,2.jpg,3.jpg。从而在同一类别的静态资源放入同一文件夹的过程中,会出现同名文件的情况,因此,在本发明的一个实施例中,上述方法中,对于获取到该页面的全部内容进行编译处理还包括:为每个JS脚本和每个静态资源,都分别生成唯一的名称;将每个JS脚本/静态资源都用其唯一的名称进行重命名,并且在声明的依赖关系中都用相应的唯一的名称替换原来的名称。如不将某些文件重命名,则不能保存所有的图片。因此在本实施例中,为每个JS脚本和每个静态资源分别生成唯一的名称,将每个JS脚本/静态资源都用其唯一的名称进行重命名。由于重命名会影与该文件存在依赖关系的JS脚本和静态资源,需要在声明的依赖关系中都用相应的唯一的名称替换原来的名称。
具体地,可以为每个JS脚本和每个静态资源,都分别生成唯一的名称包括:对于一个JS脚本/静态资源,取该JS脚本/静态资源的内容计算MD5值,将所计算出的MD5值作为该JS脚本/静态资源的唯一的名称;或者,对于一个JS脚本/静态资源,计算其相对于指定根目录的相对路径的MD5值;将所计算出的MD5值作为该JS脚本/静态资源的唯一的名称。
如一个JS脚本/静态资源的内容较小,则根据该JS脚本/静态资源的内容计算MD5值可以简单有效地生成与该JS脚本/静态资源对应的唯一文件名。然而对于JS脚本/静态资源内容较大的情况,其生成的MD5值为较长的字符串,不适合将其作为文件名来使用。此时可以采取另一种方案,即指定一个根目录,计算该文件对于该指定根目录的相对路径的MD5值并将其作为自己的文件名。如果不指定根目录,会出现各文件夹路径所对应的根目录不同的情况,比较混乱且易出现问题,指定一个根目录也便于管理和纠错。
图2示出了根据本发明一个实施例的一种网站页面开发装置的结构示意图,如图2所示,网站页面开发装置200包括:
页面划分单元210,适于对于待开发的一个页面,将该页面划分为多个模块。对于向用户呈现的不同功能,由不同的模块来进行实现。例如,在网站某些位置设置广告,在另一些位置提供登录,在又一些位置播放视频等,将这些功能划分给多个模块来进行实现,如登录模块、视频播放模块等。如果对页面进行整体开发,所要维护的文件远远大于维护一个模块的文件,而本步骤使得在页面的维护和开发中都减轻了相关人员的负担。
开发处理单元220,适于对于划分的每个模块,开发生成该模块,以及声明该模块所依赖的其他模块;在配置文件中声明该页面的入口模块。
开发处理单元220对于页面划分单元210划分出的多个模块进行开发生成,而如果一个模块还依赖于其他模块,则要对其加以声明。例如,页面上存在多个展示类的模块,如登录框、抽奖界面等,但也存在将这些展示类模块加以联系的模块,如播放列表模块,需要根据用户实际在播放视频、音乐的展示模块的操作来进行内容的更改。又例如,页面包括登录功能,但具体的登录入口可能在多个模块中都存在,需要将其串联起来,声明其依赖关系。
页面划分单元210和开发处理单元220所完成的是网站页面开发过程中需要进行的设计,并不涉及最终编译,该过程状态可以定义为网站页面的开发态。
编译处理单元230,适于以配置文件中声明的入口模块为起始节点,根据各模块中所声明的依赖关系,获取到该页面的全部内容,对于获取到该页面的全部内容进行编译处理生成该页面。例如,在配置文件中声明模块A为入口模块,则在页面开发时,以模块A作为起始节点,根据模块A声明依赖关系获取其所依赖的模块和资源,如模块A依赖模块B和模块C,还需要资源a和资源b,接下来进一步获取模块B和模块C各自的依赖关系,以此类推就可以获取到该页面的全部内容,再将获取到该页面的全部内容进行编译处理即可生成该页面。由编译处理单元230编译生成的页面即是所开发的网站页面的最终态。
可见,图2所示的装置,将待开发的一个页面划分为多个模块以实现不同功能,对每个模块开发生成,对于模块间存在依赖关系的情况加以声明,并进一步在配置文件中声明该页面的入口模块,还以配置文件中声明的入口模块为起始节点,根据各模块中所声明的依赖关系,获取到该页面的全部内容,再对于获取到该页面的全部内容进行编译处理生成该页面。该技术方案能够有序实现网站页面所需的功能,解决了依赖关系声明不确切的问题,能够高效、迅速地开发网站页面。
在本发明的一个实施例中,图2所示的装置中,页面划分单元210,适于根据该页面需要实现的不同功能,划分为一个或多个UI类模块,和/或,一个或多个非UI类模块。
UI类模块是指用户在网站页面中可以直接看到的模块,例如前述实施例中提及的各类展示类模块如登录框等,这些是在网站页面中直接加以呈现的模块。非UI类模块主要完成功能实现的具体逻辑关系,以视频播放功能为例,在网站页面中需要设置可视化的播放界面模块,在具体利用该模块播放视频时,需要记录用户的播放记录、播放列表等信息,同样地在页面上也可以在播放界面模块实现该功能的可视化,但是在用户不可见的后台,实现该功能需要记录用户的观看历史,以及用户手动新增、删除播放列表项等操作,这些数据的管理同样需要模块来进行实现,但由于实现上述功能并不会在网站页面呈现具体的UI,故该类模块属于非UI类模块。设计UI类模块的一个优点是可以对其进行复用,即UI类模块具有通用性。例如网站登录框,在论坛类网站中往往需要用户登录,而实现该功能的后台逻辑可能不同,非UI类模块的复用率较低,但在网页中呈现的UI可以是相同的。尤其是网站的多个页面中都需要设置登录框,为每个页面单独进行开发就会造成资源的浪费。
在本发明的一个实施例中,图2所示的装置中,开发处理单元220,具体适于对于划分的每个模块,生成该模块的JS脚本以及获取该JS脚本所需引用的静态资源,以及声明该模块的JS脚本所依赖的其他JS脚本。
JS即JavaScript,是网站页面开发时使用的一种脚本语言。JS脚本是依据一定的格式编写的可执行文件,又称作宏或批处理文件,通常可以由应用程序临时调用并执行。例如,某网站希望开发页面1,在开发过程中需要设计模块A来实现功能A,则为此编写JS脚本1.js。1.js通常并不能直接实现所需功能,需要引用相应的静态资源如视频、图片等,也可能还要依赖其他模块,而由于模块的实现需要生成对应的JS脚本,则实际上开发处理单元220需要声明1.js所依赖的其他JS脚本。
在本发明的一个实施例中,上述装置中,编译处理单元230,适于以配置文件中声明的入口模块的JS脚本为起始点,根据各个模块中所声明的JS脚本间的依赖关系,获取该页面的各个模块的JS脚本,以及获取该页面的每个JS脚本所需引用的静态资源。
例如,指定了入口模块中的1.js为起始点,编译处理单元230依据1.js中声明的依赖关系,获取到1.js依赖的JS脚本和资源,如1.jpg,2.jpg,2.js,3.js。接下来需要依据2.js和3.js中声明的依赖关系,获取到其依赖的JS脚本和资源,以此类推,最终获取到该页面依赖的所有JS脚本和JS脚本所需引用的静态资源。
在本发明的一个实施例中,上述装置中,编译处理单元230,适于将该页面的各模块中所包含的JS脚本归为一类放入编译文件中;以及将该页面的各模块中的各JS脚本所需引用的静态资源,按照不同的文件类别分别归类放入编译文件中。
将文件进行分类使得管理更加合理有序,如本方法示出的将各模块中所包含的JS脚本归为一类放入编译文件中,便于统一编译生成页面。类似地,可以将所引用的静态资源如图片归类放入图片文件夹,视频归类放入视频文件夹等,在网站上线及维护过程中可以规范地进行管理。
然而,将同一类别的静态资源放入同一文件夹,可能出现下述情形:在模块A的开发过程中,开发人员将该模块设计为需引用图片1、图片2和图片3,为方便起见分别将其命名为1.jpg,2.jpg,3.jpg。类似地,在模块B的开发过程中,开发人员将该模块设计为需引用图片4、图片5和图片6,但由于该模块仅仅引用了这三幅图片,在本模块的开发过程中依然为方便起见分别将其命名为1.jpg,2.jpg,3.jpg。从而在同一类别的静态资源放入同一文件夹的过程中,会出现同名文件的情况,因此,在本发明的一个实施例中,上述装置中,编译处理单元230,还适于为每个JS脚本和每个静态资源,都分别生成唯一的名称;将每个JS脚本/静态资源都用其唯一的名称进行重命名,并且在声明的依赖关系中都用相应的唯一的名称替换原来的名称。
具体地,编译处理单元230,适于对于一个JS脚本/静态资源,取该JS脚本/静态资源的内容计算MD5值,将所计算出的MD5值作为该JS脚本/静态资源的唯一的名称;或者,适于对于一个JS脚本/静态资源,计算其相对于指定根目录的相对路径的MD5值;将所计算出的MD5值作为该JS脚本/静态资源的唯一的名称。
如一个JS脚本/静态资源的内容较小,则根据该JS脚本/静态资源的内容计算MD5值可以简单有效地生成与该JS脚本/静态资源对应的唯一文件名。然而对于JS脚本/静态资源内容较大的情况,其生成的MD5值为较长的字符串,不适合将其作为文件名来使用。此时可以采取另一种方案,即指定一个根目录,计算该文件对于该指定根目录的相对路径的MD5值并将其作为自己的文件名。如果不指定根目录,会出现各文件夹路径所对应的根目录不同的情况,比较混乱且易出现问题,指定一个根目录也便于管理和纠错。
综上所述,本发明提供的技术方案将待开发的一个页面划分为多个模块以实现不同功能,对每个模块开发生成,对于模块间存在依赖关系的情况加以声明,并进一步在配置文件中声明该页面的入口模块,还以所述配置文件中声明的入口模块为起始节点,根据各模块中所声明的依赖关系,获取到该页面的全部内容,再对于获取到该页面的全部内容进行编译处理生成该页面。该技术方案能够有序实现网站页面所需的功能,解决了依赖关系声明不确切的问题,能够高效、迅速地开发网站页面。
本发明公开了A1、一种网站页面开发方法,其中,该方法包括:
对于待开发的一个页面,将该页面划分为多个模块;
对于划分的每个模块,开发生成该模块,以及声明该模块所依赖的其他模块;
在配置文件中声明该页面的入口模块;
以所述配置文件中声明的入口模块为起始节点,根据各模块中所声明的依赖关系,获取到该页面的全部内容,对于获取到该页面的全部内容进行编译处理生成该页面。
A2、如A1所述的方法,其中,所述对于待开发的一个页面,将该页面划分为多个模块包括:
根据该页面需要实现的不同功能,划分为一个或多个UI类模块,和/或,一个或多个非UI类模块。
A3、如A1所述的方法,其中,
所述生成该模块包括:生成该模块的JS脚本以及获取该JS脚本所需引用的静态资源;
所述声明该模块所依赖的其他模块包括:声明该模块的JS脚本所依赖的其他JS脚本。
A4、如A3所述的方法,其中,所述以所述配置文件中声明的入口模块为起始节点,根据各模块中所声明的依赖关系,获取到该页面的全部内容包括:
以所述配置文件中声明的入口模块的JS脚本为起始点,根据各个模块中所声明的JS脚本间的依赖关系,获取该页面的各个模块的JS脚本,以及获取该页面的每个JS脚本所需引用的静态资源。
A5、如A3所述的方法,其中,所述对于获取到该页面的全部内容进行编译处理包括:
将该页面的各模块中所包含的JS脚本归为一类放入编译文件中;
以及将该页面的各模块中的各JS脚本所需引用的静态资源,按照不同的文件类别分别归类放入编译文件中。
A6、如A5所述的方法,其中,所述对于获取到该页面的全部内容进行编译处理还包括:
为每个JS脚本和每个静态资源,都分别生成唯一的名称;
将每个JS脚本/静态资源都用其唯一的名称进行重命名,并且在声明的依赖关系中都用相应的唯一的名称替换原来的名称。
A7、如A6所述的方法,其中,为每个JS脚本和每个静态资源,都分别生成唯一的名称包括:
对于一个JS脚本/静态资源,取该JS脚本/静态资源的内容计算MD5值,将所计算出的MD5值作为该JS脚本/静态资源的唯一的名称;
或者,
对于一个JS脚本/静态资源,计算其相对于指定根目录的相对路径的MD5值;将所计算出的MD5值作为该JS脚本/静态资源的唯一的名称。
本发明还公开了B8、一种网站页面开发装置,其中,该装置包括:
页面划分单元,适于对于待开发的一个页面,将该页面划分为多个模块;
开发处理单元,适于对于划分的每个模块,开发生成该模块,以及声明该模块所依赖的其他模块;在配置文件中声明该页面的入口模块;
编译处理单元,适于以所述配置文件中声明的入口模块为起始节点,根据各模块中所声明的依赖关系,获取到该页面的全部内容,对于获取到该页面的全部内容进行编译处理生成该页面。
B9、如B8所述的装置,其中,
所述页面划分单元,适于根据该页面需要实现的不同功能,划分为一个或多个UI类模块,和/或,一个或多个非UI类模块。
B10、如B8所述的装置,其中,
所述开发处理单元,具体适于对于划分的每个模块,生成该模块的JS脚本以及获取该JS脚本所需引用的静态资源,以及声明该模块的JS脚本所依赖的其他JS脚本。
B11、如B10所述的装置,其中,
所述编译处理单元,适于以所述配置文件中声明的入口模块的JS脚本为起始点,根据各个模块中所声明的JS脚本间的依赖关系,获取该页面的各个模块的JS脚本,以及获取该页面的每个JS脚本所需引用的静态资源。
B12、如B10所述的装置,其中,
所述编译处理单元,适于将该页面的各模块中所包含的JS脚本归为一类放入编译文件中;以及将该页面的各模块中的各JS脚本所需引用的静态资源,按照不同的文件类别分别归类放入编译文件中。
B13、如B12所述的装置,其中,
所述编译处理单元,还适于为每个JS脚本和每个静态资源,都分别生成唯一的名称;将每个JS脚本/静态资源都用其唯一的名称进行重命名,并且在声明的依赖关系中都用相应的唯一的名称替换原来的名称。
B14、如B13所述的装置,其中,
所述编译处理单元,适于对于一个JS脚本/静态资源,取该JS脚本/静态资源的内容计算MD5值,将所计算出的MD5值作为该JS脚本/静态资源的唯一的名称;或者,适于对于一个JS脚本/静态资源,计算其相对于指定根目录的相对路径的MD5值;将所计算出的MD5值作为该JS脚本/静态资源的唯一的名称。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网站页面开发装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (14)

1.一种网站页面开发方法,其中,该方法包括:
对于待开发的一个页面,将该页面划分为多个模块;
对于划分的每个模块,开发生成该模块,以及声明该模块所依赖的其他模块;
在配置文件中声明该页面的入口模块;
以所述配置文件中声明的入口模块为起始节点,根据各模块中所声明的依赖关系,获取到该页面的全部内容,对于获取到该页面的全部内容进行编译处理生成该页面;
所述生成该模块包括:生成该模块的JS脚本以及获取该JS脚本所需引用的静态资源;
所述声明该模块所依赖的其他模块包括:声明该模块的JS脚本所依赖的其他JS脚本。
2.如权利要求1所述的方法,其中,所述对于待开发的一个页面,将该页面划分为多个模块包括:
根据该页面需要实现的不同功能,划分为一个或多个UI类模块,和/或,一个或多个非UI类模块。
3.如权利要求1所述的方法,其中,所述以所述配置文件中声明的入口模块为起始节点,根据各模块中所声明的依赖关系,获取到该页面的全部内容包括:
以所述配置文件中声明的入口模块的JS脚本为起始点,根据各个模块中所声明的JS脚本间的依赖关系,获取该页面的各个模块的JS脚本,以及获取该页面的每个JS脚本所需引用的静态资源。
4.如权利要求1所述的方法,其中,所述对于获取到该页面的全部内容进行编译处理包括:
将该页面的各模块中所包含的JS脚本归为一类放入编译文件中;
以及将该页面的各模块中的各JS脚本所需引用的静态资源,按照不同的文件类别分别归类放入编译文件中。
5.如权利要求4所述的方法,其中,所述对于获取到该页面的全部内容进行编译处理还包括:
为每个JS脚本和每个静态资源,都分别生成唯一的名称;
将每个JS脚本/静态资源都用其唯一的名称进行重命名,并且在声明的依赖关系中都用相应的唯一的名称替换原来的名称。
6.如权利要求5所述的方法,其中,为每个JS脚本和每个静态资源,都分别生成唯一的名称包括:
对于一个JS脚本/静态资源,取该JS脚本/静态资源的内容计算MD5值,将所计算出的MD5值作为该JS脚本/静态资源的唯一的名称;
或者,
对于一个JS脚本/静态资源,计算其相对于指定根目录的相对路径的MD5值;将所计算出的MD5值作为该JS脚本/静态资源的唯一的名称。
7.一种网站页面开发装置,其中,该装置包括:
页面划分单元,适于对于待开发的一个页面,将该页面划分为多个模块;
开发处理单元,适于对于划分的每个模块,开发生成该模块,以及声明该模块所依赖的其他模块;在配置文件中声明该页面的入口模块;
编译处理单元,适于以所述配置文件中声明的入口模块为起始节点,根据各模块中所声明的依赖关系,获取到该页面的全部内容,对于获取到该页面的全部内容进行编译处理生成该页面;
所述开发处理单元,具体适于对于划分的每个模块,生成该模块的JS脚本以及获取该JS脚本所需引用的静态资源,以及声明该模块的JS脚本所依赖的其他JS脚本。
8.如权利要求7所述的装置,其中,
所述页面划分单元,适于根据该页面需要实现的不同功能,划分为一个或多个UI类模块,和/或,一个或多个非UI类模块。
9.如权利要求7所述的装置,其中,
所述编译处理单元,适于以所述配置文件中声明的入口模块的JS脚本为起始点,根据各个模块中所声明的JS脚本间的依赖关系,获取该页面的各个模块的JS脚本,以及获取该页面的每个JS脚本所需引用的静态资源。
10.如权利要求7所述的装置,其中,
所述编译处理单元,适于将该页面的各模块中所包含的JS脚本归为一类放入编译文件中;以及将该页面的各模块中的各JS脚本所需引用的静态资源,按照不同的文件类别分别归类放入编译文件中。
11.如权利要求10所述的装置,其中,
所述编译处理单元,还适于为每个JS脚本和每个静态资源,都分别生成唯一的名称;将每个JS脚本/静态资源都用其唯一的名称进行重命名,并且在声明的依赖关系中都用相应的唯一的名称替换原来的名称。
12.如权利要求11所述的装置,其中,
所述编译处理单元,适于对于一个JS脚本/静态资源,取该JS脚本/静态资源的内容计算MD5值,将所计算出的MD5值作为该JS脚本/静态资源的唯一的名称;或者,适于对于一个JS脚本/静态资源,计算其相对于指定根目录的相对路径的MD5值;将所计算出的MD5值作为该JS脚本/静态资源的唯一的名称。
13.一种电子设备,其中,包括:处理器和被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据权利要求1-6中任一项所述的方法。
14.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行根据权利要求1-6中任一项所述的方法。
CN201510628616.8A 2015-09-28 2015-09-28 一种网站页面开发方法和装置 Active CN105159686B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510628616.8A CN105159686B (zh) 2015-09-28 2015-09-28 一种网站页面开发方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510628616.8A CN105159686B (zh) 2015-09-28 2015-09-28 一种网站页面开发方法和装置

Publications (2)

Publication Number Publication Date
CN105159686A CN105159686A (zh) 2015-12-16
CN105159686B true CN105159686B (zh) 2018-09-04

Family

ID=54800553

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510628616.8A Active CN105159686B (zh) 2015-09-28 2015-09-28 一种网站页面开发方法和装置

Country Status (1)

Country Link
CN (1) CN105159686B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106528663A (zh) * 2016-10-20 2017-03-22 深圳中兴网信科技有限公司 静态资源的管理方法及管理系统
CN106951271A (zh) * 2017-04-18 2017-07-14 北京思特奇信息技术股份有限公司 一种基于JavaScript的模块加载方法及系统
CN110858240A (zh) * 2018-08-14 2020-03-03 北京京东尚科信息技术有限公司 一种前端模块加载方法和装置
CN110290182B (zh) * 2019-05-31 2021-01-26 北京邮电大学 分布式Web应用存储系统、服务系统和访问方法
CN110633081A (zh) * 2019-08-23 2019-12-31 北京浪潮数据技术有限公司 页面生成方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101847147A (zh) * 2009-03-24 2010-09-29 英业达股份有限公司 将独立编辑的脚本及样式整合至网页的系统及其方法
CN102103519A (zh) * 2009-12-21 2011-06-22 同济大学 一种基于脚本的Web服务执行优化方法
CN103136290A (zh) * 2011-12-05 2013-06-05 金蝶软件(中国)有限公司 网页脚本文件处理方法及处理装置
CN104123138A (zh) * 2014-07-25 2014-10-29 诺伊曼(福建)信息科技有限公司 一种erp系统的快速构建方法
CN104133680A (zh) * 2014-07-25 2014-11-05 诺伊曼(福建)信息科技有限公司 一种erp窗体模块的快速构建方法
CN104504095A (zh) * 2014-12-29 2015-04-08 北京奇虎科技有限公司 页面调用文件生成方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069553B2 (en) * 2003-03-03 2006-06-27 Computer Associates Think, Inc. Universal deployment tool
US7805728B2 (en) * 2007-03-16 2010-09-28 Microsoft Corporation Browser elements for communicating with other browser elements and with external applications

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101847147A (zh) * 2009-03-24 2010-09-29 英业达股份有限公司 将独立编辑的脚本及样式整合至网页的系统及其方法
CN102103519A (zh) * 2009-12-21 2011-06-22 同济大学 一种基于脚本的Web服务执行优化方法
CN103136290A (zh) * 2011-12-05 2013-06-05 金蝶软件(中国)有限公司 网页脚本文件处理方法及处理装置
CN104123138A (zh) * 2014-07-25 2014-10-29 诺伊曼(福建)信息科技有限公司 一种erp系统的快速构建方法
CN104133680A (zh) * 2014-07-25 2014-11-05 诺伊曼(福建)信息科技有限公司 一种erp窗体模块的快速构建方法
CN104504095A (zh) * 2014-12-29 2015-04-08 北京奇虎科技有限公司 页面调用文件生成方法和装置

Also Published As

Publication number Publication date
CN105159686A (zh) 2015-12-16

Similar Documents

Publication Publication Date Title
CN105159686B (zh) 一种网站页面开发方法和装置
EP3342145B1 (en) Deep linking to mobile application states through programmatic replay of user interface events
US10078709B2 (en) Managing a display of results of a keyword search on a web page by modifying attributes of a DOM tree structure
Rossel Continuous Integration, Delivery, and Deployment: Reliable and faster software releases with automating builds, tests, and deployment
US10977031B2 (en) Method for a software development system
US9128723B2 (en) Method and apparatus for dynamic document object model (DOM) aware code editing
US20160062963A1 (en) Synchronizing DOM Element References
Casteleyn et al. Ten years of rich internet applications: A systematic mapping study, and beyond
US20130346851A1 (en) Declarative show and hide animations in html5
RU2459238C2 (ru) Управляемая среда выполнения для организации взаимодействия между программными приложениями
US20170351644A1 (en) Advertisement Filtering Method and Device
JP2011159284A (ja) ウェブサイトフォントのプレビュー
Gok et al. Building Hybrid Android Apps with Java and JavaScript: Applying Native Device APIs
Tacy et al. GWT in Action
Negus Docker Containers (includes Content Update Program) Build and Deploy with Kubernetes, Flannel, Cockpit, and Atomic
JP2012088940A (ja) 情報処理装置、情報処理方法、及びプログラム
CN107077484B (zh) 生成应用的网络浏览器视图
Dangar Learning laravel 4 application development
KR20170129225A (ko) 스타일에 대한 선언적 캐스캐이드 재정렬
Wenz Programming ASP. NET AJAX: Build Rich, Web 2.0-Style UI with ASP. NET AJAX
Gordon Isomorphic Web Applications: Universal Development with React
Bevilacqua Redmine plugin extension and development
Montane et al. Learning Android Application Development
CN111104616A (zh) 一种网页处理方法及其装置
Fedosejev et al. React 16 Essentials: A fast-paced, hands-on guide to designing and building scalable and maintainable web apps with React 16

Legal Events

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

Effective date of registration: 20220711

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co., Ltd

TR01 Transfer of patent right