用于检测新浏览器窗口的方法及系统与流程

文档序号:11780208阅读:239来源:国知局
用于检测新浏览器窗口的方法及系统与流程
用于检测新浏览器窗口的方法及系统对相关申请的交叉引用本申请要求2011年1月6日提交的申请号为12/985,799、题为“TECHNIQUESFORDETECTINGNEWBROWSERWINDOWS”的美国专利申请的优先权,其全部内容通过引用而被合并于此以用于所有目的。本公开与下列共同转让的、共同未决的、2011年1月6日提交的申请号12/985,805的题为“TECHNIQUESFORDETECTINGINACTIVEBROWSERWINDOWS”的美国专利申请有关,其全部内容通过引用而被合并于此以用于所有目的。技术领域本公开一般涉及网络应用,并且具体涉及用于跟踪在这样的应用中的客户端浏览器窗口的生命周期的技术。

背景技术:
一般而言,网络应用是在服务器上托管并且由用户经由客户端网络浏览器可访问的软件应用。在一般使用的情况中,用户打开客户端浏览器窗口并且导航到应用的初始网页。从那里,用户可以输入信息(例如,经由嵌入在页标记中的表单元素)和/或导航到应用的附加页以完成某些任务或处理。在有些情况下,用户可以在访问应用的同时从现有浏览器窗口的背景打开新浏览器窗口。这使得浏览器将新请求发送到用于显示在现有窗口中的应用页的服务器。在当前实现中,服务器通常无法区分此新窗口事件与用户已经重载/更新现有窗口的情况–在任意一种情况下,由服务器接收到的请求似乎来源于现有窗口。这可能是成问题的,因为服务器通常保持用于每个浏览器窗口的单独的应用状态信息,并且因此需要在渲染页面之前知道它在服务哪个窗口。例如,如果服务器错误地确定客户端请求对应于现有窗口的重载(当它事实上对应于新窗口的打开),则服务器可以在处理请求时无意地修改现有窗口的应用状态。在其他的实例中,用户可以关闭他/她用于访问应用的浏览器窗口,或导航离开窗口内的应用(例如,到第三方网站)。在当前实现中,服务器通常无法区分这些情况与用户已经导航(在窗口内)到相同应用中的另一个网页的情况–在任意一种情况下,服务器仅仅接收源自浏览器的窗口中的应用页已被重载/破坏的通知。这可能使服务器难以确定何时释放用于每个浏览器窗口的由服务器维护的存储器资源(例如,应用状态信息)。例如,如果服务器错误地确定浏览器窗口仍然被用来访问应用(当用户事实上已经关闭窗口或导航离开应用时),则服务器可以将用于窗口的资源保持在存储器中的时间比所需的时间长,这从效率和安全角度都是不希望的。

