附图简要说明
结合附图阅读以上概述以及以下的较佳实施例详细说明则可更好地理解。为了阐述本发明的目的,附图中显示了本发明的示例性结构;然而,本发明并非局限于所揭示的具体方法和手段。其中:
图1是一种本发明的方面可以在其中实现的示例性计算环境的方框图;
图2是一种示例性web浏览器用户接口的方框图;
图3是产生web内容的第一示例性代码模块的方框图;
图4是内容产生模块被绑定在区域上的、有多个区域的示例性内容布局的方框图;
图5是图2所示示例性代码模块的方框图,根据配置文件产生web内容;
图6是由图5所示的示例性代码模块所执行的过程的流程图;
图7所示是依照本发明的方面第一示例性视图或表现的方框图;
图8所示是依照本发明的方面用于选择视图的一种用户可操作元件的方框图;
图9所示是依照本发明的方面第二示例性视图或表现的方框图;
图10所示是依照本发明的方面允许用户选择视图的一种示例性过程的流程图;
图11是一种示例性结构的方框图,依照本发明的方面使用不同配置文件改变视图。
发明的详细说明
总览
通常,web内容可基于用户输入而定制,但是,该内容的表现方式不是定制的。例如,搜索引擎可以响应于询问而做出结果页;页面的内容是对应于特定询问做出的,但结果一般是以设定格式提供,例如,网页标题和说明的文本列表。本发明允许用户选择web内容的不同表现或“视图”。如此,例如,用户能够选择以文本列表的形式接收搜索结果,或者以一组网页缩略图的形式,或者在这两种形式之间来回变化。
示例性计算环境
图1显示了一种示例性计算环境,本发明的方面可在其中实现。计算系统环境100只是合适的计算环境中的一个例子,并不意味着是对本发明使用和功能范围的任何局限。也不应当把计算环境100解释成是依赖于或必需在示例性操作环境100中显示的任何组件或其结合。
本发明可以运行于众多其它通用或专用计算系统环境或配置中。适合于应用本发明的熟知计算系统、环境、和/或配置的实例包括-但不限于-个人计算机、服务器计算机、手提或膝上装置、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子(programmable consumer electronics)、网络PC、小型机、大型机、嵌入式系统、包括以上任何系统或装置的分布式计算环境,等等。
本发明可以以由计算机执行的诸如程序模块之类的计算机可执行指令的环境进行说明。一般地,程序模块具有执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。本发明还可以在分布式计算环境中实践,在这种环境中任务是由通过通信网络或其它数据传输介质链接着的远程处理装置执行的。在分布式计算环境中,程序模块和其它数据既可以处于本地计算机存储介质也可以处于远程计算机存储介质上,包括存储器存储装置。
参照图1,实现本发明的示例性系统包括形式上是计算机110的通用计算装置。计算机110的部件包括-但不限于-处理单元120、系统存储器130、耦合各种系统部件包括系统存储器到处理单元120上的系统总线121。系统总线121可以是数种类型总线结构中的任何一种,包括存储器总线或存储器控制器、外设总线、本地总线,采用多种总线结构中的任何一种。作为例子,而非限制,此类结构包括工业标准结构(ISA)总线、微通道结构(MCA)总线、增强工业标准结构(EISA)总线、视频电子标准协会(VESA)本地总线、外部部件互连(PCI)总线(亦称Mezzanine总线)。
计算机110通常包括多种计算机可读介质。计算机可读介质可以是由计算机110可访问的任何可用介质,包括易失性介质和非易失性介质、可移动介质和不可移动介质。作为例子-而不是限制-计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以任何的信息存储方法或技术实现的易失性介质和非易失性介质、可移动介质和不可移动介质,所述信息是指计算机可读指令、数据结构、程序模块或其它数据之类的信息。计算机存储介质包括-但不限于-RAM、ROM、EEPROM、快闪存储器或其它存储器技术、只读光盘存储器、数字多用途光盘(DVD)或其它光盘存储器、盒式磁带、磁带、磁盘存储器或者其它磁性存储装置、或其它可以用来存储所需信息并可由计算机110访问的任何其它介质。通信介质通常具体体现诸如载波或其它传输机构等调制数据信号形式的计算机可读指令、数据结构、程序模块或其它数据,包括所有的信息传递介质。术语“调制数据信号”是指这样的信号,它的一项或多项特性按照某种方式进行设定或改变,从而以信号的形式编码信息。作为例子而非局限,通信介质包括有线介质如有线网络或专线(direct-wired)连接、无线介质如声波、射频、红外及其它无线介质。上述介质的任意组合也应当包括在计算机可读介质的范围内。
系统存储器130包括易失性和/或非易失性介质形式的计算机存储介质,诸如只读存储器(ROM)131和随机访问存储器(RAM)132。包含着诸如在启动期间协助在计算机110的元件之间转移信息的基本例程的基本输入/输出系统133(BIOS)通常是存储在ROM 131中。RAM 132通常包含处理单元120立即可以访问和/或当前操作于其上的数据和/或程序模块。作为例子而非局限,图1示出了操作系统134、应用程序135、其它程序模块136及其它程序数据137。
计算机110还可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。只是作为例子,图1示出了硬盘驱动器140,它从不可移动非易失性磁性介质上读取或写入,磁盘驱动器151,它从可移动非易失性磁盘152上读取或写入,光盘驱动器155,它从可移动非易失性光盘156上读取或写入,如CD-ROM或其它光介质。可以应用于示例性操作环境的其它可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于,盒式磁带、闪存卡(flashmemory card)、数字多用途光盘、数字视频磁带、固态RAM、固态ROM、等等。硬盘驱动器141通常经由诸如接口140之类的不可移动存储器接口连接到系统总线121,而磁盘驱动器151和光盘驱动器155通常由可移动存储器接口如接口150连接到系统总线121。
以上讨论并示于图1的驱动器及其相关联的计算机存储介质提供计算机可读指令、数据结构、程序模块及其它用于计算机110的数据的存储。例如在图1中所示,硬盘驱动器141存储操作系统144、应用程序145、其它程序模块146及程序数据147。注意,这些部件既可以是和操作系统134、应用程序135、其它程序模块136及程序数据137相同的,也可以是不同的。操作系统144、应用程序145、其它程序模块146及程序数据147在这里给了不同的标号以显示至少它们是不同的拷贝。用户可以通过输入装置向计算机20输入命令和信息,输入装置有键盘162和一般称为鼠标的定点装置161、轨迹球或触摸输入板。其它输入装置(未示出)可包括麦克风、操纵杆、游戏板(gamepad)、圆盘式卫星天线、扫描仪、等等。这些以及其它输入装置往往是经由耦合到系统总线上的用户输入接口连接到处理单元120上的,但是,也可以经其它接口和总线结构连接,诸如并行端口、游戏端口、或通用串行口(USB)。监视器191或其它类型的显示装置也通过接口连接到系统总线121,诸如视频接口190。除监视器外,计算机还可以包括其它外部输出装置,诸如扬声器197、打印机196,可经由输出外部接口190连接。
计算机110可以在网络化环境中运行,利用逻辑连接到一个或多个远程计算机,如远程计算机180。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等装置(peer device)或其它公用网络节点,通常包括以上就计算机110所描述的元件中的许多或全部,尽管在图1中仅仅示出了存储器存储装置181。图1所示的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但还可以包括其它网络。此类网络化环境在办公室网络、企业网络、内联网、互联网中都是司空见惯的。
当用在LAN网络化环境中时,计算机110经由网络接口或适配器170连接到LAN 171上。当用在WAN网络化环境中时,计算机110通常包括调制解调器172或者其它装置用于在WAN 173上建立通信,诸如英特网。不论是内置式还是外置式,调制解调器172可以通过用户输入接口160或其它适当机构连接到系统总线121上。在网络化环境中,有关于计算机110的程序模块或其某些部分可以存储于远程计算机存储器存储装置中。作为例子,而非限制,图1给出了远程应用程序185驻留在存储器装置181上。应当理解,所显示的网络连接是示例性的,其它在计算机之间建立通信链路的方式也可用。
示例性web浏览器
图2所示是一示例性web浏览器200的可视界面。众所周知,web浏览器是一个能使用户与特定类型的内容(例如,超文本标记语言(HTML)或可扩展超文本标记语言(XHTML)内容)交互并从网络上检索此类内容的软件。例如,浏览器200可组成存储于计算机110上(示于图1)、在处理单元120上执行(示于图1)的软件。浏览器200可从计算机110连接于其上的广域网173(示于图1),如互联网上访问内容。通常,浏览器200还能够访问存储在本地计算机110上的内容。
图2的示例性浏览器向用户显示多种信息。具体地,浏览器200向用户显示导航条202。导航条202包括方框204,用户可以把统一资源定位器(URL)写入其中,以便把浏览器指向特定内容项目。在图2的例子中,用户在方框204中输入了URL
http://search.msn.com,由此表示用户希望访问由该URL标识的内容。浏览器200从互联网的某个地址上检索到该内容并在查看区域206中显示所述内容。在图2的例子中,内容以HTML或XHTML显示传递。(URL中的词组“http”代表“超文本传输协议”,出现在URL中表示支撑的内容是HTML或XHTML内容)。浏览器200包含或者通过其它途径访问一HTML和/或XHTML解释器,该解释器描绘浏览器200接收到的HTML或XHTML内容。在图2的例子中,浏览器200在标题条208中显示内容的标题(“MSN Search-More Useful Everyday”)。
诸如浏览器200的典型浏览器还能使用户执行各种功能,如:打印、邮寄或保存所显示的内容;使用“收藏”或“书签”列表导航到其它内容;改变文本内容的默认字体,等等。该功能以菜单条210和/或按钮212的形式展示给用户。
如以下所述,本发明提供一种技术,它使用户能选择在查看区域206中显示给用户的内容的表现或“视图”。
用可执行代码生成内容
某些web内容是静态的-即,某些web内容只是一个HTML内容文件,存储在一文件系统中而不会改变(或者只是不定期地由所有者进行编辑)。然而,大多数商业web内容是在传递给用户的时候动态生成的。该动态生成的内容或者反映某种程度的用户个性化,或者是响应用户的某些输入而生成。例如,当用户访问电子商务网站时,该网站服务器可能会生成“欢迎”页向用户发出指名的问候并包含迎合用户购买习惯的货品。再例如,搜索引擎可接收用户的询问并对此询问做出响应而生成搜索结果页。商业内容提供商运行在向用户传递的时候生成内容的计算机程序。
图3所示是内容生成程序的一个例子。代码模块300是一可执行或可解释的(interpretable)计算机程序。当代码模块300运行时,它产生适于在web浏览器上查看的内容,诸如HTML内容302。代码模块300可体现为任何类型的程序,诸如可以直接在微处理器(诸如图1所示的处理单元120)上执行的可执行代码,或者是可以在脚本引擎或虚拟机解释器的协助下能够执行的可解释代码(诸如C#脚本、Java字节码,等)。应当注意,一条特定的内容,诸如HTML网页不需要由单个代码模块产生,相反,可以由几个代码模块产生。图4示出的例子中网页410被分成了四个区域400、401、402和403。这些区域中的每一个被系于不同的代码模块,而代码模块为其相应区域产生内容。如此,代码模块300、301、302和303分别与区域400、401、402和403相联系。区域400中充填的是代码模块300所产生的内容;区域401充填的是代码模块301所产生的内容,依此类推。
如同其它程序,代码模块301之类的代码模块能够使其行为受其输入的影响。如此,代码模块300可以基于对代码模块300的输入情况来改变内容302的实体部分。图5显示了代码模块300从“配置文件”502接收输入。代码模块300所产生的内容302的实体部分是基于,至少是部分地基于配置文件502中的输入。例如,配置文件502可包含指定内容302的颜色、布局、字体、排序等等的参数。如此,内容302的性质可以通过改变存储在配置文件502中的是哪些参数而改变。可以存储配置文件502的可供选择的版本,代码模块300可以通过选定这些可供选择的配置文件版本中特定的一个用作代码模块300的输入来诱导生成内容的特定类型。
代码模块300能够在其运行中基于输入而改变其行为所带来的益处是,同一代码模块300可以被用来生成不同的内容(或者同一支撑内容的不同变型)。图6所示是代码模块300能够实现以便于根据配置文件生成不同内容类型的逻辑的例子。图6所示的特定例子中,配置文件502中的一个或多个参数指定n个离散的不同内容类型,尽管应当理解,甚至还存在更加灵活的应用参数的例子。
在步骤602,代码模块300从配置文件502接收输入数据。该输入数据包含一个或多个参数,该参数影响代码模块300将产生哪种内容。在步骤604,基于所接收的是哪个参数来执行n-路交换。例如,配置文件502包含参数1,然后代码模块300产生HTML内容608(块606)。如果配置文件502包含参数2,则代码模块300产生HTML内容612(块610)。任意数目的不同参数可以这种方式处理,直到参数n;如果接收的是参数n,则代码模块300产生HTML内容616(块614)。
应当理解,包含在配置文件502中的参数无需使代码模块300在n种离散的内容选择中挑选,相反,可以任何方式对代码模块300的输出的性质施加影响。例如,参数可以指定内容的高度和宽度、字体、内容旋转角度、包括在内容中的图像数目,等等。
提供可替换的内容视图或表现方式
如以上所讨论,能够通过向生成内容的程序提供不同参数而生成同一内容的不同版本。如此则给了用户一种选择,到底希望怎样来呈现特定内容。例如,用搜索引擎进行网络搜索的用户可选择是用带有识别搜索结果的网页缩略图还是不带缩略图的形式呈现搜索结果。
图7所示为示例性用户接口,能使用户选择如何查看内容。图7所示是浏览器200显示搜索引擎提供的结果页701。在图7的例子中,用户根据询问“土星”(见询问框704)进行搜索。搜索结果包括网页列表702。列表702中的每个条目表示由搜索引擎查找到的网址的标题和说明。根据以上讨论可以理解,页面701是由如代码模块300的程序生成的。例如,代码模块300可以从搜索引擎的“后端”接收响应“土星”询问的网页原始数据;代码模块300则生成网页701,将该原始数据呈现为网页标题和说明的列表。
网页701包含下拉菜单706,允许用户选择可替换的搜索结果视图。例如,菜单706可列出多种视图选项,见图8。如图8中突显的选项所表示,当前视图是“文本列表”。如果用户询问用不同视图查看结果,用户可以从菜单706选择另外的选项,如“缩略/类别”。如果用户选择该视图,用户的选择被传回搜索引擎,它可以用不同视图重新呈递结果。图9所示是用不同视图呈递图7的结果时所发生的情况。新的网页901被传递到浏览器200,显示有关询问“土星”的信息。然而,网页901现在显示的结果按信息类别进行了划分,有关星球土星的信息(标号910)和有关汽车品牌土星的信息(标号912)。此外,网页901显示出各类别的顶级结果的缩略图920和922。
将意识到,提供搜索结果的搜索引擎能够通过运行利用两个不同配置文件的单个生成程序来把图7的视图改变成图9的视图。例如,代码模块300(示于图3)可以是一个程序,它接收响应“土星”询问的有关网页的原始数据、根据原始数据生成结果页。代码模块300还可从配置文件502接收数据,指明代码模块300应当采用哪个视图来呈现搜索结果。如此,搜索引擎只需重新运行一下原来用另外的配置文件生成搜索结果的程序、把包含重新生成的结果的网页传递到用户浏览器即可改变搜索结果的视图。
图10以流程图的形式显示了先以一种视图传递内容然后再根据用户选择用另一视图重新传递的过程。开始时,为了生成能够在web浏览器上可查看的资料而运行可生成内容的程序(例如,代码模块300)(块1002)。通常,该程序在内容服务器上运行,如搜索引擎的前端。该程序用默认配置文件运行。如此,该程序接收一组默认参数并用默认视图呈现内容。在生成了包含内容的视图之后,网页被传递到用户的机器上,用于在用户浏览器上呈现。(块1004)
当用户在浏览器上查看内容的同时,用户可以选择另外的视图一例如,利用下拉菜单706(示于图7),该菜单是内容网页的一部分(块1006)。用户的新视图选择被传送到内容服务器(块1008)。内容服务器接收该选择(块1010)并根据用户的新视图选择重新生成内容(块1012)。在一较佳实施例中,这一重新生成是通过重新运行与块1002中所运行的程序相同的内容生成程序来执行的,但用的是另外的配置文件。如前文所述,该另外的配置文件包含与默认配置文件不同的参数,以便内容生成程序将响应这些不同的参数产生出不同的内容。
在用不同的配置文件重新生成内容之后,所重新生成的内容再传递到用户的机器上(块1014),在用户浏览器上重新显示。
图11显示出内容生成程序(代码模块300)如何能够根据所选择的视图来利用不同的配置文件。配置文件501(1)对应于在图8中被称作“文本列表”的视图;配置文件501(2)对应于被称作“类别/缩略”的视图;配置文件501(3)对应于被称作“带图文本”的视图。配置文件501(1)到501(3)都存储在代码模块300运行于其上的机器中。然而,代码模块300在特定时刻只使用其中的一个文件作为参数源。在图11的例子中,代码模块300在基于用户的选择“类别/缩略”视图来生成内容,所以代码模块300用配置文件502(2)作为参数源。在这个例子中,配置文件502(2)包含有使代码模块300生成如图9所示形式的内容的参数。
应注意,以上的实施例仅为说明目的而提供,不应当以任何方式解释为对本发明的限制。虽然本发明是参照各种实施例进行说明的,但应理解这里所用的词句是说明和阐述的词句,而非限制的词句。此外,虽然本发明在这里是参照特定的装置、材料、实施方式来描述的,但本发明并不限于这里所揭示的细节;相反,本发明延伸到所有功能上等效的结构、方法和应用,这些皆落入所附权利要求书范围。本领域的技术人员得到本说明书的教导后,可以进行许多改进和变化而不脱离本发明的范围的精神。