用于评估万维网页各方面的方法和装置的制作方法

文档序号:6651246阅读:231来源:国知局
专利名称:用于评估万维网页各方面的方法和装置的制作方法
技术领域
本发明涉及计算机软件,尤其涉及可以用于确认万维网站各方面的软件。
背景技术
许多人利用因特网来使用万维网(“web”)。在web环境中,服务器计算机以万维网页的形式提供由客户计算机请求的信息。万维网页包括以诸如超文本标记语言(HTML)或可扩展标记语言(XML)等标记语言格式提供的一组指令,即“标签”,以及其它信息。在客户计算机上执行的浏览器程序接收并处理标签来为用户创建显示。标签可以定义页面元素的外观,诸如文本元素的字体。标签也可以定义通过统一资源定位器(URL)来标识另一web资源的超文本链接。用户可以通过在其上“点击”(例如,通过使用鼠标来将光标移动至该链接上并按下鼠标上的按键)来调用链接,这会促使向服务器计算机提交访问由URL指定的资源的请求。
当页面由浏览器显示时,包含在万维网页中的某些元素可以不立即向用户表现。例如,万维网页可以包括嵌入的命令,诸如在动态HTML(DHTML)格式中提供的命令,它们被执行以当一事件发生时显示某些页面元素。可促使嵌入命令执行的一个示例性事件是特定用户输入的接收。例如,当检测到用户已经将光标移动到特定页面元素(例如,某个链接)之上后,可以执行促使在显示器上紧接该页面元素出现新菜单的命令。这类显示元素一般被称为“飞出菜单(fly-out menu)”。该菜单上的每一条目一般是允许用户访问web资源的超文本链接,且每一条目可以定义可以促使出现另一飞出菜单的事件。
图1A-1B示出了典型的飞出菜单显示元素。图1A包括界面101,它是由浏览器程序呈现的万维网页的显示。界面101示出了对万维网页常见的各种元素,包括链接105、110、115和120,以及菜单104上的条目103。在所示的示例性界面中,条目103中包含向右箭头的每一条目(即,条目103A、103C、103D和103F)是从中可以出现飞出菜单的元素。即,当关于这些条目中的任一个的特定事件发生(例如,用户引导鼠标至元素上)之后,可以执行会促使飞出菜单在界面101上紧接该元素出现的命令。
图1B示出了用户将光标移动至条目103A上促使显示飞出菜单130。飞出菜单105包含条目106A-106E,每一条目都定义了一超文本链接。
一般而言,通过文档对象模型(DOM)启用DHTML功能,DOM是允许对页面元素进行处理的浏览器组件。特别地,浏览器通过将页面标签、命令和其它元素装载至DOM来处理页面。在Microsoft Internet Explorer浏览器的情况下,元素可以被装载至由DOM提供的一个或多个数组中,且可以向DOM发出执行特定页面元素处理的指令,诸如当接收到可能调用嵌入命令的用户输入时。使用图1A-1B中示出的飞出菜单的示例,可以指令DOM在用户将光标移动到“Windows XP”菜单条目上时调用嵌入命令,而该嵌入命令的执行可能会促使出现飞出菜单。
某些万维网页,诸如提供复杂功能的那些万维网页,可能是难以维护的。万维网页的常见不足是它提供无效链接,无效链接是指定无效URL的链接。为此,出现了允许管理员或其它用户确定万维网页上链接的有效性的众多自动化工具。一般而言,这些工具提供了允许用户查看万维网页上提供的链接的有效性和部署的图形用户界面(GUI)。