技术实现要素:
本发明的实施例提供用于在网络应用的背景内跟踪客户端浏览器窗口的生命周期的技术。在一组实施例中,网络应用的服务器组件可以接收源自客户端浏览器窗口的请求,其中请求包括资源定位符(例如URL)和窗口标识符。作为响应,服务器组件可以将脚本发送到窗口以用于检索窗口的实际标识符/名称。基于由脚本返回的实际标识符和包括在初始请求内的窗口标识符,服务器组件可以确定窗口是新窗口还是现有窗口并且可以视情况处理请求。在另一组实施例中,服务器组件可以接收第一客户端浏览器窗口中的应用页已经被卸载/破坏的通知。作为响应,服务器组件可以使第一窗口与期满时间相关联并且可以将第一窗口增加到潜在地不活动的窗口的“期满”列表(即,关闭或不再用来访问应用)。如果在第一窗口处于期满列表中时新的请求由服务器组件从第一窗口接收到,则服务器组件可以将第一窗口识别为活动的(即,仍然用来访问应用)并且从列表中去除它。如果在第一窗口处于期满列表中时新的请求由服务器组件从第二窗口接收到,则服务器组件可以将来自第二窗口的请求被接收的时间和与第一窗口相关联的期满时间作比较。如果请求的时间比期满时间晚,则服务器组件可以识别第一窗口为不活动的并且释放与第一窗口相关联的全部资源。在另一组实施例中,服务器组件可以接收在用于客户端浏览器的最后剩余窗口中的应用页已经被卸载/破坏的通知。作为响应,服务器组件可以将用于与浏览器相关联的用户会话的会话超时变量从第一持续时间(例如一小时)修改到比第一持续时间短的第二持续时间(例如,十分钟)。服务器组件然后可以开始会话超时变量的倒计时。如果在第二持续时间期满前由服务器组件从最后剩余窗口接收到请求,则服务器组件可以将窗口识别为活动的并且将会话超时变量复位到第一持续时间。如果在第二持续时间期满前没有接收到来自最后剩余窗口的请求,则服务器组件可以将窗口识别为不活动的,释放与窗口相关联的全部资源,并且释放与用户会话相关联的全部资源。根据本发明的一个实施例,提供一种方法包括:由服务器计算机系统接收源自正在客户端计算机系统上运行的浏览器窗口的第一请求,第一请求包括统一资源定位符(URL)和第一窗口标识符;由服务器计算机系统生成回送(loopback)标识符;以及由服务器计算机系统在与请求相关联的用户会话中存储回送标识符。该方法还包括:由服务器计算机系统生成包括URL、第一窗口标识符和回送标识符的脚本;以及由服务器计算机系统将脚本发送到发起第一请求的窗口。在一个实施例中,由运行在客户端计算机系统上的网络浏览器执行脚本以便于确定发起第一请求的窗口是新窗口还是现有窗口。在一个实施例中,回送标识符是随机生成的数字。在一个实施例中,第一请求是超文本传送协议(HTTP)请求。在一个实施例中,只有当第一请求是HTTPGET或HEAD请求时,脚本才被发送到发起第一请求的窗口。在一个实施例中,脚本被配置为在客户端计算机系统上确定第一窗口标识符是否与发起第一请求的窗口的标识符匹配,并且基于此确定,将第二请求发送到服务器计算机系统。在一个实施例中,如果第一窗口标识符与发起第一请求的窗口的标识符匹配,则第二请求包括URL、回送标识符和第一窗口标识符。在一个实施例中,如果第一窗口标识符未与发起第一请求的窗口的标识符匹配,则第二请求包括URL、回送标识符、和不同于第一窗口标识符的第二窗口标识符。在一个实施例中,所述方法还包括:由服务器计算机系统接收第二请求;由服务器计算机系统将包括在第二请求内的回送标识符与存储在用户会话中的回送标识符进行匹配;以及从用户会话中去除回送标识符。在一个实施例中,所述方法还包括:如果第二请求包括第一窗口标识符,则由服务器计算机系统确定发起第一请求的窗口是新窗口;以及如果第二请求包括第二窗口标识符,则由服务器计算机系统确定发起第一请求的窗口是现有窗口。在一个实施例中,所述方法还包括:由服务器计算机系统基于发起第一请求的窗口是新窗口还是现有窗口来呈现该URL的内容;以及由服务器计算机系统将呈现的内容发送到发起第一请求的窗口。根据本发明的另一个实施例,提供非暂时的计算机可读存储介质,其上存储由处理器执行的指令。所述指令包括:使处理器接收源自运行在客户端计算机系统的网络浏览器的窗口的第一请求的指令,第一请求包括统一资源定位符(URL)和第一窗口标识符;使处理器生成回送标识符的指令;以及使处理器在与请求相关联的用户会话中存储回送标识符的指令。所述指令还包括:使处理器生成包括URL、第一窗口标识符、和回送标识符的脚本的指令;以及使处理器将脚本发送到发起第一请求的窗口的指令。根据本发明的另一个实施例,提供一种服务器计算机系统,包括:被配置为接收源自运行在客户端计算机系统上的网络浏览器的窗口的第一请求的处理器,第一请求包括统一资源定位符(URL)和第一窗口标识符;生成回送标识符;以及在与请求相关联的用户会话中存储回送标识符。处理器此外被配置为生成包括URL、第一窗口标识符、和回送标识符的脚本;以及将脚本发送到发起第一请求的窗口。参考说明书的剩余部分和附图可以了解此处公开的实施例的性质和优点的更进一步的理解。附图说明图1是示出了根据本发明的实施例的系统的简化方框图。图2是根据本发明的实施例的用于确定客户端浏览器窗口是新窗口还是现有窗口的处理的流程图。图3是示出了根据本发明的实施例的由客户端脚本执行的处理的流程图。图4是根据本发明的实施例的用于确定客户端浏览器窗口是新窗口还是现有窗口的进一步处理的流程图。图5是示出了根据本发明的实施例的用于确定客户端浏览器窗口是否是不活动的处理的流程图。图6是示出了根据本发明的实施例的用于确定客户端浏览器窗口是否是不活动的进一步处理的流程图。图7是示出了根据本发明的实施例的用于确定客户端浏览器的最后剩余窗口是否是不活动的处理的流程图。图8是示出了根据本发明的实施例的系统环境的简化方框图。图9是示出了根据本发明的实施例的计算机系统的简化方框图。具体实施方式在下面的描述中,为了说明,阐述许多细节以便提供对本发明的实施例的理解。然而,对本领域的普通技术人员将很明显,某些实施例在没有某些细节的情况下也可以实践。本发明的实施例提供用于在网络应用的背景内跟踪客户端浏览器窗口的生命周期的技术。在一组实施例中,网络应用的服务器组件可以接收源自客户端浏览器窗口的请求,其中请求包括资源定位符(例如URL)和窗口标识符。作为响应,服务器组件可以将脚本发送到窗口以用于检索窗口的实际标识符/名称。基于由脚本返回的实际标识符和包括在初始请求内的窗口标识符,服务器组件可以确定窗口是新窗口还是现有窗口并且可以视情况处理请求。在另一组实施例中,服务器组件可以接收第一客户端浏览器窗口中的应用页已经被卸载/破坏的通知。作为响应,服务器组件可以使第一窗口与期满时间相关联并且可以将第一窗口增加到潜在地不活动的窗口的“期满”列表(即,关闭或不再用来访问应用)。如果在第一窗口处于期满列表中时新的请求由服务器组件从第一窗口接收到,则服务器组件可以识别第一窗口为活动的(即,仍然用来访问应用)并且从列表中去除它。如果在第一窗口处于期满列表中时新的请求由服务器组件从第二窗口接收到,则服务器组件可以将来自第二窗口的请求被接收的时间和与第一窗口相关联的期满时间作比较。如果请求的时间比期满时间晚,则服务器组件可以识别第一窗口为不活动的并且释放与第一窗口相关联的全部资源。在另一组实施例中,服务器组件可以接收用于客户端浏览器的最后剩余窗口中的应用页已经被卸载/破坏的通知。作为响应,服务器组件可以将用于与浏览器相关联的用户会话的会话超时变量从第一持续时间(例如一小时)修改到比第一持续时间短的第二持续时间(例如,十分钟)。服务器组件然后可以开始会话超时变量的倒计时。如果在第二持续时间期满前由服务器组件从最后剩余窗口接收到请求,则服务器组件可以识别窗口为活动的并且将会话超时变量复位到第一持续时间。如果在第二持续时间期满前没有接收到来自最后剩余窗口的请求,则服务器组件可以识别窗口为不活动的,释放与窗口相关联的全部资源,并且释放与用户会话相关联的全部资源。图1是示出了根据本发明的实施例的系统100的简化方框图。如图所示,系统100可以包括与服务器104通信的客户端102。客户端102可以是能运行浏览器106的任何类型的电子设备或系统(例如,台式计算机、膝上型计算机、平板计算机、智能机、个人数字助理(PDA)、机顶盒、视频游戏系统等等)。可用网络浏览器的示例包括MozillaFirefox、MicrosoftInternetExplorer、GoogleChrome、AppleSafari,诸如此类。在各种实施例中,可以由客户端102的一个或多个用户操作浏览器106以访问网资源,诸如由服务器104主机的网络应用。在某些实施例中,网络浏览器106可以使用户经由多个浏览器窗口108同时访问多个网络资源。例如,用户可以打开浏览器106中的第一浏览器窗口并且导航到第一网页“A”。从第一浏览器窗口的背景,用户可以打开一个或多个附加(新的)浏览器窗口,从而使网页A的附加实例被检索并且在新窗口中呈现。从那里,用户可以利用任何打开的窗口导航到其他网页。只要用户已经结束他的/她的浏览会话后,用户也可以关闭一个或多个打开的窗口。如同这里使用的,术语“浏览器窗口”和“窗口”可以指代任何能显示由资源标识符(例如,URL)识别的网络内容的浏览器106的视口。在特定的实施例中,术语“浏览器窗口”和“窗口”可以指代浏览器“标签(tab)”,尽管这样的标签一般不认为是独立的窗口。服务器104可以是能托管诸如应用114之类的网络应用的任何类型的电子设备或系统。在一组实施例中,服务器104可以包括被配置为处理网络浏览器106与网络应用114之间的交互并且提供诸如动态网络创建、负载均衡、安全等等之类的各种服务的应用服务器组件110。在特定的实施例中,应用服务器110可以包括被配置为从客户端102的浏览器106接收超文本传送协议(HTTP)请求并且将那些请求传递到应用服务器110和/或应用114以用于处理的网络服务器组件112。网络服务器112还可以将HTTP响应(例如,呈现的HTML)返回到浏览器106。在一组实施例中,应用服务器110可以被配置为跟踪客户端浏览器窗口(诸如网络浏览器106的窗口108)的生命周期。例如,在一个实施例中,应用服务器110可以检测何时浏览器106的用户在访问应用114时已经打开新浏览器窗口,并且可以区分新窗口事件与现有浏览器窗口上的重新载入/更新事件。在另一个实施例中,应用服务器110可以检测浏览器106的用户何时已经通过关闭窗口或导航离开应用114而使浏览器窗口不活动,并且可以区分那些情况与用户已经仅仅导航到应用114的另一个网页的情况。根据以下图2-7详细描述在这些情况中由应用服务器110执行的特定处理。除客户端102和服务器104之外,系统100还可以包括数据存储器116。数据存储器116可以是可通信地与服务器104耦合并且可以为服务器104的各种组件(诸如网络应用114)提供数据存储服务。尽管在系统100中服务器104和数据存储器116被显示为单独的实体,但是本领域普通技术人员应该理解,服务器104和数据存储器116可以对应于单一物理机器或单独的物理机器。应该理解,图1是说明性的并且不预期限制本发明的实施例。例如,系统100的各种实体可以每个都具有附加能力或包括没有具体描述的附加组件。另外,尽管描述了仅仅一个客户端、一个服务器和一个数据存储,但是可以支持任何数目的这样的实体。本领域普通技术人员将承认许多变化、修改和替换。新客户端浏览器窗口的检测如上所指出,在某些实施例中,应用服务器110可以确定浏览器106的用户在访问应用114时何时已经打开新浏览器窗口,并且可以区分新窗口事件与现有浏览器窗口上的重新载入/更新事件。图2示出了根据本发明的实施例的用于实现此新窗口检测的由应用服务器110执行的处理200。在各种实施例中,可以在硬件、软件、或它的组合中实现处理200。作为软件,处理200可以被编码为存储在机器可读的存储介质上的程序代码。在块202处,应用服务器110可以接收源自客户端网络浏览器106的窗口的HTTP请求,其中请求用于由网络应用114提供的资源(例如,网络)。在各种实施例中,请求可以包括资源的标识符(例如,URL),以及特定浏览器窗口的标识符。例如,请求可以包括URL“X”和窗口标识符“Window1”。在大多数情况中,包括在请求中的窗口标识符将对应于发起请求的浏览器窗口的标识符。然而,如果请求来自从现有窗口的背景创建的新窗口,则包括在请求中的窗口标识符将对应于现有窗口的标识符/名称而不是新窗口的标识符/名称。因此,在这些情况下,应用服务器110不能仅仅基于窗口标识符容易地区分进行发起的窗口是新窗口还是现有窗口。在块204处,应用服务器110可以确定请求是否是对来自支持Java脚本的用户代理的内容页的HTTPGET或HEAD请求。如果请求不属于此特定类别,则应用服务器110可以确定源浏览器窗口不是新窗口。因此,应用服务器110可以执行它的正常的呈现/检索用于请求的URL的内容并且将响应发送到具有呈现/检索的内容的浏览器窗口的处理流程(块206、208)。如果请求是对于来自于支持Java脚本的用户代理的内容的HTTPGET或HEAD请求,则应用服务器110可以更进一步地确定请求是否是重定向(块210)。如果请求是重定向,则应用服务器110可以执行如上所述的块206、208的处理流程。如果请求不是重定向,则应用服务器110可以确定请求可以源自新的浏览器窗口。作为响应,应用服务器110可以生成建议的窗口标识符和回送标识符,并且将回送标识符存储在与请求相关联的用户会话中(块212)。在一组实施例中,回送标识符可以是随机地生成的数字。应用服务器110可以进一步地生成包括回送标识符、建议的窗口标识符、和来自接收的请求中的URL和窗口标识符(例如,脚本“X”和“Window1”)的客户端脚本,并且可以将脚本发送到源浏览器窗口(块214、216)。在一组实施例中,客户端脚本可以被配置为不可由客户端浏览器106缓存。客户端脚本因此能由浏览器106执行以检索发起的浏览器窗口的实际标识符,从而便于确定进行发起的窗口是新窗口还是现有窗口。图3示出了由网络浏览器106在接收并且执行在块214处发送的客户端脚本时可以执行的处理。在块302处,浏览器106可以确定包括在脚本内的窗口标识符(即,从在块202处接收的请求中提取的窗口标识符)是否与当前浏览器窗口(即,发起请求的窗口)的标识符/名称匹配。如果标识符匹配,则指示当前窗口是现有窗口。在这种情况下,浏览器106可以开始客户端重定向以将第二HTTP请求发送到镜像原始HTTP请求(例如,包括URL“U1”和窗口标识符“Window1”)的服务器104,外加回送标识符(块304)。如果标识符不匹配,则指示当前窗口是新窗口。在这种情况下,浏览器106可以确定是否已经存在用于当前窗口的窗口标识符(块306)。例如,浏览器106可以已经在打开窗口时自动地将新的名称/标识符分配到窗口。如果发现这样的现有标识符,则浏览器106可以开始客户端重定向以将第二HTTP请求发送到服务器104,其中第二请求包括回送标识符、URL和现有标识符(块308)。如果没有发现现有窗口标识符,则浏览器106可以开始客户端重定向以发送包括回送标识符、URL和在图2的块212处生成的建议的窗口标识符的第二HTTP请求(块310)。在接收到在图3的块304、308、或310处由浏览器106发送的第二HTTP请求时,应用服务器110可以执行图4的处理400。在块402和404,应用服务器110可以接收第二HTTP请求并且将包括在第二请求内的回送标识符与存储在用户会话中的回送标识符匹配。如果回送标识符匹配,则应用服务器知道此第二请求是响应于在块214发送的客户端脚本生成(而不是响应于用户操作)的。因此,应用服务器110可以从会话中去除回送标识符(块406)并且继续进行处理400的其余部分。在块408处,应用服务器110可以确定包括在第二请求内的窗口标识符是否与包括在块202处接收的原始请求内的窗口标识符匹配。如果标识符匹配,则应用服务器110可以推断发起块202的原始请求的窗口是现有窗口。可替换地,如果标识符不匹配,则服务器104可以推断发起块202的原始请求的窗口是新窗口。应用服务器110因此能通过呈现/检索用于URL的内容并且将响应发送到包括呈现/检索的内容的进行发起的浏览器窗口来处理原始请求(块414、416)。在特定实施例中,原始请求的处理可以基于确定进行发起的窗口是新窗口还是现有窗口而不同。例如,如果每个块410确定进行发起的窗口是现有窗口,则应用服务器110可以自由地更新/修改与窗口相关联的应用状态信息。然而,如果每个块412确定进行发起的窗口是新窗口,则应用服务器110可以采取适当的步骤来保证任何现有窗口的状态保持不变。以这样的方式,应用服务器110可以避免当处理来自新窗口的请求时无意地破坏/禁用那些现有窗口的状态。应该理解,处理200、300和400是说明性的并且变化和修改是可能的。例如,可以并行执行按顺序描述的步骤,可以改变步骤的次序,并且可以修改、组合、添加或省略步骤。本领域普通技术人员将认识到许多变化、修改、和替换。不活动的客户端浏览器窗口的检测在特定实施例中,应用服务器110可以检测浏览器106的用户何时已经通过关闭窗口或导航离开应用114来使浏览器窗口不活动,并且可以区分那些情况与用户仅仅导航到应用114的另一个网页的情况。图5示出了根据本发明的实施例的用于实现此不活动的窗口检测的可以由应用服务器110执行的处理500。在各种实施例中,可以在硬件、软件、或它的组合中实现处理500。作为软件,处理500可以被编码为存储在机器可读的存储介质上的程序代码。在块502处,应用服务器110可以保持在网络浏览器106中打开的浏览器窗口的“活动”列表。从应用服务器110的角度,如果浏览器窗口被用于访问网络应用114,则认为浏览器窗口是“活动的”。活动列表可以被存储为与浏览器相关联的用户会话的一部分。在一组实施例中,在活动列表中用于每个窗口的条目可以包括窗口的标识符和被显示在窗口中的当前页的指示。在块504处,应用服务器110可以接收来自浏览器106的活动浏览器窗口中的应用页已经被卸载/破坏的通知。例如,如果窗口已经由用户关闭、或如果用户已经导航到窗口内的不同网页,则可以接收到这样的通知。作为响应,应用服务器110可以将期满时间与活动窗口相关,并且可以将窗口增加到潜在地不活动的窗口的“期满”列表(即,不再被用于访问应用)(块506,508)。此外,应用服务器110可以确定在活动列表中的所有窗口现在是否在期满列表中(块510)。如果不在,则在由应用服务器110接收到更多卸载/破坏通知时,可以重复块504-510的步骤,由此使得附加的活动窗口被增加到期满列表。如果所有活动窗口现在是在期满列表中,则应用服务器110可以执行特殊处理以确定是否释放用户会话级资源;在下面的图7中讨论此处理。在图6的处理600中继续图5的处理。在块602处,应用服务器110可以接收来源于被预先在块508处放在期满列表中的特定浏览器窗口的HTTP请求。由于此请求的接收指示窗口仍然被用于访问应用114,因此应用服务器110可以推断窗口仍然是活动的并且可以将它从期满列表中去除(块604)。应用服务器110也可以利用包括在接收的请求中的最新URL更新活动列表中的窗口的条目。在块606处,应用服务器110可以检查期满列表中的剩余窗口并且,对于每个窗口,将在块602处接收请求的时间和与窗口相关联的期满时间进行比较。如果请求的时间比窗口的期满时间晚,则应用服务器110可以识别窗口为不活动的(即,不再被用于访问应用114)并且可以从活动的以及期满列表二者中去除窗口。应用服务器110也可以释放与窗口相关联的存储器资源(例如,应用状态信息,等等)。如果请求的时间比窗口的期满时间早,则应用服务器110可以在期满列表中保留窗口。窗口可以保持在期满列表中,直到从窗口接收到新的请求(指示窗口仍然是活动的),或直到在比与窗口相关联的期满时间晚的时间从不同的窗口接收到新的请求(指示窗口很可能是不活动的)。在某些情况下,当用户在浏览器窗口中从第一应用页导航到第二应用页时,应用服务器110可以在它接收到第一页已经被破坏/卸载的通知之前接收对第二页的请求。这是因为,HTTP不保证以与发送消息的顺序相同的顺序接收消息。考虑到这一点,在某些特定的实施例中,应用服务器110可以跟踪显示在每个窗口中的当前页并且可以忽略属于过时页的卸载通知。例如,假定浏览器窗口A是当前显示的应用页1。此外,假定窗口A的用户从应用页1导航到应用页2,但是应用服务器110在对(窗口A,页1)的通知之前接收对(窗口A,页2)的请求。一旦接收到对(窗口A,页2)的请求,则应用服务器110可以更新活动窗口列表,以使得窗口的当前页是页2。当随后接收到对(窗口A,页1)的卸载通知时,应用服务器110可以忽略卸载通知,因为窗口A的当前页不是页1(相反,它是页2)。因此,这防止应用服务器110在接收到卸载通知时错误地将窗口A增加到期满列表。应当理解,处理500和600是说明性的并且可能有变化和修改。例如,可以并行执行描述的顺序的步骤,可以变化步骤的顺序,并且可以修改、组合、增加、或省略步骤。本领域普通技术人员将认识到许多变化、修改、和替换。如上所述,在某些特定的实施例中,应用服务器110可以采用特殊处理以检测用于用户会话的最后剩余的浏览器窗口何时已经被不活动/关闭。在图7的处理700中示出了此处理。在各种实施例中,处理700可以在硬件、软件、或它们的组合中实现。作为软件,处理700可以被编码为存储在机器可读的存储介质上的程序代码。在块702处,应用服务器110可以确定在用于用户会话(即,在活动列表中的最后窗口)的最后剩余浏览器窗口中的应用页已经被卸载/破坏。在一组实施例中,这可以通过比较在活动列表中的窗口集合来实现并且期满列表是相同的。在确定最后剩余浏览器窗口已经被卸载/破坏时,应用服务器110可以将与用户会话相关联的会话超时变量从第一时间段(例如,一小时)修改到比第一时间段短的第二时间段(例如,10分钟),并且可以开始变量的倒计时(块704)。如果在会话超时变量期满之前从任何窗口中接收到HTTP请求,则应用服务器110可以推断会话仍然是活动的并且可以将会话超时变量重置到第一时间段(块706、708)。此外,处理可以返回到图6的块602。然而,如果在会话超时变量期满之前没有从任何窗口接收到请求,则应用服务器110可以推断最后剩余窗口是不活动的(因此,关闭整个用户会话)。因此,应用服务器110可以释放所有与窗口和用户会话相关联的资源(块710)。应当理解,处理700是说明性的并且可能变化和修改。例如,可以并行执行描述的连续的步骤,可以变化步骤的顺序,并且可以修改、组合、增加、或省略步骤。本领域普通技术人员将认识到许多变化、修改、和替换。图8是示出了根据本发明的实施例的系统环境800的简化方框图。如图所示,系统环境800可以包括一个或多个客户端计算机系统802、804、806、808、服务器计算机系统810、网络812、和数据库814。在各种实施例中,客户端计算机系统802、804、806、808、服务器计算机系统810、和数据库814可以用于分别实现图1的客户端102、服务器104、和数据存储器116。客户端计算机系统802、804、806、808可以是通用的个人计算机(例如,台式计算机和/或膝上型计算机)、平板计算机、智能电话机、PDA、和/或工作站计算机。可替换地,客户端计算机系统802、804、806、808可以是能够运行诸如图1的浏览器106之类的网络浏览器的任何其它类型的电子设备。虽然系统环境800显示具有四个客户端计算机系统,但是应当理解可以支持任何数目的客户端计算机系统。网络812可以是本领域技术人员所熟知的可以利用网络协议支持数据通信的任何类型的网络,网络协议诸如TCP/IP、SNA、IPX、AppleTalk、等等。仅仅举例来说,网络812可以是诸如以太网之类的局域网(LAN);广域网;包括而无限制地虚拟专用网络(VPN)的虚拟网络;互联网;无线网络(例如,在IEEE802.11协议套件、本领域已知的蓝牙协议、和/或任何其它无线协议中的任何一个下操作的网络);和/或这些和/或其它网络的任何组合。服务器计算机系统810可以是通用计算机、专门服务器计算机(例如,PC服务器、UNIX服务器、大型机服务器、安装在机架上的服务器,等等)、服务器群、或计算机的任何其它合适的布置和/或组合。服务器计算机系统810可以运行诸如MicrosoftWindows、AppleOSX、Linux、Solaris等等之类的任何用户或服务器操作系统。服务器计算机系统810也可以运行各种服务器应用和/或中层应用中的任何一个,包括图1的应用服务器110和网络应用114。数据库814可以驻留在一个或多个计算机系统802、804、806、808、和810的本地(和/或驻留在其上的)存储介质上。可替换地,数据库814可以远离任何或所有计算机系统802、804、806、808、810,和/或与这些中的一个或多个通信。在一组实施例中,数据库814驻留在为本领域技术人员所熟知的存储区域网(SAN)中。类似地,用于执行归因于计算机系统802、804、806、808、810的功能的任何必要文件可以适当地被本地存储在相应的计算机上和/或远程存储在数据库814上。在一组实施例中,数据库814可以是诸如从Oracle公司获得的Oracle11g之类的关系数据库,其被适配为响应于SQL格式化的命令存储、更新、和检索数据。图9是示出了根据本发明的实施例的计算机系统900的简化方框图。在各种实施例中,计算机系统900可以用于实现参考以上系统环境800描述的计算机系统802、804、806、808、和810中的任何一个。如图所示,计算机系统900可以包括经由总线924电耦合的硬件元件。硬件元件可以包括一个或多个中央处理单元(CPU)902、一个或多个输入设备904(例如,鼠标、键盘,等等)、和一个或多个输出设备906(例如,显示设备、打印机,等等)。计算机系统900也可以包括一个或多个存储设备908。举例来说,存储设备908可以包括诸如磁盘驱动器、光存储器设备之类的设备、和诸如随机存取存储器(RAM)和/或只读存储器(ROM)之类的固态存储设备,其可以是可编程的、可flash更新的和/或类似的。计算机系统900可以另外包括计算机可读存储介质读取器912、通信子系统914(例如,调制解调器、网卡(无线的或有线的)、红外线通信设备、等等)、以及可以包括如上描述的RAM和ROM设备的工作存储器918。在一些实施例中,计算机系统900也可以包括处理加速单元916,其可以包括数字信号处理器(DSP)、专用处理器和/或类似的。计算机可读的存储介质读取器912可以被连接到计算机可读的存储媒介910,与(并且,可选地与存储设备908结合)一起全面表示远程、本地、固定、和/或可移除存储器设备加上用于临时和/或更永久地包含计算机可读信息的存储介质。通信系统914可以允许与网络812和/或如上参考环境800所述的任何其它计算机交换数据。计算机系统900也可以包括被显示为当前位于工作存储器918内的软件元件,其包括操作系统920和/或其它代码922,诸如应用程序(其可以是客户端网络浏览器、中间层/服务器应用,等等)。应当理解计算机系统900的可替换实施例可以有不同于以上描述的许多变化。例如,可以使用定制的硬件并且可以在硬件、软件、或两者中实现特定元件。此外,可以采用到诸如网络输入/输出设备之类的其它计算设备的连接。用于包含代码、或部分代码的可由计算机系统900执行的的计算机可读存储介质可以包括任何在本领域已知或使用的适当介质,诸如但是不限于易失性的/非易失性的和可移除/不可移除的介质。计算机可读存储介质的示例包括RAM、ROM、EEPROM、闪速存储器、CD-ROM、数字通用光盘(DVD)或其它光存储器、磁带盒、磁带、磁盘存储器或其它磁存储设备、任何其它可以用于存储数据和/或程序代码并且可以由计算机访问的介质。虽然上面已经描述本发明的具体实施例,但是各种修改、变化、替换结构、和相等物在本发明的范围内。例如,虽然已经描述了本发明的实施例的某些流程图和步骤,但是本领域技术人员应当清楚,本发明的范围不局限于描述的图和步骤。此外,虽然已经利用硬件和软件的特定组合描述了本发明的实施例,但是应当承认硬件和软件的其它组合也在本发明的范围内。因此,说明书和附图应当被认为是说明性的,而不是限制的意义上的。在不脱离如下阐述的权利要求书的本发明的广泛精神和范围的情况下,显然可以对其进行添加、减少、和其它修改。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1