一种网页的在线编辑方法和装置与流程

文档序号:12006728阅读:192来源:国知局
一种网页的在线编辑方法和装置与流程
本申请涉及互联网技术,尤其涉及一种网页的在线编辑方法和装置。

背景技术:
网页是一种HTML或XHTML格式的文件。请参阅图1,网页通常存储于网络服务器,并由网页服务器程序管理。计算机或其他智能设备上的网页浏览器可从网络服务器的网页服务器程序获取网页,并在屏幕上显示出来。这一过程通常简单地描述为:网页浏览器从网络服务器获取网页。当网页浏览器从网络服务器获取网页之后,如果用户可通过网页浏览器对显示出来的网页进行编辑,编辑后的网页又能存储回网络服务器,则该过程称为网页的在线编辑。网页的在线编辑常被应用于留言板留言、论坛发贴、撰写博客日志等需要用户输入的场合。请参阅图2,这是传统的在线编辑网页的方法,包括如下步骤:步骤S21,网页浏览器接收网络服务器所传输的网页的HTML源代码,解析该HTML源代码并进行展示。步骤S22,网页浏览器接收用户对该网页的编辑指令,并将编辑后的网页的整个HTML源代码传输回网络服务器,以使网络服务器更新原始HTML源代码。这种在线编辑网页的方法具有如下缺点:其一,无法避免不必要的甚至是错误的HTML更新。在步骤S21中,大部分的网页浏览器在解析网页的HTML源代码时都会对其中的HTML标签进行检查并自动修正,包括增加HTML标签、修改HTML标签的属性、重排HTML标签的位置等。这些自动修正有些是正确的,有些是错误的;不同网页浏览器的自动修正方式也有区别;最终可能使自动修正后的HTML源代码与原始的HTML源代码之间存在不必要的甚至是错误的差异。其二,对网络带宽的消耗较大。在步骤S22中,网页浏览器将网页编辑后的整个HTML源代码全部传输回网络服务器,如果用户仅对网页进行部分修改,则对未修改部分的传输浪费了网络带宽。其三,有些网页包括一些不允许用户修改的内容。可是上述在线编辑网页的方法无法控制用户的操作,用户可能会修改不允许其修改的那部分网页内容,并传输回网络服务器进行保存,导致出现错误。