发明内容
根据本发明的一个实施例,提供了用于评估包含在万维网页中的至少一条链接的自动化方法,该万维网页被配置成通过浏览器程序向用户显示,该万维网页包含当被执行时生成至少一条链接的命令,该命令被配置成在用户提供了输入之后执行。该方法包括(A)通过模拟输入的提供来促使生成至少一条链接。该方法也可以包括(B)确定该至少一条链接的有效性;以及(C)产生指示该至少一条链接是否有效的报告。
根据本发明的另一实施例,提供了其上编码了指令的计算机可读介质,当指令被执行时,执行用于评估包含在万维网页中的至少一条链接的方法,该万维网页被配置成通过浏览器向用户显示,该万维网页包含当被执行时生成至少一条链接的命令,该命令被配置成在用户提供输入之后执行。该方法包括(A)通过模拟输入的提供来促使生成至少一条链接。该方法也可以包括(B)确定该至少一条链接的有效性;以及(C)产生指示该至少一条链接是否有效的报告。
根据本发明的又一实施例,提供了一种用于执行评估包含在万维网页中的至少一条链接的自动化方法的系统,该万维网页被配置成通过浏览器程序向用户显示,该万维网页包含当被执行时生成该至少一条链接的命令,该命令被配置成当用户提供了输入之后执行。该系统包括通过模拟输入的提供以促使生成至少一条链接的生成控制器。该系统还可以包括确定该至少一条链接的有效性的有效性控制器;以及产生指示该至少一条链接是否有效的报告的报告控制器。


