CN104407901B - 代码的添加方法和装置 - Google Patents

代码的添加方法和装置 Download PDF

Info

Publication number
CN104407901B
CN104407901B CN201410746673.1A CN201410746673A CN104407901B CN 104407901 B CN104407901 B CN 104407901B CN 201410746673 A CN201410746673 A CN 201410746673A CN 104407901 B CN104407901 B CN 104407901B
Authority
CN
China
Prior art keywords
code
updated
variable
provider
name
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
CN201410746673.1A
Other languages
English (en)
Other versions
CN104407901A (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 Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology 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 Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201410746673.1A priority Critical patent/CN104407901B/zh
Publication of CN104407901A publication Critical patent/CN104407901A/zh
Application granted granted Critical
Publication of CN104407901B publication Critical patent/CN104407901B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种代码的添加方法和装置。其中,该代码的添加方法包括:通过获取网页中设置的编程容器中添加的多个待更新代码;判断多个待更新代码中是否具有对相同元素操作的代码;如果多个待更新代码中具有对相同元素操作的代码,则提取对相同元素操作的代码;将提取的代码存储在子例程中;以及调用子例程以发布提取的代码。通过本发明,解决了现有技术中对网页的代码进行更新的效率比较低的问题,达到了提高对网页的代码进行更新的效率的效果。

Description

代码的添加方法和装置
技术领域
本发明涉及互联网领域,具体而言,涉及一种代码的添加方法和装置。
背景技术
现有技术在多个代码提供方为网页添加代码时,可以采用以下两种方法:
方法一:
代码提供方将需要在页面中添加的代码提交给建站方,建站方对代码提供方所提供的代码实施整合以及部署,如果检查出代码提供方所提供的代码有兼容性问题则需要将代码发回给代码提供方进行修改,直到代码提供方所提供的代码能够克服兼容性问题,最后再由建站方将代码发布至正式的页面环境中。
但是这种方法需要建站方人工反复检查代码是否兼容,并且人工整合后进行发布。由于需要和多个代码提供方沟通,因此具有代码更新的效率低、耗时长的缺点。另外,因为兼容性检查由人工手动操作,难免会有部署错误的情况发生,如果部署在页面上的代码有漏洞,就需要建站方或代码提供方一起对漏洞进行修改,这又将耗时耗力。
方法二:
在谷歌标签管理系统中新建一个编程容器,并且将编程容器的代码提交给建站方,建站方将编程容器的代码部署至所有页面中。再由管理员为代码提供方开放编程容器的编辑权限,并且由代码提供方在编程容器中自行添加代码。当代码提供方完成代码编辑后,由编程容器的拥有者发布添加的代码。
但是,谷歌标签管理系统目前只支持Google网络监测以及数字营销产品的定制化部署,如果需要部署其他方代码,则只能够使用自定义HTML代码。使用自定义HTML代码管理多方代码也需要手动来做检查代码的兼容性以及整合的工作,不仅效率低,还容易出错。
针对现有技术中对网页的代码进行更新的效率比较低的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种代码的添加方法和装置,以解决现有技术中对网页的代码进行更新的效率比较低的问题。
为了实现上述目的,根据本发明实施例的一个方面,提供了一种代码的添加方法。根据本发明的代码的添加方法包括:获取网页中设置的编程容器中添加的多个待更新代码;判断所述多个待更新代码中是否具有对相同元素操作的代码;如果所述多个待更新代码中具有所述对相同元素操作的代码,则提取所述对相同元素操作的代码;将提取的代码存储在子例程中;以及调用所述子例程以发布所述提取的代码。
进一步地,所述多个待更新代码包括第一待更新代码和第二待更新代码,在判断所述多个待更新代码中是否具有对相同元素操作的代码之前,所述方法还包括:查找所述第一待更新代码和所述第二待更新代码中的相同变量名称;获取具有所述相同变量名称的第一待更新代码中的第一变量名称和所述第二待更新代码中的第二变量名称;修改所述第一变量的名称或者所述第二变量的名称以使所述第一变量名称和所述第二变量名称不同。
进一步地,所述多个待更新代码来自多个代码提供方,所述多个代码提供方包括第一代码提供方和第二代码提供方,获取网页中设置的编程容器中添加的多个待更新代码包括:接收来自所述多个代码提供方所提供的待更新代码;修改所述第一变量的名称或者所述第二变量的名称以使所述第一变量名称和所述第二变量名称不同包括:将所述第一变量的名称修改为与所述第二变量名称不同的变量名称;向提供所述第一变量名称的所述第一代码提供方发出所述第一变量的名称已被修改的提示信息。
进一步地,所述多个待更新代码包括第一待更新代码和第二待更新代码,如果所述多个待更新代码中具有所述对相同元素操作的代码,则提取所述对相同元素操作的代码包括:获取所述第一待更新代码中所述相同元素的第一键值和所述第二待更新代码中所述相同元素的第二键值;判断所述第一键值和所述第二键值是否相同;如果所述第一键值和所述第二键值不同,则发出告警信息。
进一步地,在调用所述子例程以发布所述提取的代码之前,所述方法还包括:获取对所述编程容器中的代码进行批量处理的代码标签;查找所述编程容器中具有所述代码标签的代码;以及对查找到的代码进行修改。
进一步地,将提取的代码存储在子例程中包括:获取所述子例程中的注释信息和用于提示的标识信息;以及删除所述注释信息和所述标识信息。
为了实现上述目的,根据本发明实施例的另一方面,提供了一种代码的添加装置。根据本发明的代码的添加装置包括:第一获取单元,用于获取网页中设置的编程容器中添加的多个待更新代码;判断单元,用于判断所述多个待更新代码中是否具有对相同元素操作的代码;提取单元,用于在所述多个待更新代码中具有所述对相同元素操作的代码时,提取所述对相同元素操作的代码;存储单元,用于将提取的代码存储在子例程中;以及调用单元,用于调用所述子例程以发布所述提取的代码。
进一步地,所述多个待更新代码包括第一待更新代码和第二待更新代码,所述装置还包括:第一查找单元,用于在判断所述多个待更新代码中是否具有对相同元素操作的代码之前,查找所述第一待更新代码和所述第二待更新代码中的相同变量名称;第二获取单元,用于获取具有所述相同变量名称的第一待更新代码中的第一变量名称和所述第二待更新代码中的第二变量名称;以及第一修改单元,用于在所述第一变量名称和所述第二变量名称相同时,修改所述第一变量的名称或者所述第二变量的名称以使所述第一变量名称和所述第二变量名称不同。
进一步地,所述多个待更新代码来自多个代码提供方,所述多个代码提供方包括第一代码提供方和第二代码提供方,所述第一获取单元包括:接收模块,用于接收来自所述多个代码提供方所提供的待更新代码;所述第一修改单元包括:修改模块,用于将所述第一变量的名称修改为与所述第二变量名称不同的变量名称;提示模块,用于向提供所述第一变量名称的所述第一代码提供方发出所述第一变量的名称已被修改的提示信息。
进一步地,所述多个待更新代码包括第一待更新代码和第二待更新代码,所述提取单元包括:第一获取模块,用于获取所述第一待更新代码中所述相同元素的第一键值和所述第二待更新代码中所述相同元素的第二键值;判断模块,用于判断所述第一键值和所述第二键值是否相同;告警模块,用于在所述第一键值和所述第二键值不同时,发出告警信息。
进一步地,所述装置还包括:第三获取单元,用于在调用所述子例程以发布所述提取的代码之前,获取对所述编程容器中的代码进行批量处理的代码标签;第二查找单元,用于查找所述编程容器中具有所述代码标签的代码;以及第二修改单元,用于对查找到的代码进行修改。
进一步地,所述存储单元包括:第二获取模块,用于获取所述子例程中的注释信息和用于提示的标识信息;以及删除模块,用于删除所述注释信息和所述标识信息。
根据发明实施例,通过获取网页中设置的编程容器中添加的多个待更新代码;判断多个待更新代码中是否具有对相同元素操作的代码;如果多个待更新代码中具有对相同元素操作的代码,则提取对相同元素操作的代码;将提取的代码存储在子例程中;以及调用子例程以发布提取的代码,解决了现有技术中对网页的代码进行更新的效率比较低的问题,达到了提高对网页的代码进行更新的效率的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的编程容器的结构示意图;
图2是根据本发明实施例的代码的添加方法的流程图;以及
图3是根据本发明实施例的代码的添加装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
名词解释:
JavaScript(JS):一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML网页上使用,用来给HTML网页增加动态功能。然而现在JavaScript也可被用于网络服务器。
本发明实施例提供了一种代码的添加方法。该代码的添加方法可以用于向网页中添加代码,如图1所示,通过在网页中设置一个编程容器,该编程容器的管理者可以通过权限管理器向多个代码提供方发送代码模块,拥有向编程容器中添加代码权限的代码提供方通过代码模块向编程容器中添加代码,由编程容器检查多个代码提供方添加的代码之间的兼容性,并对代码进行整合,然后通过发布器发布编程容器中的代码。由于代码容器可以接收来自多个代码提供方的代码,并且编程容器能够对多个代码进行兼容性检查和整合,克服了人工检查容易出错的问题,另外,编程容器还包括作用域管理器,可以对编程容器中的多条代码进行批量修改,从而提高了对网页的代码进行修改的效率。
图2是根据本发明实施例的代码的添加方法的流程图。如图2所示,该代码的添加方法包括如下步骤:
步骤S102,获取网页中设置的编程容器中添加的多个待更新代码;
步骤S104,判断多个待更新代码中是否具有对相同元素操作的代码;
步骤S106,如果多个待更新代码中具有对相同元素操作的代码,则提取对相同元素操作的代码;
步骤S108,将提取的代码存储在子例程中;以及
步骤S110,调用子例程以发布提取的代码。
多个待更新代码为来自多个代码提供方的代码,多个代码提供方在被分配的代码模块中编辑代码,然后将编辑的代码发送给编程容器,编程容器能够自动对多个待更新代码进行整合,从多个待更新代码中查找对相同元素操作的代码,并将这些对相同元素操作的代码存储在子例程中等待发布。例如,三个待更新代码均包括对网页中的按钮1操作的代码,则编程容器收集到这是哪个待更新代码之后,从这三个待更新代码中提取对按钮1进行操作的代码,并将这单个待更新的代码存储在子例程中等待发布。即对按钮1进行操作的所有代码都存储在一个子例程中等待发布。
编程容器可以为多个代码提供方提供多个代码模块,代码提供方在各自的代码模块中编辑代码,代码模块可以是编程容器为代码提供方提供的编辑账号,代码提供方通过登录该编辑账号提供编写的代码。一个代码提供方可以针对一个或者多个元素进行代码编辑,例如按钮、图片等。多个提供方所提供的代码可以针对相同元素进行代码编辑,还可以针对不同元素进行代码编辑。
通过上述实施例,编程容器自动从多个待更新代码中提取对相同元素操作的代码,并将提取到的代码存储在子例程中等待发布,也就完成了自动整合代码的工作,避免了人工提取代码的不准确性,并且将提取到的代码存储在子例程中便于对子例程中的代码进行发布,从而解决了现有技术中对网页的代码进行更新的效率比较低的问题。
多个待更新代码发送至编程容器后,在整合并发布之前,还需要对多个待更新代码进行兼容性检查,以避免发布代码后导致网页出错,即多个待更新代码包括第一待更新代码和第二待更新代码,在判断多个待更新代码中是否具有对相同元素操作的代码之前,该方法还包括:查找第一待更新代码和第二待更新代码中的相同变量名称;获取具有相同变量名称的第一待更新代码中的第一变量名称和第二待更新代码中的第二变量名称;修改第一变量的名称或者第二变量的名称以使第一变量名称和第二变量名称不同。
在该实施例中,以多个待更新代码中的第一待更新代码和第二待更新代码为例进行说明,第一待更新代码和第二待更新代码分别来自不同的代码提供方,并且包括相同的变量。为了避免在不同的待更新代码中使用相同的变量名称来标识不同的变量而导致的代码运行错误,在第一待更新代码和第二待更新代码中查找具有相同名称的变量,并将查找到的相同的第一变量名称和第二变量名称修改为不同的名称。
具体地,多个代码提供方可以通过多个代码模块向编程容器中添加多个待更新代码,每个代码提供方都可以在属于自己的代码模块中对待更新代码进行编辑,多个待更新代码来自多个代码提供方,多个代码提供方包括第一代码提供方和第二代码提供方,获取网页中设置的编程容器中添加的多个待更新代码包括:接收来自多个代码提供方所提供的待更新代码;修改第一变量的名称或者第二变量的名称以使第一变量名称和第二变量名称不同包括:将第一变量的名称修改为与第二变量名称不同的变量名称;向提供第一变量名称的第一代码提供方发出所述第一变量的名称已被修改的提示信息。
每个代码提供方都在属于自己的代码模块中编辑代码,不同的代码提供方在编辑代码时互相不会出现冲突,可以同时编辑代码,代码模块可以自动对代码提供方所添加的代码检查语法错误,并提示代码提供方对代码的语法错误进行修改。当编程容器检查出代码中存在相同的第一变量的名称和第二变量的名称而需要更改时,可以自动将其中的一个变量的名称修改为不同的变量名称,并向相应的代码提供方发出提示信息,以提示该变量的名称被修改。在代码中可以添加代码提供方的标识信息,根据该标识信息就可以找到该代码的提供方,代码提供方在其代码模块中修改代码从而完成了对编程容器中的代码修改。
例如:第一变量名称和第二变量名称都为cnt的情况下,编程容器会将第二变量名称自动命名为cnt_01,修改后会通知第二代码提供方第二变量名称被修改为cnt_01,当第二变量被更换后,编程容器会对此代码提供方所使用的账号做标记,使该代码提供方以后提交的代码中如果再次使用相同的变量名称cnt时会自动将这个变量名称修改成之前自动更换的名称cnt_01,并且在提交时通知代码提供方。
通过上述实施例,编程容器能够自动对代码进行兼容性检查,并且,在检查出需要更改的代码时,编程容器自动对具有相同变量名称的不同变量的变量名称进行修改,以避免代码运行时出错,并通知代码提供方已经将该变量名称修改,由于编程容器可以自动进行兼容性检查,而不需要人工检查,提高了兼容性检查的准确性,也就避免了人工检查不准确导致的反复修改代码而造成的人力和时间的浪费,另外,由于记录了被修改的代码,当编程容器再次收到该代码提供方所提交的代码中包含修改前的变量名称,则自动对这些变量名称进行修改,提高了修改代码的效率,进而提高了对网页的代码进行修改的效率。另外,当代码的修改需要由代码提供方进行时,多个代码提供方也可以在自己的代码模块中编辑,实现了多个代码提供方同时进行修改。
优选地,在检查兼容性时,还可以对针对相同元素的不同提供方提供的代码进行检查,即多个待更新代码包括第一待更新代码和第二待更新代码,如果多个待更新代码中具有对相同元素操作的代码,则提取对相同元素操作的代码包括:获取第一待更新代码中相同元素的第一键值和第二待更新代码中相同元素的第二键值;判断第一键值和第二键值是否相同;如果第一键值和第二键值不同,则发出告警信息。
如果多个代码提供方提供的代码中,相同元素的键值不同,即出现代码冲突的情况,则针对该相同元素的代码出错,发出告警信息,以提示对这些代码进行修改。
优选地,编程容器可以对代码进行批量修改,即在调用子例程以发布提取的代码之前,该方法还包括:获取对编程容器中的代码进行批量处理的代码标签;查找编程容器中具有代码标签的代码;以及对查找到的代码进行修改。
如果编程容器中的代码需要批量修改时,编程容器查找代码中需要进行批量处理的代码的代码标签,并查找出所有具有该代码标签的代码,并对这些查找到的代码进行修改。这些代码标签可以是URL或者元素标识,例如<a>标签,或http://www.xxxx.com。编程容器可以对符合修改条件的多个代码进行修改,从而提高了修改代码的速度,解决了现有技术中对网页的代码进行更新的效率比较低的问题,达到了提高网页的代码进行更新的效率的效果。
优选地,将提取的代码存储在子例程中包括:获取子例程中的注释信息和用于提示的标识信息;以及删除注释信息和标识信息。
在发布代码之前,为了减少代码所占用的缓存空间,将子例程中的代码的注释信息和用于提示的标识信息删除,也就是将代码中的非代码本身的内容删除,如注释信息、不必要的换行符等等,在不影响代码正常运行的情况下,对代码进行压缩。
通过上述实施例,实现了多个代码提供方向编程容器提供代码,编程容器对代码进行兼容性检查,并且进行整合,对编程容器中的代码自动进行检查,避免了人工检查的不准确性而导致的反复修改所造成的效率低的问题,从而达到了提高检查兼容的的效率的效果,进而达到了提高对网页的代码进行更新的效率的效果。
本发明实施例还提供了一种代码的添加装置。该装置可以通过。。实现其功能。需要说明的是,本发明实施例的代码的添加装置可以用于执行本发明实施例所提供的代码的添加方法,本发明实施例的代码的添加方法也可以通过本发明实施例所提供的代码的添加装置来执行。
图3根据本发明实施例的代码的添加装置的示意图。如图3所示,该代码的添加装置包括:第一获取单元10、第一判断单元30、提取单元50、存储单元70和调用单元90。
第一获取单元10用于获取网页中设置的编程容器中添加的多个待更新代码;
第一判断单元30用于判断多个待更新代码中是否具有对相同元素操作的代码;
提取单元50用于在多个待更新代码中具有对相同元素操作的代码时,提取对相同元素操作的代码;
存储单元70用于将提取的代码存储在子例程中;
调用单元90用于调用子例程以发布提取的代码。
多个待更新代码为来自多个代码提供方的代码,多个代码提供方在被分配的代码模块中编辑代码,然后将编辑的代码发送给编程容器,编程容器能够自动对多个待更新代码进行整合,从多个待更新代码中查找对相同元素操作的代码,并将这些对相同元素操作的代码存储在子例程中等待发布。例如,三个待更新代码均包括对网页中的按钮1操作的代码,则编程容器收集到这是哪个待更新代码之后,从这三个待更新代码中提取对按钮1进行操作的代码,并将这单个待更新的代码存储在子例程中等待发布。即对按钮1进行操作的所有代码都存储在一个子例程中等待发布。
编程容器可以为多个代码提供方提供多个代码模块,代码提供方在各自的代码模块中编辑代码,代码模块可以是编程容器为代码提供方提供的编辑账号,代码提供方通过登录该编辑账号提供编写的代码。一个代码提供方可以针对一个或者多个元素进行代码编辑,例如按钮、图片等。多个提供方所提供的代码可以针对相同元素进行代码编辑,还可以针对不同元素进行代码编辑。
通过上述实施例,编程容器自动从多个待更新代码中提取对相同元素操作的代码,并件提取到的代码存储在子例程中等待发布,也就完成了自动整合代码的工作,避免了人工提取代码的不准确性,并且将提取到的代码存储在子例程中便于对子例程中的代码进行发布,从而解决了现有技术中对网页的代码进行更新的效率比较低的问题。
多个待更新代码发送至编程容器后,在整合并发布之前,还需要对多个待更新代码进行兼容性检查,以避免发布代码后导致网页出错,即多个待更新代码包括第一待更新代码和第二待更新代码,该装置还包括:第一查找单元,用于在判断多个待更新代码中是否具有对相同元素操作的代码之前,查找第一待更新代码和第二待更新代码中的相同变量名称;第二获取单元,用于获取具有相同变量名称的第一待更新代码中的第一变量名称和第二待更新代码中的第二变量名称;第一修改单元,用于在第一变量名称和第二变量名称相同时,修改第一变量的名称或者第二变量的名称以使第一变量名称和第二变量名称不同。
在该实施例中,以多个待更新代码中的第一待更新代码和第二待更新代码为例进行说明,第一待更新代码和第二待更新代码分别来自不同的代码提供方,并且包括相同的变量。为了避免在不同的待更新代码中使用相同的变量名称来标识不同的变量而导致的代码运行错误,在第一待更新代码和第二待更新代码中查找具有相同名称的变量,并将查找到的相同的第一变量名称和第二变量名称修改为不同的名称。
具体地,多个代码提供方可以通过多个代码模块向编程容器中添加多个待更新代码,每个代码提供方都可以在属于自己的代码模块中对待更新代码进行编辑,多个待更新代码来自多个代码提供方,多个代码提供方包括第一代码提供方和第二代码提供方,第一获取单元包括:修改模块,用于将第一变量的名称修改为与第二变量名称不同的变量名称;提示模块,用于向提供第一变量名称的第一代码提供方发出第一变量的名称已被修改的提示信息。
每个代码提供方都在属于自己的代码模块中编辑代码,不同的代码提供方在编辑代码时互相不会出现冲突,可以同时编辑代码的代码模块可以自动对代码提供方所添加的代码检查语法错误,并提示代码提供方对代码的语法错误进行修改。当编程容器检查出代码中存在相同的第一变量的名称和第二变量的名称而需要更改时,可以自动将其中的一个变量的名称修改为不同的变量名称,并向相应的代码提供方发出提示信息,以提示该变量的名称被修改。在代码中可以添加代码提供方的标识信息,根据该标识信息就可以找到该代码的提供方,代码提供方在其代码模块中修改代码从而完成了对编程容器中的代码修改。
例如:第一变量名称和第二变量名称都为cnt的情况下,编程容器会将第二变量名称自动命名为cnt_01,修改后会通知第二代码提供方第二变量名称被修改为cnt_01,当第二变量被更换后,编程容器会对此代码提供方所使用的账号做标记,使该代码提供方以后提交的代码中如果再次使用相同的变量名称cnt时会自动将这个变量名称修改成之前自动更换的名称cnt_01,并且在提交时通知代码提供方。
通过上述实施例,编程容器能够自动对代码进行兼容性检查,并且,在检查出需要更改的代码时,编程容器自动对具有相同变量名称的不同变量的变量名称进行修改,以避免代码运行时出错,并通知代码提供方已经将该变量名称修改,由于编程容器可以自动进行兼容性检查,而不需要人工检查,提高了兼容性检查的准确性,也就避免了人工检查不准确导致的反复修改代码而造成的人力和时间的浪费,另外,由于记录了被修改的代码,当编程容器再次收到该代码提供方所提交的代码中包含修改前的变量名称,则自动对这些变量名称进行修改,提高了修改代码的效率,进而提高了对网页的代码进行修改的效率。另外,当代码的修改需要由代码提供方进行时,多个代码提供方也可以在自己的代码模块中编辑,实现了多个代码提供方同时进行修改。
优选地,在检查兼容性时,还可以对针对相同元素的不同提供方提供的代码进行检查,即第一获取模块,用于获取第一待更新代码中相同元素的第一键值和第二待更新代码中相同元素的第二键值;判断模块,用于判断第一键值和第二键值是否相同;告警模块,用于在第一键值和第二键值不同时,发出告警信息。
如果多个代码提供方提供的代码中,相同元素的键值不同,即出现代码冲突的情况,则针对该相同元素的代码出错,发出告警信息,以提示对这些代码进行修改。
优选地,编程容器可以对代码进行批量修改,即第三获取单元,用于在调用子例程以发布提取的代码之前,获取对编程容器中的代码进行批量处理的代码标签;第二查找单元,用于查找编程容器中具有代码标签的代码;以及第二修改单元,用于对查找到的代码进行修改。
如果编程容器中的代码需要批量修改时,编程容器查找代码中需要进行批量处理的代码的代码标签,并查找出所有具有该代码标签的代码,并对这些查找到的代码进行修改。这些代码标签可以是URL或者元素标识,例如<a>标签,或http://www.xxxx.com。编程容器可以对符合修改条件的多个代码进行修改,从而提高了修改代码的速度,解决了现有技术中对网页的代码进行更新的效率比较低的问题,达到了提高网页的代码进行更新的效率的效果。
优选地,存储单元包括:获取模块,用于获取子例程中的注释信息和用于提示的标识信息;以及删除模块,用于删除注释信息和标识信息。
在发布代码之前,为了减少代码所占用的缓存空间,将子例程中的代码的注释信息和用于提示的标识信息删除,也就是将代码中的非代码本身的内容删除,如注释信息、不必要的换行符等等,在不影响代码正常运行的情况下,对代码进行压缩。
通过上述实施例,实现了多个代码提供方向编程容器提供代码,编程容器对代码进行兼容性检查,并且进行整合,对编程容器中的代码自动进行检查,避免了人工检查的不准确性而导致的反复修改所造成的效率低的问题,从而达到了提高检查兼容的的效率的效果,进而达到了提高对网页的代码进行更新的效率的效果。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、移动终端、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种代码的添加方法,其特征在于,包括:
获取网页中设置的编程容器中添加的多个待更新代码,多个待更新代码为来自多个代码提供方的代码;
判断所述多个待更新代码中是否具有对相同元素操作的代码;
如果所述多个待更新代码中具有所述对相同元素操作的代码,则提取所述对相同元素操作的代码;
将提取的代码存储在子例程中;以及
调用所述子例程以发布所述提取的代码;
所述编程容器预先设置于网页中,用于向至少一个代码提供方发送代码模块,所述代码模块接收对应的所述代码提供方编辑输入的待更新代码,并发送至所述编程容器。
2.根据权利要求1所述的方法,其特征在于,所述多个待更新代码包括第一待更新代码和第二待更新代码,在判断所述多个待更新代码中是否具有对相同元素操作的代码之前,所述方法还包括:
查找所述第一待更新代码和所述第二待更新代码中的相同变量名称;
获取具有所述相同变量名称的第一待更新代码中的第一变量名称和所述第二待更新代码中的第二变量名称;
修改所述第一变量的名称或者所述第二变量的名称以使所述第一变量名称和所述第二变量名称不同。
3.根据权利要求2所述的方法,其特征在于,所述多个待更新代码来自多个代码提供方,所述多个代码提供方包括第一代码提供方和第二代码提供方,
获取网页中设置的编程容器中添加的多个待更新代码包括:接收来自所述多个代码提供方所提供的待更新代码;
修改所述第一变量的名称或者所述第二变量的名称以使所述第一变量名称和所述第二变量名称不同包括:将所述第一变量的名称修改为与所述第二变量名称不同的变量名称;向提供所述第一变量名称的所述第一代码提供方发出所述第一变量的名称已被修改的提示信息。
4.根据权利要求1所述的方法,其特征在于,所述多个待更新代码包括第一待更新代码和第二待更新代码,如果所述多个待更新代码中具有所述对相同元素操作的代码,则提取所述对相同元素操作的代码包括:
获取所述第一待更新代码中所述相同元素的第一键值和所述第二待更新代码中所述相同元素的第二键值;
判断所述第一键值和所述第二键值是否相同;
如果所述第一键值和所述第二键值不同,则发出告警信息。
5.根据权利要求1所述的方法,其特征在于,在调用所述子例程以发布所述提取的代码之前,所述方法还包括:
获取对所述编程容器中的代码进行批量处理的代码标签;
查找所述编程容器中具有所述代码标签的代码;以及
对查找到的代码进行修改。
6.根据权利要求1所述的方法,其特征在于,将提取的代码存储在子例程中包括:
获取所述子例程中的注释信息和用于提示的标识信息;以及
删除所述注释信息和所述标识信息。
7.一种代码的添加装置,其特征在于,包括:
第一获取单元,用于获取网页中设置的编程容器中添加的多个待更新代码,多个待更新代码为来自多个代码提供方的代码;
判断单元,用于判断所述多个待更新代码中是否具有对相同元素操作的代码;
提取单元,用于在所述多个待更新代码中具有所述对相同元素操作的代码时,提取所述对相同元素操作的代码;
存储单元,用于将提取的代码存储在子例程中;以及
调用单元,用于调用所述子例程以发布所述提取的代码;
所述编程容器预先设置于网页中,用于向至少一个代码提供方发送代码模块,所述代码模块接收对应的所述代码提供方编辑输入的待更新代码,并发送至所述编程容器。
8.根据权利要求7所述的装置,其特征在于,所述多个待更新代码包括第一待更新代码和第二待更新代码,所述装置还包括:
第一查找单元,用于在判断所述多个待更新代码中是否具有对相同元素操作的代码之前,查找所述第一待更新代码和所述第二待更新代码中的相同变量名称;
第二获取单元,用于获取具有所述相同变量名称的第一待更新代码中的第一变量名称和所述第二待更新代码中的第二变量名称;以及
第一修改单元,用于在所述第一变量名称和所述第二变量名称相同时,修改所述第一变量的名称或者所述第二变量的名称以使所述第一变量名称和所述第二变量名称不同。
9.根据权利要求8所述的装置,其特征在于,所述多个待更新代码来自多个代码提供方,所述多个代码提供方包括第一代码提供方和第二代码提供方,
所述第一获取单元包括:接收模块,用于接收来自所述多个代码提供方所提供的待更新代码;
所述第一修改单元包括:修改模块,用于将所述第一变量的名称修改为与所述第二变量名称不同的变量名称;提示模块,用于向提供所述第一变量名称的所述第一代码提供方发出所述第一变量的名称已被修改的提示信息。
10.根据权利要求7所述的装置,其特征在于,所述多个待更新代码包括第一待更新代码和第二待更新代码,所述提取单元包括:
第一获取模块,用于获取所述第一待更新代码中所述相同元素的第一键值和所述第二待更新代码中所述相同元素的第二键值;
判断模块,用于判断所述第一键值和所述第二键值是否相同;
告警模块,用于在所述第一键值和所述第二键值不同时,发出告警信息。
11.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第三获取单元,用于在调用所述子例程以发布所述提取的代码之前,获取对所述编程容器中的代码进行批量处理的代码标签;
第二查找单元,用于查找所述编程容器中具有所述代码标签的代码;以及
第二修改单元,用于对查找到的代码进行修改。
12.根据权利要求7所述的装置,其特征在于,所述存储单元包括:
第二获取模块,用于获取所述子例程中的注释信息和用于提示的标识信息;以及
删除模块,用于删除所述注释信息和所述标识信息。
CN201410746673.1A 2014-12-08 2014-12-08 代码的添加方法和装置 Active CN104407901B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410746673.1A CN104407901B (zh) 2014-12-08 2014-12-08 代码的添加方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410746673.1A CN104407901B (zh) 2014-12-08 2014-12-08 代码的添加方法和装置

Publications (2)

Publication Number Publication Date
CN104407901A CN104407901A (zh) 2015-03-11
CN104407901B true CN104407901B (zh) 2018-04-06

Family

ID=52645534

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410746673.1A Active CN104407901B (zh) 2014-12-08 2014-12-08 代码的添加方法和装置

Country Status (1)

Country Link
CN (1) CN104407901B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6235945B2 (ja) * 2014-03-20 2017-11-22 株式会社日立公共システム ソースコード生成および提供装置、並びにソースコード生成および提供方法
CN104866303B (zh) * 2015-04-09 2018-01-23 广东欧珀移动通信有限公司 一种信息处理的方法及移动终端
CN106293690B (zh) * 2015-06-29 2020-02-28 阿里巴巴集团控股有限公司 一种生成组件对象的方法及装置
CN105930332B (zh) * 2016-01-13 2019-04-02 平安科技(深圳)有限公司 代码发布查询方法及终端
CN106126410B (zh) * 2016-05-26 2019-05-07 华为技术有限公司 代码冲突的提示方法及装置
CN106406918B (zh) * 2016-11-25 2020-02-28 华胜信泰信息产业发展有限公司 源代码自动合并方法和源代码自动合并装置
CN106886420B (zh) * 2017-03-30 2020-10-09 广州柔视智能科技有限公司 一种程序代码管理装置、方法及程序代码管理器
CN111176983B (zh) * 2019-10-18 2021-10-22 华为技术有限公司 一种代码冲突消解系统、方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101071378A (zh) * 2006-05-12 2007-11-14 日立软件工程株式会社 源代码生成方法、设备和程序
CN102279749A (zh) * 2011-08-30 2011-12-14 大唐移动通信设备有限公司 一种代码归并方法和设备
CN103135976A (zh) * 2011-11-30 2013-06-05 阿里巴巴集团控股有限公司 代码自动生成方法及装置
CN103425572A (zh) * 2012-05-24 2013-12-04 腾讯科技(深圳)有限公司 代码分析方法及代码分析系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4343945B2 (ja) * 2006-12-28 2009-10-14 三菱電機株式会社 電子制御装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101071378A (zh) * 2006-05-12 2007-11-14 日立软件工程株式会社 源代码生成方法、设备和程序
CN102279749A (zh) * 2011-08-30 2011-12-14 大唐移动通信设备有限公司 一种代码归并方法和设备
CN103135976A (zh) * 2011-11-30 2013-06-05 阿里巴巴集团控股有限公司 代码自动生成方法及装置
CN103425572A (zh) * 2012-05-24 2013-12-04 腾讯科技(深圳)有限公司 代码分析方法及代码分析系统

Also Published As

Publication number Publication date
CN104407901A (zh) 2015-03-11

Similar Documents

Publication Publication Date Title
CN104407901B (zh) 代码的添加方法和装置
CN106021257B (zh) 一种支持在线编程的爬虫抓取数据方法、装置及系统
CN108197114B (zh) 表格数据的检测方法、装置、存储介质及电子装置
CN101207450B (zh) 一种专题模板制作方法及客户端和网络侧服务器
CN109376291B (zh) 一种基于网络爬虫的网站指纹信息扫描的方法及装置
CN109829096A (zh) 一种数据采集方法、装置、电子设备及存储介质
CN104462547B (zh) 一种可配置的网页数据采集的方法及系统
CN106406844B (zh) 实现通讯交互平台公众号菜单的方法和装置
CN107958016A (zh) 功能页面定制方法及应用服务器
CN106547749B (zh) 网页数据采集的方法和装置
CN104580093A (zh) 网站通知消息的处理方法、装置及系统
CN102819591A (zh) 一种基于内容的网页分类方法及系统
CN106354843A (zh) 网络爬虫系统以及方法
CN107168872A (zh) 代码检查的方法、装置、存储介质和处理器
CN110134845A (zh) 项目舆情监控方法、装置、计算机设备及存储介质
CN107305527A (zh) 代码文件的处理方法和装置
CN112507273A (zh) 网页页面的生成方法、装置和电子设备
CN104391978A (zh) 用于浏览器的网页收藏处理方法及装置
CN104765746A (zh) 用于移动通讯终端浏览器的数据处理方法和装置
CN109918553B (zh) 移动终端爬取数据的方法、装置、移动终端和存储介质
CN108334508A (zh) 网页信息的提取方法和装置
CN103605686A (zh) 基于搜索的终端故障解决方案提供方法、服务器和系统
CN103870495A (zh) 用于从网站中提取信息的方法和装置
CN105938496A (zh) 网页内容提取方法及装置
CN109165332A (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
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Code adding method and device

Effective date of registration: 20190531

Granted publication date: 20180406

Pledgee: Shenzhen Black Horse World Investment Consulting Co.,Ltd.

Pledgor: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

Registration number: 2019990000503

PP01 Preservation of patent right
PP01 Preservation of patent right

Effective date of registration: 20240604

Granted publication date: 20180406