技术实现要素:
本申请所要解决的技术问题是提供一种网页的在线编辑方法,可以减少网页浏览器的自动修正对网页在线编辑的不利影响,并减少网络带宽消耗,同时扩大了在线编辑所适用的网页范围。为解决上述技术问题,本申请网页的在线编辑方法包括如下步骤:第1步,网页浏览器接收网络服务器传输的网页的HTML源代码,并对该HTML源代码中的元素进行不重复的编号,解析该HTML源代码并进行展示;第2步,网页浏览器接收用户对该网页的编辑指令,并记录编辑的元素对应的编号和/或编辑信息;第3步,网页浏览器仅将所述编辑的元素对应的编号和/或编辑信息的HTML源代码传输回网络服务器,以使所述网络服务器更新原始HTML源代码。与之相对应的,本申请网页的在线编辑装置包括:用于接收网络服务器传输的网页的HTML源代码的装置;用于对所接收的HTML源代码中的元素进行不重复的编号的装置;用于解析编号后的HTML源代码并进行展示的装置;用于接收用户对该网页的编辑指令装置;用于记录用户所编辑的元素对应的编号和/或编辑信息的装置;用于将所述编辑的元素对应的编号和/或编辑信息的HTML源代码传输回网络服务器,以使所述网络服务器更新原始HTML源代码的装置。本申请对网页的在线编辑方法及装置具有如下优点:其一,虽然网页浏览器仍会对HTML源代码中的HMTL标签进行自动修正,但由于网页浏览器只将用户编辑的那部分HTML源代码传输回网络服务器,即网络服务器仅对原始HTML源代码的部分内容进行更新,因而可以减少网页浏览器自动修正所带来的错误更新。其二,网页浏览器只需要将用户编辑的那部分HTML源代码传输回网络服务器,因而相较传统方式大大节省了网络带宽。其三,无论对于允许用户全文编辑的网页,还是对于只允许用户部分编辑的网页,本申请的网页在线编辑方法及装置均可胜任,因而扩展了应用范围。附图说明图1是网页浏览器向网络服务器获取网页的示意图;图2是现有的网页的在线编辑方法的流程图;图3是本申请的网页的在线编辑方法的实施例一的流程图;图4是本申请的网页的在线编辑方法的实施例二的流程图。具体实施方式请参阅图3,这是本申请网页的在线编辑方法的实施例一,包括如下步骤:步骤S31,计算机或其他智能设备上的网页浏览器向网络服务器提出访问网页的请求。网络服务器将该网页的HTML源代码传输给网页浏览器。网页浏览器接收网络服务器所传输的该网页的HTML源代码。例如,传输下面一段HTML源代码:然后,网页浏览器对该HTML源代码中的元素(标签和文本)进行不重复的编号,解析该网页的HTML源代码并展示在计算机或其他智能设备的屏幕上。在HTML源代码中,有一对尖括号包围的内容称为标签,没有尖括号包围的内容称为文本。任何HTML源代码都是由标签和文本这两部分元素所组成的。例如,上述那一段HTML源代码可进行如下编号:标签<div>给予编号1,标签<ul>给予编号2,标签<li>给予编号3,标签<a>给予编号4,标签<imgsrc="a.fig"/>给予编号5,文本“图1”给予编号6。这些编号只需满足互不重复即可。有些标签单独出现,例如<imgsrc="a.GIF"/>,这种标签必须编号。有些标签成对,例如<a>和</a>;前者称为开始标签,必须编号;后者称为结束标签,可以不给予编号。步骤S32,用户通过网页浏览器对该网页进行编辑,然后保存编辑后的网页。用户的编辑操作包括新增、修改和/或删除HTML源代码中的元素(标签和/或文本)。网页浏览器接收用户对该网页的编辑指令,并记录编辑的元素对应的编号和/或编辑信息。对于用户新增的元素,网页浏览器记录其HTML源代码、以及其前方或后方的至少一个已有元素的编号。优选地,网页浏览器记录用户所新增的元素之前或之后紧挨着的一个已有元素的编号。对于用户修改的元素,网页浏览器记录其HTML源代码、以及其编号。对于用户删除的元素,网页浏览器记录其编号。例如,用户修改后的HTML源代码如下:用户的编辑内容为:(1a)在编号2的标签<ul>之后新增<li><a>男装图</a></li>;(2a)删除编号5的标签<imgsrc="a.fig"/>;(3a)修改编号6的文本“图1”为文本“女装图”。网页浏览器记录的内容为:(1b)用户所新增元素的HTML源代码<li><a>男装图</a></li>,以及该新增元素之前的元素——标签<ul>及其编号2;或者记录:用户所新增元素的HTML源代码<li><a>男装图</a></li>,以及该新增元素之后的元素——标签<li>及其编号3。(2b)用户所修改的元素的编号6,及其修改后的内容“女装图”。(3b)用户所删除的元素的编号5。步骤S33,网页浏览器仅将所述编辑的元素对应的编号和/或编辑信息的HTML源代码传输回网络服务器,以使网络服务器更新原始HTML源代码。对于用户新增的元素,从该新增元素至记录编号的已有元素之间的HTML源代码(包括两端点),以及所记录的已有元素的编号。对于用户修改的元素,该修改的元素的HTML源代码、以及其编号。对于用户删除的元素,该删除的元素的编号。延续上例,网页浏览器仅将所记录的(1b)、(2b)、(3b)的HTML源代码及相应编号传输回网络服务器。网络服务器根据接收到的HTML源代码及编号,对原始的HTML源代码进行相应的新增、修改和/或删除,并保存。延续上例,对于接收到的(1b)部分的HTML源代码,网络服务器将该新增元素至记录编号的已有元素之间的HTML源代码(包括两端点)替换原始HTML源代码中的同编号的已有元素的HTML源代码。对于接收到的(2b)部分的HTML源代码,网络服务器将修改后的元素的HTML源代码替换原始HTML源代码中的同编号的已有元素的HTML源代码。对于接收到的(3b)部分的HTML源代码,网络服务器删除原始HTML源代码中的具有该编号的已有元素的HTML源代码。该实施例一隐含着这样一层含义:网络服务器在对原始HTML源代码进行局部更新时,了解该网页的原始HTML源代码中各元素的编号。这可以通过以下方式实现,即:网络服务器也对该网页的原始HTML源代码中的元素进行不重复的编号,且采用与网页浏览器相同的编号规则。该实施例一相应具有一种网页的在线编辑装置,包括:用于接收网络服务器传输的网页的HTML源代码的装置;用于对所接收的HTML源代码中的元素进行不重复的编号的装置;用于解析编号后的HTML源代码并进行展示的装置;用于接收用户对该网页的编辑指令装置;用于记录用户所编辑的元素对应的编号和/或编辑信息的装置;用于将所述编辑的元素对应的编号和/或编辑信息的HTML源代码传输回网络服务器,以使所述网络服务器更新原始HTML源代码的装置。所述用于记录用户所编辑的元素对应的编号和/或编辑信息的装置进一步包括:记录新增元素的HTML源代码、以及该新增元素的前方或后方的至少一个已有元素的编号的装置;记录修改元素的HTML源代码、以及该修改元素的编号的装置;记录删除元素的编号的装置。所述用于将所述编辑的元素对应的编号和/或编辑信息的HTML源代码传输回网络服务器,以使所述网络服务器更新原始HTML源代码的装置进一步包括:将新增元素至记录编号的那个已有元素之间的HTML源代码,以及所记录的已有元素的编号传输回网络服务器的装置;将修改元素的HTML源代码、以及该修改元素的编号传输回网络服务器的装置;将删除元素的编号传输回网络服务器的装置。请参阅图4,这是本申请网页的在线编辑方法的实施例二,包括如下步骤:步骤S41,网页浏览器接收网络服务器传输的网页的HTML源代码、以及该HTML源代码中的元素的不重复的编号,解析该HTML源代码并进行展示;步骤S42,与步骤S32相同;步骤S43,与步骤S33相同。该实施例二隐含着这样一层含义:网络服务器在传输网页的HTML源代码之前,已对该HTML源代码进行了不重复的编号。网络服务器在对原始HTML源代码进行局部更新时,了解该网页的原始HTML源代码中各元素的编号。这可以通过以下两种方式之一实现。其一,网络服务器在对网页的原始HTML源代码中的元素进行不重复的编号后,存储各个编号。其二,网络服务器在对网页的原始HTML源代码中的元素进行不重复的编号后,不存储编号;网络服务器在对原始HTML源代码进行局部更新之前,采用相同的编号规则再次编号。该实施例二也相应具有一种网页的在线编辑装置,与实施例一中的网页的在线编辑装置的区别在于,将用于接收网络服务器传输的网页的HTML源代码的装置、用于对所接收的HTML源代码中的元素进行不重复的编号的装置;合并为:用于接收网络服务器传输的网页的HTML源代码、以及该HTML源代码中的元素的不重复的编号的装置。上述两个实施例的主要区别在于对网页的原始HTML源代码中的元素进行编号的主体不同。在第一实施例中,是网页浏览器和网络服务器双方采用相同的编号规则,分别对原始HTML源代码中的元素进行编号。其优点是最大程度地节省了网络带宽,缺点是网页浏览器和网络服务器这两段都要消耗计算资源。在第二实施例中,或者是网络服务器两次采用相同的编号规则,分别对原始HTML源代码中的元素进行编号。第一次是将HTML源代码传输给网页浏览器之前的任意时候,第二次是在收到网页浏览器传输回来的编辑内容之前的任意时候。其优点是节省了网页浏览器一端的计算资源,也节省了网络服务器一段的缓存和/或存储资源,但消耗网络带宽较第一实施例稍大,因需要将编号一起传输给网页浏览器。在第二实施例中,或者是网络服务器仅一次对原始HTML源代码中的元素进行编号。其优点是节省了网页浏览器一端的计算资源,也节省了网络服务器一端的重复计算资源,但消耗网络带宽较第一实施例稍大,且网络服务器一端占用缓存和/或存储较第二实施例更大,因需要缓存编号。就计算效率而言,对原始HTML源代码中的元素进行编号的工作,放在网页浏览器一端执行,采用的是网页浏览器可直接执行的前端语言,例如JavaScript;放在网络服务器一端执行,采用的是网页浏览器不可直接执行的后端语言,例如Java、PHP、.Net等。后端语言的执行效率更高。就用户体验而言,对原始HTML源代码中的元素进行编号的工作,全部放在网络服务器一端进行较佳。因而这样便不会减缓网页浏览器的速度。下面给出一种对HTML源代码中的元素进行不重复的编号的具体方法:(1c)在HTML源代码的标签中增加一个属性,该属性的赋值为该标签的编号。(2c)对于HTML源代码中的文本,其必然处于一对父标签之间。所谓父标签是指一对开始标签和结束标签,且两者之间包括该文本,且与该文本的前后顺序最为接近。如果该文本的父标签之间只有该文本,则以该文本的父标签的编号同时表示该文本及其父标签。(3c)如果该文本的父标签之间除了该文本,还具有其他元素,通常为其他标签;则为该文本紧挨着新增一个或包裹一对标签,该新增标签可紧挨着该文本之前或之后;该包裹标签中的开始标签紧挨着该文本之前,结束标签紧挨着该文本之后。在新增或包裹标签中增加一个编号属性表示该文本的编号。上述(1c)、(2c)、(3c)操作对单独出现的标签是必须编号的;对成对出现的标签中,开始标签是必须编号的,结束标签是可选编号的。采用该方法进行编号后,步骤S31中的那一段HTML源代码及其编号就变为:其中elimid属性表示标签的编号,<text>标签是为文本所新增的、用来表示编号的紧挨着该文本的标签,"编号6"的<text>标签就是为文本"图1"的包裹标签。相应地,所述用于对所接收的HTML源代码中的元素进行不重复的编号的装置进一步包括:用于在HTML源代码的标签中增加一个表示其编号的新属性的装置;用于对HTML源代码中的文本,当其为一对父标签之间的仅有元素,则以其父标签中的表示编号的新属性同时指代该文本及其父标签的装置;用于对HTML源代码中的文本,当其为一对父标签之间的元素,且这一对父标签之间还有其他元素,则为该文本紧挨着新增一个或包裹一对标签,在新增或包裹的标签中增加一个表示该文本的编号的新属性的装置。优选地,所述用于对所接收的HTML源代码中的元素进行不重复的编号的装置进一步包括:用于对单独出现的标签必须编号的装置;用于对成对出现的标签仅限定开始标签必须编号的装置。上述对HTML源代码中的元素进行不重复的编号的具体方法可以进一步简化:(1d)在HTML源代码的标签中增加一个属性,该属性的赋值为该标签的编号。(2d)为HTML源代码中的文本紧挨着新增一个或包裹一对标签,该新增标签可紧挨着该文本之前或之后;该包裹标签中的开始标签紧挨着该文本之前,结束标签紧挨着该文本之后。在新增或包裹标签中增加一个编号属性表示该文本的编号。上述(1d)、(2d)操作对单独出现的标签是必须编号的;对成对出现的标签中,开始标签是必须编号的,结束标签是可选编号的。相应地,所述用于对所接收的HTML源代码中的元素进行不重复的编号的装置进一步包括:用于在HTML源代码的标签中增加一个表示其编号的新属性的装置;用于为HTML源代码中的文本紧挨着新增一个或包裹一对标签,在新增或包裹的标签中增加一个表示其所紧挨着的文本的编号的新属性的装置。优选地,所述用于对所接收的HTML源代码中的元素进行不重复的编号的装置进一步包括:用于对单独出现的标签必须编号的装置;用于对成对出现的标签仅限定开始标签必须编号的装置。采用上述两种编号方法后,网络服务器对HTML源代码的局部更新就具体化为:(1e)对于接收到的从新增元素至记录编号的已有元素之间的HTML源代码(包括两端点),以及所记录的已有元素的编号;当网络服务器发现所记录编号的已有元素为成对标签(或其中的开始标签)、且该成对标签中(或其中的开始标签之后、且结束标签之前)仅有文本;则网络服务器将该新增元素至记录编号的已有元素之间的HTML源代码(包括两端点)替换该网页的原始HTML源代码中的同编号的已有元素及其中的文本(或其中的开始标签及其后的文本)的HTML源代码。当网络服务器发现所记录编号的已有元素为成对标签(或其中的开始标签)、且该成对标签中(或其中的开始标签之后、且结束标签之前)除了文本之外还有其他元素,则网络服务器将该新增元素至记录编号的已有元素之间的HTML源代码(包括两端点)替换该网页的原始HTML源代码中的同编号的已有元素的HTML源代码。当网络服务器发现所记录编号的已有元素为单个标签(即单独出现的标签),则网络服务器将该新增元素至记录编号的已有元素之间的HTML源代码(包括两端点)替换该网页的原始HTML源代码中的同编号的已有元素的HTML源代码。该实施例实际上只对HTML源代码中的标签进行编号,而不对文本进行编号,因而上面三种判断已经穷尽了所有情形。(2e)对于接收到的修改的元素的HTML源代码,以及其编号;当网络服务器发现该修改的元素为成对标签(或其中的开始标签)、且该成对标签中(或其中的开始标签之后、且结束标签之前)仅有文本,则网络服务器将该修改的元素的HTML源代码替换该网页的原始HTML源代码中的同编号的已有元素及其中的文本(或其中的开始标签及其后的文本)的HTML源代码。当网络服务器发现该修改的元素为成对标签(或其中的开始标签)、且该成对标签中(或其中的开始标签之后、且结束标签之前)除了文本之外还有其他元素,则网络服务器将该修改的元素的HTML源代码替换该网页的原始HTML源代码中的同编号的已有元素的HTML源代码。当网络服务器发现该修改的元素为单个标签,则网络服务器将该修改的元素的HTML源代码替换该网页的原始HTML源代码中的同编号的已有元素的HTML源代码。该实施例实际上只对HTML源代码中的标签进行编号,而不对文本进行编号,因而上面三种判断已经穷尽了所有情形。(3e)对于接收到的删除的元素的编号;当网络服务器发现该删除的元素为成对标签(或其中的开始标签)、且该成对标签中(或其中的开始标签之后、且结束标签之前)仅有文本,则网络服务器将原始HTML源代码中的同编号的已有元素及其中的文本(或其中的开始标签及其后的文本)的HTML源代码删除掉。当网络服务器发现该删除的元素为成对标签(或其中的开始标签)、且该成对标签中(或其中的开始标签之后、且结束标签之前)除了文本之外还有其他元素,则网络服务器将该网页的原始HTML源代码中的同编号的已有元素的HTML源代码删除掉。当网络服务器发现该删除的元素为单个标签,则网络服务器将该网页的原始HTML源代码中的同编号的已有元素的HTML源代码删除掉。该实施例实际上只对HTML源代码中的标签进行编号,而不对文本进行编号,因而上面三种判断已经穷尽了所有情形。上述两种对HTML源代码中的元素进行编号的具体方法,网络服务器在保存HTML源代码时,可以连通编号一起保存,也可以去除编号仅保留常规的HTML源代码。本申请实施例可以使用其它通用或专用计算或通信环境或配置来操作。适用于本申请的众所周知的计算系统、环境和配置的示例包括但不限于,个人计算机、服务器,多处理器系统、基于微处理的系统、小型机、大型计算机、以及包括任一上述系统或设备的分布式计算环境。当然本申请实施例也可以通过软件来实现。以上仅为本申请的优选实施例,并不用于限定本申请。对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1