附图并不旨在按规定比例绘制。附图中,各张图中示出的同一组件由同样的标号标识。每一组件并非在在每一附图中都有标号。附图中图1A描绘了用于向用户呈现万维网页的示例性浏览器界面;图1B描绘了示出在显示了万维网页中包含的元素之后图1A的万维网页的浏览器界面;图2是可用于实现本发明的示例性计算机系统的框图;图3是可在其上存储构成本发明的实施例的程序指令的示例性计算机存储器的框图;图4是示出根据本发明的一个实施例,可通过其来标识包含在万维网页中的元素的示例性过程的流程图;图5A-5B是示出根据本发明的一个实施例,用于标识包含在万维网页中的元素的示例性技术的示意图;图6是示出用于确认包含在万维网页中的链接的示例性方法的流程图;以及图7描绘了根据本发明的一个实施例,由确定包含在万维网页中的元素的状态的实用程序显示的示例性浏览器界面。
具体实施例方式
本发明的各方面针对标识包含在万维网页中的链接的自动化方法。例如,一个实施例提供了用于标识通常仅在诸如特定用户输入的接收等事件的发生之后显示的链接的自动化方法。例如,可以显示作为通常在特定用户输入接收之后出现的飞出菜单中的条目提供的链接。
根据一个实施例,包括标签、链接和其它元素的万维网页的元素可以被装载至文档对象模型(DOM)。在一个实施例中,标签被装载至由DOM提供的数组。计算机程序实体可以向DOM发出模拟特定事件的发生的指令,诸如对关于特定页面元素的浏览器输入的接收,从而促使显示包含在该页面中的链接。例如,向DOM发出的指令可以模拟用户将光标移动至特定标签上。模拟事件可促使包含在页面内的命令(例如,嵌入在页面中的动态HTML命令)被调用,从而促使其它链接的显示。可以执行递归过程来评估对关于新显示的链接的任一个的事件模拟是否会促使将显示更多链接。
例如,本发明的实施例可以被用来促使显示页面上的链接,使得自动化的过程可以评估它们的有效性。例如,当显示了页面上的链接之后,自动化过程可以发出访问由每一链接指定的资源的请求。该过程可以基于服务器对该请求的响应,诸如由服务器为所请求的资源返回的状态码,来评估每一链接的有效性。关于每一链接的评估的结果可以通过图形用户界面(GUI)向用户呈现。由此,本发明的一个实施例可以使得用户能够更有效地评估包含在页面中的链接的有效性,诸如在事件发生之后动态生成的那些链接。
应当理解,本发明不限于其中评估页面上的链接的有效性的使用。实际上,本发明的实施例可以用众多方式实现,且可以具有众多应用。例如,本发明的实施例可以被用来使得用户能够产生包含在页面中的链接的更完整清单,而无需评估这些链接的有效性。
可以在诸如图2中示出的示例性计算机系统200等一个或多个计算机系统上实现本方面的各方面。计算机系统200包括输入设备202、输出设备201、处理器203、存储器系统204和存储206,所有这些通过可包含一个或多个总线、开关和/或网络的互连机制205来直接或间接地被耦合。输入设备202从用户或机器(例如,操作人员或者电话接收器)处接收输入,且输出设备201向用户或机器(例如,液晶显示器)显示或发送信息。处理器203一般执行被称为操作系统(例如,MicrosoftWindows(R)家族操作系统或其它合适的操作系统)的计算机程序,操作系统控制其它计算机程序的执行,并提供调度、输入/输出和其它设备控制、计算、编译、存储分配、数据管理、存储器管理、通信和数据流控制。处理器和操作系统共同定义了以其它计算机编程语言编写应用程序的计算机平台。
处理器203也可以执行一个或多个计算机程序来实现各种功能。这些计算机程序可以用任何类型的计算机编程语言来编写,包括过程编程语言、面向对象编程语言、宏语言、或其组合。这些计算机程序可以被存储在存储系统206中。存储系统206可以在易失性或非易失性的介质上保持信息,且可以是固定或可移动的。存储系统206将在图3中更详细示出。
存储系统206一般包括计算机可读和可写非易失性记录介质301,其上存储定义计算机程序或将由程序使用的信息的信号。介质可以是,例如磁盘或闪存。通常,在操作中,处理器203促使数据从非易失性记录介质301中读取至易失性存储器302(例如,随机存取存储器,即RAM)中,易失性存储器302允许处理器203对信息较介质301更快的访问。如图3所示,存储器302可以位于存储系统206中,或者如图2所示,位于存储器系统204中。处理器203一般处理集成电路存储器204、302内的数据,然后当处理完成后将数据复制至介质301。用于管理介质301与集成电路存储器元件204、302之间的数据移动的各种机制是已知的,且本发明不限于此。本发明也不限于特定的存储器系统204或存储系统206。
图4描述了用于显示包含在万维网页中的链接的示例性技术。可以使用由文档对象模型(DOM)提供的功能来执行图4的过程。该功能参考图5A-5B来描述。一般而言,可以通过将包含在万维网页中的标签的至少一部分装载至由DOM提供的数组,并模拟关于数组中的每一标签的事件来确定是否显示一个或多个新链接作为模拟的结果,以执行图4的过程。在图4的示例性过程中,新显示的链接被自动添加到数组。然而,因为新链接可以被置于数组中的任何位置,所以每次添加新链接时,该过程返回至数组的开头来重新开始模拟过程。另外,因为每一新显示的链接可以定义促使显示更多链接的事件,所以该过程继续,直到模拟了关于数组中所有标签的事件。这样,该过程是递归的。
参考图4,在过程400开始之后,启动动作410,在那里万维网页被装载至DOM。在一个实施例中,将页面装载至DOM之后,包含在页面中的任何初始指令被允许执行。例如,某些页面包含在页面接收之后立即由浏览器执行来定义介绍性显示序列的指令。该序列可以在显示“真实”页面之前向用户显示一段较短的时间。在一个实施例中,这些初始指令被允许执行,使得当介绍性序列完成后显示呈现给用户的标签和数据。
在动作410完成之后,该过程前进至动作420,在那里包含在页面中的标签被装载至由DOM提供的数组。然而,本发明不限于通过将标签装载至数组来实现,而是可以使用任何合适的处理技术。
在一个实施例中,被装载至数组的标签包括链接、表和“分界(div)”标签。然而,本发明在这方面不受限制,而是可以处理任何合适的标签类型。被处理的标签可以是通常包含可以在事件发生之后显示另外的链接的页面元素的那些标签。
在图5A中示出向其装载标签的示例性数组501。当被装载后,数组501含有7行,标记为A-G,包含标签1-7上的信息。每一行包含关于一个特定标签的信息。例如,当最初被装载后,行A包含关于标签1的信息。每一标签上的信息被组织成三列。特别地,列405包含标签名,列510包含关于标签是否已经被该过程评估的指示,而列515包含标签类型。
回到图4,当动作420完成之后,该过程前进至动作430,在那里确定包含在数组中的链接的数量。在一个实施例中,这可以通过生成数组501中标签类型(列515中提供的)指示该标签为链接的行的数量的计数来执行。然而,可以使用用于确定包含在页面中的链接的数量的任何合适的技术。
在动作430完成之后,该过程前进至动作440,在那里选取存储在数组中的第一标签(即,存储在最接近数组开头处的标签)用于处理。这可以用任何合适的方式来执行。
在动作440完成之后,该过程前进至动作450,在那里选择数组中下一未评估的标签。在一个实施例中,该动作包括选取数组中列510中的指示规定该际签还没有被评估的下一标签。作为示例,在该过程的开始,数组中下一未评估的标签可以是数组中的第一标签,诸如可以选择行A中的标签1。
在动作450完成之后,该过程前进至动作460处,在那里被选取的标签被标记为已经被评估的。在一个实施例中,这涉及为所考虑的标签更新包含在列510中的指示。
在动作460完成之后,该过程前进至动作470,在那里对于动作450中选取的标签模拟一个或多个事件。在一个实施例中,这涉及向DOM发出模拟可能发生的一个或多个事件的一条或多条指令。例如,可以指令DOM对所选择的标签“激发一个事件”或多个事件,诸如由特定用户输入定义的一个或多个事件。每一事件可以表示例如可以由用户通过浏览器程序提供的输入。例如,可以指令DOM对于所选取标签激发“鼠标置于其上”事件,该事件在用户将光标移动到标签上时发生。可以被模拟的其它示例性事件包括“鼠标点击”和“鼠标在其上时敲入回车键”事件,它们分别是在用户将光标移动到所选取的标签上并且点击鼠标或者敲击“enter回车”键时发生的。应该理解,可以对于所选取的标签模拟任何合适类型和数量的事件,本发明在这方面也不受限制。
一个或多个事件的激发可以促使调用包含在万维网页中的一条或多条命令。例如,模拟事件可以促使执行以DHTML格式提供的嵌入命令。命令的执行可以促使一条或多条新链接被装载至数组501。例如,模拟事件可促使“出现”飞出菜单(即,促使创建新链接),使得这些链接作为新标签被自动装载至数组501。
如上所述,新标签可以输入到数组的任何位置中。如由图5B所示,新生成的标签8、9和10已经被装载至数组501,但是并非被装载至行H、I、J(即,数组的末端),它们被分别装载至行A、E和H。因为新生成的标签8、9和10中的每一个可以定义可促使生成一条或多条新链接的事件,因此在一个实施例中,也对于这些新的标签模拟事件。
为了实现这一点,如果新标签已经被装载至数组501,那么该过程返回至数组的第一标签来重新开始处理。这样,当动作470完成之后,在动作480中,产生数组中的链接的计数。下一步,在动作485中,作出关于动作480中产生的计数(即,在动作470完成之后包含在数组501中的链接的数量)是否与动作430中确定的量(即,动作470完成之前的链接的计数)不同的判断。如果数量是不同的(如在新标签8、9和10生成后),该过程返回至动作440,在那里选取数组中的第一标签(即,行A中的标签9)用于处理。
如果数组中的标签数量是相同的,那么该过程前进至动作490,在那里作出关于是否评估了数组中的所有标签的判断。在一个实施例中,这是通过为每一行评估包含在列510中的指示来执行的。如果存储在每一行该列中的指示显示各个标签都已经被评估,那么该过程完成。
如果确定不是数组501中的所有标签都已被评估,那么该过程返回至动作450,在那里选取下一未评估的标签用于处理。然后重复上述动作,使得对于数组中的每一标签,以及对于被显示为结果的每一链接,模拟一个或多个事件。
当显示了包含在万维网页中的所有链接之后,可以确认每一链接。在一个实施例中,可以使用图6中所示的过程600来确定包含在万维网页中的每一链接的有效性。
在过程600开始之后,启动动作610,在那里选取一条链接用于评估。这可以用任何合适的方式来执行。例如,可以从数组501(图5A-5B)中选取链接。例如,可以使用列515中提供的类型指示来选取链接。在一个实施例中,可以选取数组中的第一链接用于评估。
在动作610完成之后,该过程前进至动作620,在那里发出请求以检索由链接提供的URL所指定的资源。在一个实施例中,发出HTTP请求来检索资源。
然后,该过程前进至动作630,在那里作出关于检索尝试是否成功的判断。在一个实施例中,该判断可以基于响应于在动作620中发出的HTTP请求由服务器返回的状态码。例如,如果服务器响应于HTTP请求返回状态码“200”,那么检索尝试可以被认为是成功的,但是如果服务器返回状态码“404”,那么检索尝试可以被认为是不成功的。如果检索尝试被认为是成功的,那么该过程前进至动作640,在那里该链接被标记为有效的。如果检索尝试被认为是不成功的,那么该过程前进至动作645,在那里该链接被标记为无效的。
当动作640或645中的任一个完成之后,该过程前进至动作650,在那里作出该过程是否评估了所有链接的判断。如果不是所有链接都已被评估了,那么该过程返回至动作610,并且选取另一链接用于评估。如果已经评估了所有链接,那么过程600完成。
如上所述,本发明的实施例可以用来标识包含在页面中的链接,使得可以评估这些链接的有效性。例如,一个自动化过程可以实现上述过程,以标识包含在页面中的链接、通过发出访问所引用的资源的请求来评估这些链接中的每一个、以及通过图形用户界面向用户呈现评估的结果。图7中示出了示例性用户界面700。界面700提供了包含在界面101(图1)中所示万维网页中的链接的有效性的指示。
界面700包括部分701和702。部分702提供了一网格显示,其中在每一列中呈现关于链接的特定信息。例如,列702A包括界面100上示出的表示链接的文本,列702B包含该链接的标题,列702C包含响应于检索链接的尝试而返回的状态码,而列702D包含从服务器中获取状态码所需的时间。
特定链接上的信息被组织成行。例如,由文本“Microsoft.com home(Microsoft.com主页)”表示的链接105(图1A)上的信息在行705中示出。类似地,链接110、115、120和103A上的信息分别在行710、715和720和725上示出。
如行730中所示,界面700显示关于仅在事件发生之后出现的链接的信息。特别地,行730显示链接106A上的信息,该链接在图1A中没有示出。而链接106A仅在图1B中示出,且作为飞出菜单130上的条目出现,飞出菜单130在接收到用户输入之后出现。行730包括表示链接106A的文本、链接标题、状态码和获取状态码所需时间,以及其它信息。可以示出关于万维网页各方面的任何合适的信息,包括诸如在列702中显示的那些链接特征。
可以理解,通过使用参考图7描述的界面,管理员或其它用户可以获取由万维网页提供的链接的更全面的清单。结果是,用户可以诸如通过确定包含在页面中的链接的有效性来更有效地维护站点。
通过阅读前述内容,也应该理解,本发明的实施例的各方面可以被实现在一个或多个计算机程序、和/或硬件、固件或其组合中。例如,实施例的各种组件,或者单独或者相组合,可以被实现为包含计算机可读介质的计算机程序产品,在该计算机可读介质上储存了指令以供处理器访问和执行。当由计算机执行时,该指令可以指导计算机来实现本实施例的各个方面。
已经描述了本发明的至少一个实施例的若干方面,可以理解,对本领域的技术人员而言,能够容易地想到各种变换、修改和改进。这样的变换、修改和改进旨在作为本申请的一部分,且旨在落入本发明的精神和范围之内。从而,前述描述和附图仅作为示例。
权利要求
1.一种用于评估包含在万维网页中的至少一条链接的自动化方法,所述万维网页被配置成通过浏览器程序向用户显示,所述万维网页包含当被执行时生成所述至少一条链接的命令,所述命令被配置成在用户提供了输入之后执行,所述方法包括(A)通过模拟输入的提供来促使生成所述至少一条链接。
2.如权利要求1所述的方法,其特征在于,所述至少一条链接包括飞出菜单中的至少一个条目。
3.如权利要求1所述的方法,其特征在于,所述动作(A)还包括将万维网页装载至文档对象模型(DOM)和促使所述DOM执行所述命令。
4.如权利要求3所述的方法,其特征在于,所述万维网页包括多个标签,且所述动作(A)还包括将所述多个标签装载至由所述DOM提供的数组;以及模拟关于被装载至所述数组的每一标签的输入的提供。
5.如权利要求1所述的方法,其特征在于,所述动作(A)还包括通过模拟所述输入的提供来促使生成第一链接;以及通过模拟关于所述第一链接的输入的提供来促使生成第二链接。
6.如权利要求1所述的方法,其特征在于,所述命令是以动态HTML(DHTML)形式提供的。
7.一种其上编码指令的计算机可读介质,当执行所述指令时,执行一种用于评估包含在万维网页中的至少一条链接的自动化方法,所述万维网页被配置成通过浏览器程序向用户显示,所述万维网页包含当被执行时生成所述至少一条链接的命令,所述命令被配置成在用户提供了输入之后执行,所述方法包括(A)通过模拟输入的提供来促使生成所述至少一条链接。
8.如权利要求7所述的计算机可读介质,其特征在于,所述至少一条链接包括飞出菜单中的至少一个条目。
9.如权利要求7所述的计算机可读介质,其特征在于,所述动作(A)还包括将万维网页装载至文档对象模型(DOM)和促使所述DOM执行所述命令。
10.如权利要求9所述的计算机可读介质,其特征在于,所述万维网页包括多个标签,且所述动作(A)还包括将所述多个标签装载至由所述DOM提供的数组;以及模拟关于被装载至所述数组的每一标签的输入的提供。
11.如权利要求7所述的计算机可读介质,其特征在于,所述动作(A)还包括通过模拟所述输入的提供来促使生成第一链接;以及通过模拟关于所述第一链接的输入的提供来促使生成第二链接。
12.如权利要求7所述的计算机可读介质,其特征在于,所述命令是以动态HTML(DHTML)形式提供的。
13.一种用于执行用于评估包含在万维网页中的至少一条链接的自动化方法的系统,所述万维网页被配置成通过浏览器程序向用户显示,所述万维网页包含当被执行时生成所述至少一条链接的命令,所述命令被配置成在用户提供了输入之后执行,所述系统包括生成控制器,它通过模拟输入的提供来促使生成所述至少一条链接。
14.如权利要求13所述的系统,其特征在于,所述至少一条链接包括飞出菜单中的至少一个条目。
15.如权利要求13所述的系统,其特征在于,所述生成控制器还将万维网页装载至文档对象模型(DOM)并促使所述DOM执行所述命令。
16.如权利要求15所述的系统,其特征在于,所述万维网页包括多个标签,且所述生成控制器还将所述多个标签装载至由所述DOM提供的数组;以及模拟关于被装载至所述数组的每一标签的输入的提供。
17.如权利要求13所述的系统,其特征在于,所述生成控制器还通过模拟所述输入的提供来促使生成第一链接;以及通过模拟关于所述第一链接的输入的提供来促使生成第二链接。
全文摘要
提供了一种用于评估包含在万维网页中的链接的有效性的自动化方法。该万维网页可以包含诸如动态HTML或其它嵌入命令等命令,这些命令被配置成在诸如提供用户输入等事件的发生之后执行。根据一个实施例,该方法包括通过模拟事件的发生来促使生成链接。在链接生成之后,可以确定它们的有效性,并可以产生指示该链接是否有效的报告。
文档编号G06F17/30GK1797405SQ20051012875
公开日2006年7月5日 申请日期2005年11月30日 优先权日2004年12月30日
发明者M·A·斯塔博德, R·W·法伯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1