CN105745648A - 桌面页和移动页之间的不平衡映射 - Google Patents

桌面页和移动页之间的不平衡映射 Download PDF

Info

Publication number
CN105745648A
CN105745648A CN201480062987.8A CN201480062987A CN105745648A CN 105745648 A CN105745648 A CN 105745648A CN 201480062987 A CN201480062987 A CN 201480062987A CN 105745648 A CN105745648 A CN 105745648A
Authority
CN
China
Prior art keywords
page
web page
desktop
request
list
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.)
Granted
Application number
CN201480062987.8A
Other languages
English (en)
Other versions
CN105745648B (zh
Inventor
Y·贾
S·S·阿德高恩卡尔
D·陈
A·P·沙阿
F·A·玛每瑞
A·瑟尔布
E·D·布洛克
A·D·布尔斯特
K·D·霍夫曼
J·L·德马里斯
K·B·德拉姆斯塔德
D·W·R·科德林顿
A·L·舒尔茨
O·达哥齐
M·B·西尔弗斯坦
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105745648A publication Critical patent/CN105745648A/zh
Application granted granted Critical
Publication of CN105745648B publication Critical patent/CN105745648B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

公开了一种托管各种协作站点的协作服务。每一个站点包括桌面页和移动页。路由服务根据定义桌面页和移动页之间的不平衡对应关系的桌面到移动映射将对桌面页的移动请求重定向至移动页。所述路由服务还根据定义桌面页和移动页之间的平衡对应关系的移动到桌面映射将对移动页的桌面请求重定向至桌面页。

Description

桌面页和移动页之间的不平衡映射
相关申请
本申请涉及2013年11月18日提交的发明名称为“Template-BasedClient-RenderingPlatform”的美国申请No.61/905500,并要求其优先权,通过引用的方式将其全部内容并入本申请。
背景技术
以触摸为中心的移动设备(例如,具有触摸屏的蜂窝电话、平板电脑、膝上型电脑)或者任何其它类型的设备的用户通常希望访问由协作平台(例如,来自微软公司的SHAREPOINT协作平台)生成的页面并与之交互。以前通常针对这些类型的页面生成特定于移动的用户界面(UI)。
但是,这些类型的页面往往不是为触摸屏设计的,因而所述UI的大部分由难以使用基于触摸的设备操纵的小的UI元素构成。另一个不利之处在于先前的解决方案是基于服务器的。这意味着要在基于触摸的设备上的web浏览器中展现的HTML是在服务器上生成的,并且针对每一查看页面被下载到设备上。这一配置提高了从服务器传送至客户端的数据量,并且能够导致非常静态的页面UI。
发明内容
本文提供了用以增强协作服务或者任何其它类型的在线服务的用户体验的系统、方法和软件。本文公开的实现促进了web浏览器内的HTML展现。其它实现促进了网页的桌面版本和移动版本之间的重定向。
在至少一个实现中,当在浏览器应用背景下通过处理系统运行时,模板展现引擎将促进增强的事件处理器附加。模板展现引擎检查被下载到浏览器的超级文本标志语言(HTML)代码,以获得被编码到HTML代码当中的模板。当在HTML代码中遇到模板时,模板展现引擎对模板进行检查,以获得指示要在网页页面中展现的至少一个元素和附加到所述网页页中的所述元素的事件处理器的事件处理信息。之后,模板展现引擎生成用于在展现该网页页面时所述浏览器要消费的新HTML代码,所述新HTML代码包括所述元素和附加到所述元素的事件处理器。
在至少一种其它实现中,公开了一种托管各种协作站点的协作服务。所述站点的每一个包括桌面页和移动页。路由服务根据定义桌面页和移动页之间的不平衡对应关系的桌面到移动映射将对桌面页的移动请求重定向到移动页。
所述路由服务还根据定义桌面页和移动页之间的平衡对应关系的移动到桌面映射将对移动页的桌面请求重定向到桌面页。
提供这一发明内容部分是为了以简化形式介绍将在下面的具体实施方式部分进一步描述的概念的选择。应当理解,这一方面内容部分并非意在标识出所要求保护的主题的关键特征或必要特征,也并非意在用来限制所要求保护的主题的范围。
附图说明
参考下面的附图,本公开内容的很多方面将得到更好的理解。尽管结合这些附图描述了几种实现,但是本公开内容并不限于本文公开的实现。相反,其旨在涵盖所有替代方案、修改和等同物。
图1是示出了可以用于实现本文公开的各种实施例的示例性操作环境的系统图。
图2是示出了能够实现本文提出的实施例的各个方面的计算系统的示例性计算机硬件及软件架构的计算机架构图。
图3是示出了能够实现本文提出的实施例的各个方面的分布式计算环境的图示。
图4是示出了能够实现本文提出的实施例的各个方面的计算设备架构的计算机架构图。
图5示出了一种实现中的操作情形。
图6示出了一种实现当中的模板展现过程。
图7示出了一种实现中的桌面到移动页映射以及移动到桌面页映射。
图8示出了模板展现引擎的示例性实现。
具体实施方式
本文描述了用于提供基于模板的客户端展现平台的技术。本文公开的实施例可以通过为UI提供非常容易看到并且易于使用触摸进行操纵的大块元素来解决上文描述的问题的部分或全部。本文公开的平台还是使用JavaScript、HTML5和CSS和/或其它类似技术展现的客户端侧。但是,本文描述的基于模板的客户端展现不局限于基于触摸的实现。相反,本文描述的基于模板的客户端展现技术适用于各种各样的设置和环境中的任何设置和环境,包括面向触摸的平台、非触摸平台或其任何组合或变型。
在用户尝试在移动浏览器上,例如,在基于触摸的计算设备上访问使用本文公开的平台提供的站点(site)时,使用UserAgent字符串检测该访问,并将用户重定向至本文公开的“TouchDesign”移动体验。在将用户重定向至TouchDesign引导(bootstrap)页时,一个小的JavaScript文件集被下载到用户的设备。之后,在客户端浏览器内,JavaScript生成要由该浏览器展现的HTML,并经由一组REST端点提取用户数据。这允许本文公开的TouchDesignUI具有非常高的动态性,并且支持特定于触摸的手势,而服务器生成的UI则无法支持这样的手势(例如,“滑动”手势)。
应当认识到,可以将本文公开的主题实现为计算机控制装置、计算机过程、计算系统或者诸如计算机可读存储介质的制品。通过阅读下述具体实施方式以及回顾相关附图,这些以及各种其它特征将变得显而易见。
下文的详细说明涉及用于提供基于模板的客户端展现平台的技术,在某些例子中,所述技术是与企业协作环境结合的。尽管本文描述的主题是以与计算机系统上的操作系统和应用程序的运行协同运行的程序模块为一般背景加以介绍的,但是本领域技术人员将认识到可以结合其它类型的程序模块执行其它实现。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、部件、数据结构及其它类型的结构。此外,本领域技术人员将认识到,可以借助于其它计算机系统配置实践本文描述的主题,所述配置包括手持设备、多处理器系统、基于微处理器或者可编程的消费电子设备、微型计算机、大型计算机等。
在下文的详细说明中,将参考构成了其部分的附图,在附图中通过举例说明的方式示出了具体实施例或实例。现在参考附图(其中贯穿若干附图,类似的附图标记表示类似的要素),将提出用于提供基于模板的客户端展现平台的计算系统、计算机可读存储介质和计算机实现方法的各个方面。
现在参考图1,将描述用于本文提出的各种实施例的操作环境100的各个方面。图1所示的操作环境100包括通过网络140在企业计算设备104上进行操作或者与企业计算设备104通信的客户端设备102。在一些实施例中,可以使用台式计算机、膝上型计算机、笔记本电脑、超便携式计算机、上网本电脑或者诸如移动电话、平板设备、slate设备、便携式视频游戏设备等的计算设备实现客户端设备102和/或企业计算设备104。客户端设备102可以是启用触摸的计算设备,例如,智能电话或平板计算设备。
在一些配置中,客户端设备102和企业计算设备104按照客户端—服务器配置操作。如本文使用的,“客户端—服务器”配置包括计算系统,所述计算系统具有向一个或多个资源请求者(客户端)提供资源的一个或多个资源提供者(服务器)。在图1所示的操作环境100中,将客户端设备102描述为通过网络140向被描述为服务器的企业计算设备104请求资源的客户端。但是,应当认识到,可以在除了客户端—服务器配置以外的计算配置当中实现本文描述的概念和技术。本文按照客户端—服务器配置对操作环境100所做的描述只是出于举例说明目的,其不表示限制本文公开的主题的范围的意图。在一些配置中,网络140可以包括互联网(Internet)、内联网或外联网或者其各种组合。
操作系统106在企业计算设备104上运行。操作系统106是用于控制企业计算设备104的各种功能的可执行程序。企业计算设备104还可以执行协作应用108。在一些例子当中,协作应用108通过Web(网页)浏览器应用120或者在客户端设备102上执行的其它类型的应用程序向客户端设备102提供资源。
Web浏览器应用120能够按照本文公开的方式接收来自客户端设备102的输入以及提供对由协作应用108提供的资源的显示。为了对由协作应用108提供的资源进行展现,可以利用一个或多个展现平台客户端部件。
可以将协作应用108配置为提供各种类型的功能,其包括但不限于允许用户创建、维护和呈现协作环境从而共享用以创建和/或合作文件的信息、在在线群组内一起工作和/或共享组织内的信息。在一些配置中,协作应用108可以包括被配置为提供上文被描述为服务的功能的部分或全部的基于网页的应用。
在一些实施例中,协作应用108包括来自微软公司的MICROSOFTSHAREPOINT协作应用。在一些实施例中,协同应用108包括一个或多个生产率应用程序,它们是来自加利福尼亚芒廷维尤的Google公司的GOOGLEDOCS或GOOGLESITES系列产品的部分。在所描述的实施例中,协作应用108和/或客户端协作应用被描述为包括MICROSOFTSHAREPOINT协作应用程序。应当理解,本文提供的使用MICROSOFTSHAREPOINT协作应用的例子只是示例性的,不应认为其以任何方式构成限制。可以将本文公开的实施例与其它类型的协作应用一起使用。就此而言,可以将本文公开的技术与其它类型的客户端—服务器应用一起使用。还应当认识到,可以利用展现平台客户端部件103和/或展现平台服务器部件105提供本文公开的功能。
本文公开的实施例至少提供:1)用于与由诸如来自微软公司的SHAREPOINT协作应用的协作应用108提供的页面进行交互的以触摸为中心的UI;2)基于webUI的Pivot(枢轴)控件;3)将由协作应用108保持的具有共同的一类的属性但是具有不同的REST表示的对象抽象成单个API;4)对REST响应进行高速缓冲,从而允许获得更快的UI;5)来自客户端侧的智能日志记录(又名额外数据的动态上下文日志记录)的引用局部性;6)采纳一组“模板”(所创制的模板语言语法)和数据对象并将它们一起组合为能够被浏览器使用的HTML的JavaScript对象(展现器)。有关这种功能的一些方面为:1)易于读取HTML类的模板语言;2)某些具有内置逻辑的“构造”。例如:对于向阵列内的每一元素应用模板的每一构造而言,templateChoice构造能够在来自数据对象的信息的基础上选择应用哪一模板,而且易于附加事件处理器。
一个例子为:<divonclick="{+myClick}"﹥﹤/div>。其将名为“myClick”的点击处理器附接到该<div>元素上,用户能够向该<div>元素注册其功能。给出作为字符串的模板。但是,系统将该模板“编译”为函数。从这一意义上来讲,对模板进行“编译”是指对与来自字符串的模板有关的相关信息进行解析,并创建要在展现模板时执行的一系列“操作”。由于将模板“编译”成了函数,因而对模板进行展现就是调用该函数。通过这种方式使用“编译的”模板具有显著的性能增强。下文将提供有关这些方面的额外细节。
本文公开的实施例还包括模板展现系统(TRS)。TRS是要提供给Web浏览器应用120以供展现至屏幕的HTML标记(markup)。对TRS的输入是用于描述数据的以及其看起来应当怎样的“模板”。这两项输入是分别存储的,并且TRS在展现时间处将该数据动态地组合到该模板当中,以形成被提供给浏览器的最终HTML标记。
执行类似动作的技术是XSLT。XSLT也具有其自身的“模板”语法,所述“模板”语法将数据和模板一起组合为最终的HTML标记。但是,一个差异在于XSLT是在服务器(即,企业计算设备104)上运行的。其限制在于服务器必须既具有模板又具有数据,而且必须耗费计算功率来执行用于将数据组合到模板的算法。另一方面,TRS是在客户端内作为由web浏览器应用120执行的JavaScript运行的。这意味着由客户端执行该组合算法,从而服务器则不必执行,并且服务器可以选择仅存储该数据,并让某一其它第三方实体(例如,CDN,即内容分发网络)服务于该模板。
本文公开的“TouchDesign”还包括能够实现在等同的移动页面和桌面页面之间对用户112重定向的逻辑。该逻辑在标识其用户代理的字符串的基础上确定用户112在使用移动客户端还是桌面客户端。将用户代理字符串与已知的移动用户代理的列表进行比较,如果该字符串与这些已知的移动用户代理之一匹配,那么该逻辑将该客户端识别为移动用户代理。如果使用移动客户端的用户导航至桌面页,那么将用户重定向至等同的移动页。类似地,如果桌面客户端导航至移动Touch页,那么该逻辑将其重定向至对应的桌面页。在一个实施例中,通过定义两种映射执行重定向。一种映射定义了对于给定的移动Desktop页而言将重定向至什么移动页。该映射中的Key(键)是由ListTemplateType和ViewID两者构成的元组。该映射中的对应Value(值)是将重定向至的移动Touch页的名称。另一映射定义了对于给定的移动Touch页而言将重定向至什么桌面页。该映射中的Key是Touch页的名称,以及该映射中的Value是桌面页的名称。
MobileTouch(移动触摸)体验依赖于将用户从针对在桌面上消费的页面重定向至等同的“移动”页和反之亦然的能力。通常使用的解决这一问题的方法是在用户的浏览器登陆到桌面页上并被识别为已知的移动客户端时执行对用户的浏览器的重定向。类似地,使用桌面客户端的用户在登陆移动页时可以被重定向至等同的桌面页。
本文公开的方法与该通常使用的解决方案的区别之处在于,并未将桌面页定义为固定的URL或页面,而是将其定义为列表类型和视图ID的组合。该方法使得重定向在存在包含相同列表视图的多个页面(多对一映射)的处理情况下能够更加灵活,并能够支持未来的可扩展性。该实现使用由列表模板类型和视图ID构成的元组作为映射中的“键”。这使得该实现能够从包含相同列表/视图对的许多页面进行重定向。
本文的TouchDesign还包括新的日志记录范式。其它日志记录系统将具有多个日志记录级别(例如,Verbose、Medium、High和Unexpected),并且将代码中的每一日志写入到日志记录系统当中。由于TouchDesign是纯粹的客户端侧展现的JavaScript应用,并且预计在慢数据连接上运行,因而将所有日志从客户端上载至服务器将使页面性能变慢,而且会对用户的交互造成不利干扰。
为了解决该问题以及潜在的其它问题,本文公开的实施例包括只有两个日志记录级别的系统。存在被称为“Boring”的低级日志。在写入boring日志时,系统按照固定大小队列对该日志进行高速缓存。由于boring日志不是自动上载的,因而使得boring日志的写入非常快,而且允许开发者自由地记录任何他们觉得会在出问题的情况下有用的东西。另一级是被称为“Interesting”的高日志级别。在写interesting日志时,系统不只是上载该interesting日志,还上载一组最新的boring日志。其思路是,只有在interesting日志的背景下,boring日志才是令人感兴趣的,而且在没有最新的几个boring日志的情况下,interesting日志本身无法提供足以对问题进行排错的细节。
如上所述,典型的日志记录系统将具有多个日志记录级别(例如,Verbose、Medium、High和Unexpected),并且提交给日志记录系统的每一日志条目都被标记有特定的日志记录级别。日志记录系统将做出选择,以在每一记录条目级别上将日志条目提交到持久存储。在这些类型的日志记录系统中,存在全系统的(又或许是全部件的)设置,以指定应当将哪一日志级别写入存储。只有日志记录级别与系统设置一样高或较之更高的日志条目才被写到持久存储,而所有其它较低级的日志条目都被丢弃,并且不会被写到持久存储。该方法具有若干不利之处。主要是为了节约存储空间,系统通常使用高日志级别运行。这意味着在发生什么不好的事情(又称为令管理员感兴趣的事情)时,系统将仅写出满足系统中设定的高日志记录级别的少数日志条目。这些日志条目足以通知管理员发生了不好的事情,但是通常未含有足够的信息让管理员确定到底发生了什么以及(更重要的)该感兴趣事件为什么发生。该日志记录系统的副作用在于管理员必须降低日志记录级别,继而尝试复现问题。如果该问题不是容易地可复现的,那么他们必须使日志记录级别处于较低直到复现该问题为止,其可能对系统(磁盘空间、CPU利用率、存储器等)造成压力,因为无益于调查该问题的大量的日志被写入了存储。
由于本文公开的TouchDesign是纯粹的客户端侧展现的JavaScript应用,并且预计在慢数据连接上运行,因而将所有日志从客户端上载至服务器将使页面性能变慢,而且会对用户的交互造成不利干扰。
本文公开的系统还包括一种允许以统一方式与多个不同的数据端点交互的机制。该系统是一种可扩展模型,其允许在对与SharePoint交互所需的公共代码的大部分加以重复使用的同时以最低的工作量访问多个不同的REST端点。在该系统中,创建一组适配器,其允许抽象掉SharePoint对象的细节,以实现重复使用。这些适配器能够按照常用方式与任何JSON数据交互,从而允许按照统一的方式与由协作系统提供的所有数据交互。
在TouchDesign数据管道当中,还对要从REST端点最后一次被访问记得的数据实现高速缓存机制。其允许在客户端处于提取被高速缓存的数据的更新版本的过程中时,将该被高速缓存的数据显示给用户。其允许在TouchDesign开始时以及在进行视图间的切换时使人感觉TouchDesign对用户具有非常高的响应度。TouchDesign使用浏览器的DOM本地存储器来存储被高速缓存的数据。有时,DOM本地存储器是不可用的。我们建立一种检测DOM本地存储器是否可用的方法,如果不可用,那么用存储器存储解决方案中的定制替代对DOM本地存储器的使用。
本文还公开了一种改进的枢轴控件。新的枢轴控件包括增加的画面(visual),以显示随着用户的滑动操作而动态地滑动的枢轴。还添加了惯性,以确保用户不会使枢轴朝左或朝右滑动一个以上的点。这是使用JavaScript、HTML5和CSS实现的。
提前参考图5,其示出了演示本文设想的增强模板展现的实现的操作情形500。在操作中,将HTML代码501从服务器下载至客户端。HTML代码501包括由模板503和模板505表示的各种模板。在一些情形下,HTML代码501还包括模板展现引擎507,尽管在其它情形下模板展现引擎507可以是从HTML代码501提供的。
模板展现引擎507采用模板展现过程600以使数据与模板在能够提供给浏览器展现引擎517的新HTML代码中进行组合。穿插着参考图6中所示的针对模板展现过程600的步骤,其中,模板展现引擎507对HTML代码501进行针对任何模板的检查(步骤601)。对于在HTML代码501中发现的给定的模板而言,模板展现引擎507为了事件处理信息检查该模板(步骤603)。例如,事件处理信息可以识别出附加至特定元素的特定事件处理器。之后,模板展现引擎507生成新的代码,该新的代码包括该元素和附加至该元素的事件处理器(步骤605)。
在本示例情形中,模板展现引擎507将数据502与模板503进行组合,并且将数据504与模板505进行组合,并输出由HTML代码511表示的新HTML代码。HTML代码511包括源自于数据502和模板503的组合的元素513和事件处理器514。HTML代码511还包括源自于数据504和模板505的组合的元素515和事件处理器516。可以将HTML代码511交给浏览器展现引擎517。
下文将指定用于实现模板展现引擎的示例性模板语言的细节。有两件事需要指出。首先,如果模板需要templateName,那么其为另一模板的字符串名称。其次,如果模板需要路径,那么其是指通过当前数据对象通往预期值的路径(与xpath类似)。调用具有数据对象的模板,并且该路径指定该模板想要该数据对象的哪一部分。如果模板形式正在寻找路径,但是在实际模板中没有指定任何路径,那么路径默认为“.”,其意味着传递当前数据对象。
下文是模板语言支持的构造。
值构造的语法为:{=path}。简单地通过该路径引用的值代替该模板。最为常见的使用情况是将实际数据值放到该位置上。另一种使用方式是使用该形式指定可能不同的属性(例如,类别),其取决于该数据项。
函数构造的语法是:{+functionName}。通过对指定函数的调用代替该模板。其最常被事件使用。例子为:<buttononclick={+myButtonClicked}>。该模板实际上扩展至对FunctionDispatcher的调用,为其提供该函数的名称。该functionName是针对所要调用的FunctionDispatcher的字符串->函数的内部词典的键。
模板构造的语法是:{%templatetemplateNamepath}。通过使用由路径引用的数据对象扩展子模板templateName的内容代替该模板。其允许模板递归地包括其它模板。
“foreach”构造的语法是:{%foreachtemplateNamepath}。由路径引用的数据对象必须是阵列。该构造向阵列内的每一元素应用templateName模板。
“templatechoice”构造的语法是:{%templateChoicetemplatePathpath}。其与模板构造类似,但是其提高了间接度水平。替代直接指定你想要使用的模板的名称,你指定数据对象中的通往该模板名称的路径。其允许数据对象选择使用什么模板。在应当对不同的数据元素进行不同地展现时,这种做法可以是有用的。
该语言还包括模板替换算法。模板替换算法指代所使用的实际代码,所述代码将模板从即时模板语言(templatinglanguage)转化为实际HTML。为了这样做,可以利用“CompiledStringReplace”。该技术利用JavaScript的函数性质,并且就是将模板考虑为函数。于是,对模板进行展现就是调用该函数。但是,要执行预备步骤,其中,引擎将每一模板字符串编译为含有一系列操作(其为函数)的模板函数。
在运行时间上,调用模板函数涉及执行其编译的该模板函数的一系列操作。操作(作为函数)采取所要操作的数据作为运行时间参数,但是经由闭包(closure)记忆编译时间上处理的其它信息(例如,路径)。
图8示出了模板展现引擎的示例性表示800。具体而言,示例性表示800包括例子中的模板801(“foo”),其被编译为包含下面的三种操作的函数:1)StringOperation(“<div>”);2)TemplateOperation(“bar”、“Book”);以及3)StringOperation(“</div>”)。
运行时间迭代操作,并通过数据对象中已通过的(thepassed)调用所述操作。模板函数803表示在编译之后建立的模板函数。在图8中还表示了操作函数805,并且其表示操作函数。
上文概括的CompiledStringReplace技术的一种代替方案包括NodeInjection(节点引入)。NodeInjection不执行字符串处理,而是在存储器中对DOM节点进行操纵。另一种替代方案是StringReplace(字符串替换),其中,将模板按照其字符串形式存储,并且在展现时间处,模板展现引擎执行一系列的字符串替换,以产生最终的HTML代码。
为了在展现时间处钩连(hookup)事件,模板展现引擎还包括有助于调用正确的事件处理器的FunctionDispatcher对象。对于具有FunctionDispatcher的一种替代方案涉及控件,所述控件使用模板以具有用于找到存储器中的DOM元素节点并将事件处理器附接于其上的OnPostRender事件,比较起来这种做法速度慢而且是处理器密集型的。
FunctionDispatcher保持用以存储函数的具有Array<Dictionary<string,function>>类型的内部数据结构(将其称为m_functions)。将为想要注册(register)函数的每一控制分配将与调度器一起使用的唯一对象ID。该对象ID是针对该控制到m_functions的索引。通过这种方式,可以有控制的多个实例处于页面上,而且将不存在名称冲突。每一控制的词典<string,function>是字符串函数名向其自身的实际函数的映射。
为了指定针对FunctionDispatcher的事件,模板使用Function构造语法。例如,<divonclick="{+myClick}"></div>会将点击处理器附接到使用名称“myClick”在FunctionDispatcher中识别出的div上。之后,控件将使用该名称向FunctionDispatcher注册其想要用于该事件的处理器。
在操作当中,在对模板编译时,通过对Renderer.FunctionDispatcher.Execute(event,objID,functionName)的调用代替Function构造字符串,其中,通过模板对functionName进行了填写,并且objID被传送给编译。Renderer.FunctionDispatcher.Execute可从全域范围可见,并且将调用以该名称向其注册的处理器。
继续参考图7,映射情形700示出了一种实现中的桌面到移动映射和移动到桌面映射。在操作当中,各种各样的计算设备中的任何计算设备都可以做出对web页面的请求。客户端设备102表示一个这样的设备。Web页面可以是用户访问的在线服务的部分,例如,协作服务、生产率服务、游戏服务、多媒体服务或者它们的任何变型或组合。
映射情形700涉及既具有桌面页面又具有移动页面的站点。可以由桌面页面701、桌面页面703、桌面页面705、桌面页面707和桌面页面709表示桌面页面。由移动页面711、移动页面713和移动页面714表示移动页面。
桌面页面是那些根据桌面格式被格式化的web页面,而移动页面则是按照移动格式格式化的web页面。在桌面客户端请求桌面页面时,路由功能或服务将桌面客户端引导至桌面页。类似地,在移动客户端请求移动页面时,路由服务可以将移动客户端路由至移动页面。
但是,存在有的时候移动客户端请求桌面页面,而桌面客户端请求移动页面。路由服务应用图7中所示的映射将所述请求重定向至更加适当的页面,而不是以对于该客户端而言次优的格式向客户端供应页面。
图7所示的桌面到移动映射是以每一页面中包含的列表类型和视图标识符(ID)之间的对应性为基础的。例如,桌面页面701包括列表的列表视图721。列表视图721是列表的视图,并且具有列表类型(“a”)和视图ID(“x”)。移动页面711也包括列表视图731。列表视图731也是列表的视图,并且包括列表类型(“a”)和视图ID(“x”)。换言之,列表视图721和列表视图731是相同基础列表的视图。对应地,将桌面页面701映射至移动页面711。在移动用户登陆到桌面页面701时,将按照由路由服务应用的桌面到移动映射将请求重定向至移动页面711。
可以将图7中所示的桌面到移动映射看作是非平衡映射,因为有不止一个桌面页面被映射至单个移动页面。例如,包括列表视图723的桌面页面703映射至移动页面711,因为列表视图723包括与列表视图731相同的列表类型和视图ID。桌面页面705和桌面页面707两者均映射至移动页面713,因为两页面分别包括的列表视图725和727具有与列表视图733相同的列表类型和视图ID。出于相同的原因,桌面页面709映射至734:列表视图729包含与列表视图734相同的列表类型和视图ID。
在相反的方向当中,可能相对于移动到桌面映射存在平衡对应性。在由桌面客户端请求移动页面时,路由服务将请求重定向至对应的桌面页面。例如,对移动页面711的桌面请求将重定向至桌面页面701;对移动页面713的桌面请求将重定向至桌面页面705;而对移动页面714的桌面请求将重定向至桌面页面709。
尽管图7示出了将移动页面重定向至桌面页面,而所述桌面页面在相反方向中还映射至所述移动页面的情形,但这不是必须的。相反,可以将移动页面映射至完全不同的桌面页面。例如,可以将对移动页面711的桌面请求重定向至除桌面页面701或桌面页面703以外的完全不同的页面。
应当理解,本文公开的实施例提供了用于实现基于模板的客户端展现平台的各种技术。应当理解,未必一定要按照任何特定的顺序呈现这些方法的各项操作,按照替代的顺序执行所述操作的部分或全部也是可能的并且是可以设想的。为了便于描述和图示,按照演示顺序提出了各项操作。在不背离所附权利要求的范围的情况下,可以增加、省略操作和/或同时执行操作。
应当理解,图示的方法可以随时结束,而未必一定将对其完整地执行。如本文所定义的,可以通过执行计算机存储介质上包含的计算机可读指令执行所述方法的一些或所有操作和/或基本上等同的操作。在说明书和权利要求中使用的术语“计算机可读指令”及其变型在本文具有扩展的用法,以包含例程、应用、应用模块、程序模块、程序、部件、数据结构、算法等。可以在各种系统配置上实现计算机可读指令,所述系统配置包括单处理器或多处理器系统、微型计算机、大型计算机、个人计算机、手持计算设备、基于微处理器的可编程消费电子品及其组合等等。
因而,应当认识到,将本文描述的逻辑操作实现为(1)在计算系统上运行的计算机实现动作或程序模块的序列;和/或(2)计算系统内的互连机器逻辑电路或电路模块。所述实现是取决于计算系统的性能和其它要求的选择问题。相应地,本文描述的逻辑操作多方面地涉及如状态、操作、结构设备、动作或模块。可以通过软件、固件、专用数字逻辑及其任何组合实现这些操作、结构设备、动作和模块。
本文将所述方法的各项操作介绍为至少部分地通过在客户端设备102上运行的Web浏览器应用120或其它应用、协作应用108或其组合予以实现。替代地或额外地,所述方法的各项操作中的一项或多项可以至少部分地通过客户端设备102和/或企业计算设备104中的类似部件予以实现。
图2是示出了由计算机架构200表示的能够执行本文描述的软件部件的设备的示例性计算机硬件和软件架构的计算机架构图。因而,图2中所示的计算机架构200示出了用于服务器计算机、移动电话、PDA、智能电话、台式计算机、上网本计算机、平板电脑和/或膝上型计算机的架构。可以利用计算机架构200执行本文提出的软件部件的各个方面。
图2中所示的计算机架构200包括中央处理单元(CPU)202、包括随机存取存储器206(RAM)和只读存储器(ROM)208的系统存储器204以及将系统存储器204耦接至CPU202的系统总线210。将含有有助于在计算机架构200内的各单元之间传送信息(例如,在启动期间)的基本例程的基本输入/输出系统存储到ROM208内。计算机架构200还包括大容量存储设备212。在用于实现企业计算设备104时,大容量存储设备212可以存储来自图1的操作系统106以及包括但不限于协作应用108的一个或多个应用程序。
通过连接至系统总线210的大容量存储控制器(未示出)将大容量存储设备212连接至CPU202。大容量存储设备212及其相关联的计算机可读媒介为计算机架构200提供了非易失性存储。尽管本文包含的对计算机可读媒介的描述涉及到大容量存储设备,例如,硬盘或CD-ROM驱动器,但是本领域技术人员应当理解计算机可读媒介可以是计算机架构200能够访问的任何可用的计算机存储介质或通信媒介。
通信媒介包括处于诸如载波的调制的数据信号或其它传输机制当中的计算机可读指令、数据结构、程序模块或其它数据,并且包括任何输送媒介。术语“调制的数据信号”一词是指使其特性中的一个或多个受到某种方式的改变或设置以便将信息编码到其内的信号。作为例子而非限制,通信媒介包括有线媒介,例如,有线网络或直接布线连接,还包括无线媒介,例如,声波、RF、红外和其它无线媒介。任何上述内容的组合也应当包含在计算机可读媒介的范围内。
作为例子而非限制,计算机存储介质可以包括通过任何用于对信息(例如,计算机可读指令、数据结构、程序模块或其它数据)进行存储的技术或方法实现的易失性和非易失性、可拆卸及不可拆卸介质。例如,计算机介质包括但不限于RAM、ROM、EPROM、EEPROM、闪存或其它固态存储技术、CD-ROM、数字通用盘(DVD)、HD-DVD、BLUR-RAY或其它光存储器、磁带盒、磁带、磁盘存储器或其它磁存储设备、或者可以用于对期望的信息进行存储并且可由计算机架构200所访问的任何其它介质。从权利要求的意图来讲,短语“计算机存储介质”、“计算机可读存储介质”及其变型不包括波、信号以及所传播的信号本身。
根据各实施例,计算机架构200可以通过诸如网络140的网络利用与远程计算机的逻辑连接在联网环境内操作。计算机架构200可以通过连接至系统总线210的网络接口单元216连接至网络140。应当认识到,还可以利用网络接口单元216连接至其它类型的网络以及远程计算机系统。计算机架构200还可以包括用于接收以及处理来自多个其它设备的输入的输入/输出控制器218,这些其它设备包括键盘、鼠标或者电子笔。类似地,输入/输出控制器218可以向显示器屏幕、打印机或者其它类型的输出设备提供输出。
应当认识到,本文描述的软件部件在被加载到CPU内并被执行时,将CPU202和整个计算机架构200从通用计算系统转换成被定制为促进本文提出的功能的专用计算系统。CPU202可以由任何数量的晶体管或其它分立电路元件构造而成,所述晶体管或元件可以单独地或者集体地采取任何数量的状态。更具体而言,CPU202可以响应于本文公开的软件模块内包含的可执行指令作为有限状态机操作。这些计算机可执行指令可以通过指定CPU202如何在状态之间进行转换而对CPU202进行变换,由此对构成CPU的晶体管或其它分立硬件元件进行变换。
对本文介绍的软件模块编码也可以对本文介绍的计算机可读媒介的物理结构进行变换。在本说明书的不同实现当中,所述物理结构的具体变换可以取决于各种各样的因素。这样的因素的例子可以包括但不限于用于实现计算机可读媒介的技术、所述计算机可读媒介被表征为主要存储还是辅助存储等等。例如,如果将计算机可读媒介实现为基于半导体的存储器,那么可以通过变换所述半导体存储器的物理状态而将本文公开的软件编码到该计算机可读媒介上。例如,所述软件可以对构成半导体存储器的晶体管、电容器或其它分立电路元件的状态进行变换。所述软件还可以转换这样的部件的物理状态,从而在其上存储数据。
作为另一示例,可以使用磁或光技术实现本文公开的计算机可读媒介。在这样的实现中,在将本文提出的软件编码到磁或光介质时,所述软件可以对所述磁或光介质的物理状态做出变换。这些变换可以包括改变给定磁介质内的特定位置的磁特性。这些变换还可以包括改变给定光介质内的特定位置的物理特征或特性,以改变这些位置的光学特性。在不背离本说明书的精神和范围的情况下,其它的物理介质的变换也是可能的,提供上面的例子只是为了促进本文的说明。
鉴于上述内容,应当认识到,在计算机架构200中发生很多种类型的物理变换,以存储和执行本文提出的软件部件。还应当认识到,计算机架构200可以包括其它类型的计算设备,包括手持计算机、嵌入式计算机系统、个人数字助理以及本领域技术人员公知的其它类型的计算设备。还应当认识到,计算机架构200可以不包含图2中所示的所有部件,可以包括图2中未明确示出的其它部件,或者可以利用与图2中所示的完全不同的架构。
图3示出了能够执行本文描述的软件部件,以提供本文描述的概念和技术的示例性分布式计算环境300。因而,可以使用图3中所示的分布式计算环境300提供本文描述的功能。因而,可以利用分布式计算环境300执行本文提出的软件部件的任何方面。
根据各种实现,分布式计算环境300包括在网络140上操作的、与网络140通信的或者作为网络140的部分的计算环境302。网络140还可以包括各种接入网。一个或多个客户端设备306A-306N(下文从整体上和/或从类属上将其称为“客户端”)可以经由网络140和/或其它连接(图3未示出)与计算环境302通信。在例示性实施例中,客户端306包括客户端设备306A,例如,膝上型计算机、台式计算机或其它计算设备;slate或平板计算设备(平板计算设备)306B;移动计算设备306C,例如,移动电话、智能电话或者其它移动计算设备;服务器计算机306D;和/或其它设备306N。应当理解,任何数量的客户端306可以与计算环境302通信。应当理解,图示的客户端306以及本文给出了图示和描述的计算架构都是示例性的,并且不应被认为其以任何方式构成限制。
在例示性实施例中,计算环境302包括应用服务器308、数据存储310以及一个或多个网络接口312。根据各种实现,可以通过作为网络304的部分执行或者与网络304通信的一个或多个服务器计算机提供应用服务器308的功能。应用服务器308能够托管各种服务、虚拟机、门户和/或其它资源。在例示行实施例中,应用服务器308托管一个或多个虚拟机314,所述虚拟机用于托管应用或其它功能。根据各种实现,虚拟机314托管一个或多个应用和/或软件模块,以提供本文描述的功能。应当理解,该实施例只是示例性的,并且不应被认为其以任何方式构成限制。应用服务器308还托管或提供对一个或多个Web门户、链接页面、网站和/或其它信息(“门户网站”)316的访问。
根据各种实现,应用服务器308还包括一个或多个邮箱服务以及一个或多个消息传送服务320。邮箱服务318可以包括电子邮件(email)服务。邮箱服务318还可以包括各种个人信息管理(PIM)服务,其包括但不限于日历服务、联系人管理服务、协作服务和/或其它服务。消息传送服务320可以包括但不限于即时消息传送服务、聊天服务、论坛服务和/或其它通信服务。
应用服务器308还可以包括一个或多个社交网络服务322。社交网络服务322可以包括各种社交网络服务,其包括但不限于用于共享或发布状态更新、即时消息、链接、照片、视频、和/或其它信息的服务;用于评论物品、产品、博客或其它资源或者显示对它们的兴趣的服务;和/或其它服务。在一些实施例中,社交网络服务322可以是通过FACEBOOK社交网络服务、LINKEDIN专业网络服务、MYSPACE社交网络服务、FOURSQUARE地理网络服务、YAMMER办公室同事网络服务等提供的,或者包括它们。在其它实施例中,社交网络服务322是通过其它服务、站点和/或供应商提供的,所述供应商可以是,也可以不是被明确公知为社交网供应商。例如,一些网站允许用户在各种活动和/或诸如阅读发布的文章、对货品或服务进行评论、发布、协作、游戏等等的背景期间,经由电子邮件、聊天服务和/或其它手段进行彼此的交互。该服务的例子包括但不限于来自华盛顿雷德蒙的微软公司的WINDOWSLIVE服务和XBOXLIVE服务。其它服务也是可能的,并且是可以被设想到的。
社交网络服务322还可以包括评论、博客和/或微博服务。该服务的例子包括但不限于YELP评论服务、KUDZU回顾服务、OFFICETALK企业微博服务、TWITTER消息传送服务、GOOGLEBUZZ服务和/或其它服务。应当认识到,上文对服务的列举并不是穷举的,为了简洁起见本文并未提及很多额外的和/或替代性社交网络服务。因而,上述实施例只是示例性的,并且不应被认为其以任何方式构成限制。
如上所述,计算环境302可以包括数据存储310。根据各种实现,数据存储310的功能是通过在网络140上操作或与之通信的一个或多个数据库提供的。数据存储310的功能还可以是通过被配置为托管面向计算环境302的数据的一个或多个服务器计算机提供的。数据存储310可以包括、托管或者提供一个或多个实际或虚拟的数据储存326A-326N(下文从整体上和/或类属上将其称为“数据储存”)。将数据储存326配置为托管由应用服务器308使用或创建的数据和/或其它数据。
计算环境302可以与网络接口312通信或者由其进行访问。网络接口312可以包括各种类型的用于支持两个或更多计算设备之间的通信的网络硬件和软件,所述计算设备包括但不限于客户端306和应用服务器308。应当认识到,还可以利用网络接口312连接至其它类型的网络和/或计算机系统。
应当理解,本文描述的分布式计算环境300可以利用可以被配置为执行本文公开的软件部件的任何方面的任何数量的虚拟计算资源和/或其它分布式计算功能,来提供本文描述的软件单元的任何方面。根据本文公开的概念和技术的各种实现,分布式计算环境300提供了本文被描述为针对客户端306的服务的软件功能。应当理解,客户端306可以包括实际机器或虚拟机器,它们包括但不限于服务器计算机、web服务器、个人计算机、移动计算设备、智能电话和/或其它设备。因而,本文公开的概念和技术的各个实施例使得被配置为访问分布式计算环境300的任何设备都能够利用本文描述的功能。
现在参考图4,其示出了用于能够执行本文描述的各种软件部件的计算设备的示例性计算设备架构400。计算设备架构400适用于促进移动计算的计算设备,其部分地归因于外形因子、无线连接性和/或电池供电操作。在一些实施例中,计算设备包括但不限于移动电话、平板电脑、slate设备、便携式视频游戏设备等。此外,计算设备架构400适用于图3中所示的客户端306中的任何客户端。此外,计算设备架构400的各个方面可以适用于传统的台式计算机、便携式计算机(例如,膝上型电脑、笔记本电脑、超便携电脑和上网本电脑)、服务器计算机和其它计算机系统,例如,本文参考图1描述的。例如,可以将下文公开的单点触控和多点触控方面应用于利用触摸屏的台式计算机或者其它启用触摸的设备,例如,启用触摸的触控板或者启用触摸的鼠标。
图4中所示的计算设备架构400包括处理器402、存储器部件404、网络连接性部件406、传感器部件408、输入/输出(I/O)部件410和电源部件412。在例示性实施例中,处理器402与存储器部件404、网络连接性部件406、传感器部件408、I/O部件410和电源部件412通信。尽管在图4中所示的各个部件之间未示出任何连接,但是各个部件可以进行交互以执行设备功能。在一些实施例中,将部件布置为经由一条或多条总线(未示出)通信。
处理器402包括中央处理单元(CPU),其被配置为处理数据、执行一个或多个应用程序的计算机可执行指令以及与计算设备架构400的其它部件通信,以执行本文描述的各种功能。可以利用处理器402执行本文提出的软件部件的方面,尤其是那些至少部分地利用启用触摸的输入的方面。
在一些实施例中,处理器402包括图形处理器单元(GPU),其被配置为加快由CPU执行的操作,所述操作包括但不限于通过执行通用科学与工程计算应用以及诸如高分辨率视频(例如,720P、1080P及更大)、视频游戏、三维(3D)建模应用等的图形密集型计算应用而执行的操作。在一些实施例中,将处理器402配置为与分立GPU(未示出)通信。在任何情况下,都可以根据协同处理CPU/GPU计算模型对CPU和GPU进行配置,其中,应用的顺序部分是在CPU上执行的,而计算密集型部分则通过GPU加速。
在一些实施例中,处理器402是片上系统(SOC),或连同下文描述的其它部件中的一个或多个被包含在SOC中。例如,SOC可以包括处理器402、GPU、网络连接性部件406中的一个或多个以及传感器部件408中的一个或多个。在一些实施例中,处理器402是部分地利用堆叠封装(PoP)集成电路封装技术制造的。此外,处理器402可以是单核或多核处理器。
可以根据ARM架构建立处理器402,对于从英国剑桥的ARMHOLDINGS获得许可而言是可用的。或者,可以根据x86架构建立处理器402,例如,可从加利福尼亚芒廷维尤的INTELCORPORATION获得这样的处理器。在一些实施例中,处理器402为可从加利福尼亚圣迭戈的QUALCOMM获得的SNAPDRAGONSoC、可从加利福尼亚圣克拉拉的NVIDIA获得的TEGRASoC、可从韩国汉城的SAMSUNG获得的HUMMINGBIRDSoC、可从德克萨斯达拉斯的TEXASINSTRUMENTS获得的开放多媒体应用平台(OMAP)、上述SOC中的任何SOC的定制版本或者专有SOC。
存储器部件404包括随机存取存储器(RAM)414、只读存储器(ROM)416、集成存储存储器(集成存储)418和可拆卸存储存储器(可拆卸存储)420。在一些实施例中,将RAM414或其部分、ROM416或其部分和/或RAM414和ROM416的某一组合集成到处理器402内。在一些实施例中,将ROM416配置为存储固件、操作系统或其部分(例如,操作系统核心)和/或用于从集成存储418或可拆卸存储420加载操作系统核心的引导加载程序。
集成存储418可以包括固态存储器、硬盘或者固态存储器和硬盘的组合。可以将集成存储418焊接或者以其它方式连接至逻辑板,处理器402以及本文描述的其它部件也可以连接至所述逻辑板上。因而,将集成存储418集成到计算设备内。将集成存储418配置为存储操作系统或其部分、应用程序、数据以及本文描述的其它软件部件。
可拆卸存储420可以包括固态存储器、硬盘或者固态存储器和硬盘的组合。在一些实施例中,可拆卸存储420是作为集成存储418的替代而提供的。在其它实施例中,提供可拆卸存储420作为额外的可选存储。在一些实施例中,对可拆卸存储420与集成存储418进行逻辑组合,以使用户可获得总的可用存储,并将其作为集成存储418和可拆卸存储420的总的组合容量呈献给用户。
将可拆卸存储420配置为插入到可拆卸存储存储器插槽(未示出)内,或者插入到用以插入并固定可拆卸存储420的其它机构内,从而促进可拆卸存储420借以与计算设备的其它部件,例如,处理器402通信的连接。可以将可拆卸存储420实现为各种存储器卡的形式,其包括但不限于PC卡、CompactFlash卡、存储棒、安全数字(SD)、miniSD、microSD、通用集成电路卡(UICC)(例如,用户身份模块(SIM))或通用SIM(USIM))、专有形式等。
应当理解,存储器部件404中的一个或多个可以存储操作系统。根据各实施例,所述操作系统包括但不限于来自SYMBIANLIMITED的SYMBIAN、来自华盛顿雷德蒙的微软公司的WINDOWSMOBILEOS、来自微软公司的WINDOWSPHONEOS、来自微软公司的WINDOWS、来自加利福尼亚帕洛阿尔托的Hewlett-Packard公司的PALMWEBOS、来自加拿大安大略滑铁卢的ResearchInMotionLIMITED的BLACKBERRYOS、来自加利福尼亚库佩蒂诺的苹果公司的IOS以及来自加利福尼亚芒廷维尤的Google公司的ANDROIDOS。也可以设想其它操作系统。
网络连接性部件406包括无线广域网部件(“WWAN部件”)422、无线局域网部件(“WLAN部件”)424和无线个人局域网部件(“WPAN部件”)426。网络连接性部件406促进去往和来自网络140的通信,所述网络可以是WWAN、WLAN或WPAN。尽管示出了单个网络,即网络140,但是网络连接性部件406可以促进与多个网络的同时通信。例如,网络连接性部件406可以促进经由WWAN、WLAN或WPAN中的一个或多个与多个网络的同时通信。
网络140可以是WWAN,例如,利用一种或多种移动电信技术经由WWAN部件422向利用计算设备架构400的计算设备提供语音和/或数据服务的移动电信网。移动电信技术可以包括但不限于全球移动通信系统(GSM)、码分多址(CDMA)ONE、CDMA2000、通用移动电信系统(UMTS)、长期演进(LTE)和全球微波接入互操作性(WiMAX)。此外,网络140可以利用各种信道接入方法(其可以是上述标准所使用的,也可以不是),所述方法包括但不限于时分多址(TMDA)、频分多址(FDMA)、CDMA、宽带CDMA(“W-CDMA”)、正交频分复用(“OFDM”)、空分多址(SDMA)等。可以利用通用分组无线业务(GPRS)、增强型数据速率全球演进(EDGE)、包括高速下行链路分组接入(HSDPA)、增强型上行链路(EUL)(又名高速上行链路分组接入(HSUPA))、演进HSPA(HSPA+)的高速分组接入(HSPA)协议系列、LTE以及各种当前和未来的无线数据接入标准来提供数据通信。可以将网络140配置为通过上述技术的任何组合提供语音和/或数据通信。网络140可以被配置为或者网络140可以适用于根据未来一代的技术提供语音和/或数据通信。
在一些实施例中,将WWAN部件422配置提供到网络140的双-多模式连接性。例如,可以将WWAN部件422配置为提供到网络140的连接性,其中,网络140经由GSM和UMTS技术或者经由某种其它技术的组合提供服务。或者,可以利用多个WWAN部件422执行该功能,和/或提供额外的功能,以支持其它不兼容的技术(即,不能由单个WWAN部件来支持)。WWAN部件422可以促进到多个网络(例如,UMTS网络和LTE网络)的类似的连接性。
网络140可以是根据一个或多个电气与电子工程师协会(IEEE)802.11标准(诸如,IEEE802.11a、802.11b、802.11g、802.11n和/或未来的802.11标准(本文中统称为WI-FI))来操作的WLAN。也可以设想Draft(草案)802.11标准。在一些实施例中,利用一个或多个无线WI-FI接入点实现WLAN。在一些实施例中,无线WI-FI接入点中的一个或多个是具有与WWAN的连接性的充当为WI-FI热点的其它计算设备。将WLAN部件424配置为经由WI-FI接入点连接至网络140。可以经由各种加密技术确保该连接的安全,所述技术包括但不限于WI-FI受保护接入(“WPA”)、WPA2、有线等效私密性(WEP)等。
网络140可以是根据红外线数据协会(“IrDA”)、蓝牙、无线通用串行总线(“USB”)、Z-Wave、ZIGBEE或某种其它短距离无线技术来操作的WPAN。在一些实施例中,将WPAN部件426配置为促进经由WPAN与其它设备(诸如,外围设备、计算机或其它计算设备)的通信。
传感器部件408包括磁强计428、环境光传感器430、接近传感器432、加速度计434、陀螺仪436和全球定位系统传感器(“GPS传感器”)438。可以设想将其它传感器,例如但不限于温度传感器或冲击检测传感器,还可以将其合并入计算设备架构400中。
将磁强计428配置为测量磁场的强度和方向。在一些实施例中,磁强计428向存储器部件404之一内存储的罗盘应用程序提供测量,以为用户提供包括东南西北这四个基本方向的参照系内的准确方向。可以向包括罗盘部件的导航应用程序提供类似的测量。可以设想对通过磁强计428获得的测量做其它使用。
将环境光传感器430配置为测量环境光。在一些实施例中,环境光传感器430向存储器部件404之一内存储的应用程序提供测量,以自动调整显示器的亮度(如下所述),从而对弱光和强光环境做出补偿。可以设想对通过环境光传感器430获得的测量做其它使用。
将接近传感器432配置为检测与计算设备接近但不直接接触的物体或东西的存在。在一些实施例中,接近传感器432检测用户的身体(例如,用户的面部)的存在,并将这一信息提供给存储器部件404之一内存储的应用程序,该程序利用所述接近信息启用或者禁用计算设备的某一功能。例如,电话应用程序可以响应于接收到所述接近信息而自动禁用触摸屏(如下所述),从而使用户的面部不会无意中终止呼叫或者在呼叫期间启动/禁用电话应用程序内的其它功能。可以设想对通过接近传感器432检测到的接近做其它使用。
将加速度计434配置为测量适当的加速度。在一些实施例中,应用程序将来自加速度计434的输出用作输入机制,以控制该应用程序的某一功能。例如,所述应用程序可以是视频游戏,其中,响应于经由加速度计434接收到的输入移动或者以其它方式操纵角色、其部分或物体。在一些实施例中,将来自加速度计434的输出提供给应用程序,以供在横屏模式和竖屏模式之间进行切换、坐标加速度的计算或者跌落检测之用。可以设想对加速度计434做其它使用。
将陀螺仪436配置为测量和维持方位。在一些实施例中,应用程序将来自陀螺仪436的输出用作输入机制,以控制该应用程序的某一功能。例如,可以使用陀螺仪436精确地识别视频游戏应用或某种其它应用的3D环境内的移动。在一些实施例中,应用程序利用来自陀螺仪436和加速度计434的输出增强对该应用程序的某一功能的控制。可以设想对陀螺仪436的其它使用。
将GPS传感器438配置为接收来自GPS卫星的信号,以供计算位置之用。任何需要或者受益于位置信息的应用程序都可以使用由GPS传感器438计算的位置。例如,可以将由GPS传感器438计算的位置与导航应用程序一起使用,以提供从该位置到目的地的指引或者从目的地到该位置的指引。此外,GPS传感器438可以用于向外部的基于定位的服务,例如,E911服务提供位置信息。GPS传感器438可以利用网络连接性部件406中的一个或多个获得经由WI-FI、WIMAX和/或蜂窝三角测量技术生成的位置信息,以辅助GPS传感器438获得定位。还可以在辅助GPS(“A-GPS”)系统中使用GPS传感器438。
I/O部件410包括显示器440、触摸屏442、数据I/O接口部件(“数据I/O”)444、音频I/O接口部件(“音频I/O”)446、视频I/O接口部件(“视频I/O”)448和照相机450。在一些实施例中,将显示器440与触摸屏442组合。在一些实施例中,将数据I/O接口部件444、音频I/O接口部件446和视频I/O接口部件448中的两个或更多组合。I/O部件410可以包括被配置为支持下述各种接口的分立处理器,或者可以包括内置到处理器402的处理功能。
显示器440是被配置为呈现视觉形式的信息的输出设备。具体而言,显示器440可以呈现图形用户界面(GUI)单元、文本、图像、视频、通知、虚拟按钮、虚拟键盘、消息传送数据、Internet内容、设备状态、时间、日期、日历数据、喜好、地图信息、位置信息以及任何其它能够以视觉形式呈现的信息。在一些实施例中,显示器440是利用任何有源或无源矩阵技术以及任何背光技术(如果使用的话)的液晶显示器(LCD)。在一些实施例中,显示器440是有机发光二极管(OLED)显示器。可以设想其它显示器类型。
触摸屏442是被配置为检测触摸的存在和位置的输入设备。触摸屏442可以是电阻式触摸屏、电容式触摸屏、表面声波触摸屏、红外线触摸屏、光学成像触摸屏、色散信号触摸屏、声脉冲识别触摸屏,或者可以利用任何其它触摸屏技术。在一些实施例中,将触摸屏442作为透明层被合并在显示器440之上,从而使用户能够使用一个或多个触摸与显示器440上呈现的对象或其它信息进行交互。在其它实施例中,触摸屏442是被合并到不包含显示器440的计算设备的表面上的触控板。例如,计算设备可以具有被合并到显示器440之上的触摸屏和与显示器440相反的表面上的触控板。
在一些实施例中,触摸屏442是单点触控触摸屏。在其它实施例中,触摸屏442是多点触控触摸屏。在一些实施例中,将触摸屏442配置为检测离散的触摸、单个触摸手势和/或多触摸手势。本文为方便起见将这些统称为手势。现在将描述几种手势。应当理解,这些手势只是示例性的,并非意在限制所附权利要求的范围。此外,可以通过软件实现所描述的手势、额外的手势和/或替代手势用于与触摸屏442一起使用。因而,开发者可以创建特定于特定应用程序的手势。
在一些实施例中,触摸屏442支持用户在显示器440所呈现的项目上对触摸屏442敲击一次的敲击手势。可以出于各种原因使用敲击手势,包括但不限于打开或者加载用户敲击的内容。在一些实施例中,触摸屏442支持用户在显示器440所呈现的项目上对触摸屏442敲击两次的双敲击手势。可以出于各种原因使用双敲击手势,包括但不限于阶段性地放大或缩小。在一些实施例中,触摸屏442支持用户敲击触摸屏442并至少保持预定时间的接触的点按手势。可以出于各种原因使用点按手势,包括但不限于打开特定于上下文的菜单。
在一些实施例中,触摸屏442支持用户将手指放在触摸屏442上并在与触摸屏442保持接触的同时在触摸屏442上移动该手指的平移手势。可以出于各种原因使用平移手势,包括但不限于按照受控速率遍历触摸屏、图像或菜单。也可以设想多手指平移手势。在一些实施例中,触摸屏442支持用户朝其想要移动屏幕的方向滑动手指的轻弹手势。可以出于各种原因使用轻弹手势,包括但不限于使菜单或页面横向或纵向滚动。在一些实施例中,触摸屏442支持缩放手势,其中,用户用两个手指(例如,大拇指和食指)在触摸屏442上做捏合运动或者使两个手指做打开的运动。可以出于各种原因使用缩放手势,包括但不限于逐渐放大或缩小网站、地图或照片。
尽管已经参考使用一根或多根手指执行手势的情况描述上述手势,但是可以使用诸如脚趾的其它附肢或者诸如触控笔的物体与触摸屏442交互。因而,应当将上述手势理解为示例性的,不应将其视为以任何方式构成限制。
将数据I/O接口部件444配置为促进向计算设备输入数据以及从计算设备输出数据。在一些实施例中,数据I/O接口部件444包括被配置为在计算设备和计算机系统之间提供有线连接性以达到(例如)同步化操作目的的连接器。所述连接器可以是专有连接器,或者可以是标准化连接器,例如,USB、微型USB、迷你USB等。在一些实施例中,所述连接器是用于使计算设备与其它设备对接的对接连接器,例如,所述其它设备可以是扩展坞、音频设备(例如,数字音乐播放器)或视频设备。
将音频I/O接口部件446配置为向计算设备提供音频输入和/或输出能力。在一些实施例中,音频I/O接口部件446包括被配置为收集音频信号的麦克风。在一些实施例中,音频I/O接口部件446包括被配置为为耳机或其它外部扬声器提供连接性的耳机插孔。在一些实施例中,音频I/O接口部件446包括用于音频信号的输出的扬声器。在一些实施例中,音频I/O接口部件446包括光学音频线缆外接。
将视频I/O接口部件448配置为向计算设备提供视频输入和/或输出能力。在一些实施例中,视频I/O接口部件448包括视频连接器,其被配置为接收来自另一设备(例如,诸如DVD或BLURAY播放器的视频媒体播放器)的作为输入的视频或者将作为输出的视频发送至另一设备(例如,监视器、电视机或某种其它外部显示器)。在一些实施例中,视频I/O接口部件448包括高清晰度多媒体接口(HDMI)、迷你HDMI、微型HDMI、DisplayPort或者用于输入/输出视频内容的专有连接器。在一些实施例中,将视频I/O接口部件448或其部分与音频I/O接口部件446或其部分组合。
可以将照相机450配置为捕获静态图像和/或视频。照相机450可以利用电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)图像传感器捕获图像。在一些实施例中,照相机450包括闪光灯,以辅助弱光环境下的照片拍摄。可以将针对照相机450的设置实现为硬件或软件按钮。
尽管未示出,但是还可以在计算设备架构400中包含一个或多个硬件按钮。可以使用硬件按钮控制计算设备的某一操作方面。该硬件按钮可以是专用按钮或者多用途按钮。该硬件按钮可以是机械的,或者基于传感器的。
所示的功率部件412包括一个或多个电池452,所述电池可以连接至电池量表454。电池452可以是可再充电的或者一次性的。可再充电电池类型包括但不限于锂聚合物、锂离子、镉-镍和镍金属氢化物。电池452中的每个可以由一个或多个单元构成。
可以将电池量表454配置为测量诸如电流、电压和温度的电池参数。在一些实施例中,将电池量表454配置为测量电池放电速度、温度、寿命以及其它因素的效果,从而在某一误差百分比内预测剩余寿命。在一些实施例中,电池量表454将测量结果提供给应用程序,该应用程序被配置为利用所述测量结果将可用的电源管理数据呈现给用户。电源管理数据可以包括已用电池百分比、剩余电池百分比、电池状态、剩余时间、剩余容量(以瓦特小时计量)、电流消耗和电压中的一项或多项。
电源部件412还可以包括电源连接器,可以使电源连接器与上述I/O部件410中的一个或多个组合。电源部件412可以经由电源I/O部件(未示出)与外部电源系统或充电设备对接。
尽管本文按照计算机结构特征、方法和变换动作、特定的计算设备以及计算机可读媒介所特有的措辞描述了本文提出的主题,但是应当理解所附权利要求中界定的本发明不一定限于本文描述的特定特征、动作或媒介。相反,所述特定特征、动作和媒介是作为实现权利要求的示例形式而公开的。
上文描述的主题只是以举例说明的方式提供的,不应将其视为构成限制。在不背离下述权利要求中阐述的本发明的实际精神和范围的情况下,可以在不遵循图示和描述的示例性实施例和应用的情况下对本文描述的主题作出各种修改和变化。
从上文对图1-图8的讨论可以认识到,可以在实现本文讨论的增强型模板展现和页面重定向时达到各种技术效果。将模板和数据进行组合以生成具有元素和在将HTML加载到浏览器中之前附加的事件处理器的HTML,提高了计算性能。在元素已经附加到事件处理器上时,要求浏览器对HTML做出的处理将更少。该性能提高加快了应用的速度,并改善了用户体验,因为能够更快地加载web页面,并且web页面具有更高的针对用户输入的响应性。
非平衡页面重定向允许协作站点从多个桌面页重定向至单个移动页。这意味着桌面页和移动页没有必要具有一比一的比值,这样能够降低在协作站点上存储的数据量以及用于该站点的存储空间的量。此外,该重定向节约了工作时间,因为不必针对所生成的每一桌面页生成移动页。
尽管图1-8大致地描绘了相对较少的操作情形和序列,但是应当认识到可以按常规以及规模性地应用本文公开的概念。例如,可以将本文公开的模板展现引擎和过程部署为支持任何数量的客户端和设备。
从上述公开内容可以认识到某些创造性方面,下文给出了这些方面的各种例子。
示例1:一种协作服务,包括:多个协作站点,每一协作站点包括多个web页,其中,所述多个web页包括桌面页和移动页;以及路由服务,其根据定义桌面页和移动页之间的非平衡对应关系的桌面到移动映射将对桌面页的移动请求重定向至移动页,以及根据定义桌面页和移动页之间的平衡对应关系的移动到桌面映射将对移动页的桌面请求重定向至桌面页。
示例2:根据示例1所述的协作服务,其中,路由服务接收来自多个服务客户端的对多个web网页的多个请求,并且基于所述多个请求中的每一请求的源的身份(identity),在那些包含移动请求的请求和那些包含桌面请求的请求之间进行区分。
示例3:根据示例1-2所述的协作服务,其中,所述路由服务在用于将多个服务客户端中的每一个标识为移动客户端或非移动客户端的表格中查询所述源的身份。
示例4:根据示例1-3所述的协作服务,其中,桌面页和移动页之间的非平衡对应关系包括桌面页的子集与移动页之一之间的多对一对应关系。
示例5:根据示例1-4所述的协作服务,其中,桌面页和移动页之间的平衡对应关系包括桌面页的不同子集与移动页子集之间的一对一对应关系。
示例6:根据示例1-5所述的协作服务,其中,桌面到移动映射按照桌面页中包含的列表视图的列表类型和视图标识符定义桌面页之间的非平衡对应关系,其中,移动到桌面映射根据页面名称定义桌面页和移动页之间的平衡对应关系。
示例7:一种用于重定向对web页的请求的方法,包括:响应于对包含列表的视图的web页的请求,识别由与该列表相关联的列表类型以及与该列表相关联的视图标识符构成的元组;至少部分地基于多个web页中的哪一个对应于所述元组而从所述多个web页中识别出不同的web页;以及识别出该不同的web页作为对所述请求的答复。
示例8:根据示例7所述的方法,还包括:响应于对包括该列表视图的额外web页的额外请求,识别出由与该列表相关联的列表类型和与该列表相关联的视图标识符构成的额外元组;至少部分地基于所述多个web页中的哪一个对应于所述额外元组而从所述多个web页中识别出该不同web页;以及识别出该不同的web页作为对所述额外请求的答复。
示例9:根据示例7-8所述的方法,其中,所述web页包括协作web站点中的具有桌面格式的页面,其中,所述的额外web页包括在该协作web站点中的具有桌面格式的额外页面,并且其中,所述的不同的web页包括在协作web站点中的具有移动格式的不同页。
示例10:根据示例7-9所述的方法,还包括:响应于对包含该列表视图的额外web页的额外请求,至少部分地基于所述多个web页中的哪一web页对应于所述额外web页,来从所述多个web页中识别出所述不同web页;以及识别出该不同的web页作为对所述额外请求的答复。
示例11:根据示例7-10所述的方法,其中,所述web页包括协作web站点中的具有桌面格式的页面,其中,所述额外web页包括在该协作web站点中的具有移动的额外页面,并且其中,所述不同的web页包括在协作web站点中的具有桌面格式的不同页。
示例12:根据示例7-11所述的方法,其中,识别所述元组是响应于确定所述请求源自于移动客户端而发生的。
示例13:根据示例7-12所述的方法,其中,所述协作站点包括多个web页,其中,所述多个web页包括具有桌面格式的web页的子集,该具有桌面格式的web页的子集对应于具有移动格式的web页的子集中的单个web页。
示例14:一种设备,包括:一个或多个计算机可读存储介质;以及存储在所述一个或多个计算机可读存储介质上的用于重定向对web页的请求的程序指令,所述程序指令在由处理系统执行时指引所述处理系统至少进行以下操作:响应于对包含列表的视图的web页的请求,识别出由与该列表相关联的列表类型和与该列表相关联的视图标识符构成的元组;至少部分地基于多个web页中的哪一个对应于所述元组,来从多个web页中识别出不同的web页;以及识别出该不同的web页作为对所述请求的答复。
示例15:根据示例14所述的装置,其中,所述程序指令响应于对包含该列表的视图的额外web页的额外请求,指引所述处理系统至少进行以下操作:识别出由与该列表相关联的列表类型和与该列表相关联的视图标识符构成的额外元组;至少部分地基于所述多个web页中的哪一个对应于所述额外元组,来从所述多个web页中识别出该不同的web页;以及识别出该不同的web页作为对所述额外请求的答复。
示例16:根据示例14-15所述的装置,还包括被配置为执行所述程序指令的处理系统,其中,所述web页包括协作web站点中的具有桌面格式的页面,其中,所述额外web页包括在该协作web站点中的具有该桌面格式的额外页面,并且其中,所述不同的web页包括在协作web站点中的具有移动格式的不同页。
示例17:根据示例14-16所述的装置,其中,所述程序指令响应于对包含该列表的视图的额外web页的额外请求进一步指引所述处理系统进行以下操作:至少部分地基于所述多个web页中的哪一个对应于所述额外的web页,来从所述多个web页中识别出该不同的web页;以及识别出该不同的web页作为对所述额外请求的答复。
示例18:根据示例14-17所述的装置,其中,所述web页包括协作web站点中的具有桌面格式的页面,其中,所述额外web页包括在该协作web站点中的具有移动的额外页面,并且其中,所述不同的web页包括在协作web站点中的具有桌面格式的不同页。
示例19:根据示例14-18所述的装置,其中,程序指令指引所述处理系统在所述请求源自于移动客户端时识别所述元组。
示例20:根据示例14-19所述的装置,其中,所述协作站点包括多个web页,其中,所述多个web页包括具有桌面格式的web页的子集,该具有桌面格式的web页的子集对应于具有移动格式的web页的子集中的单个web页。
示例21:一种计算机,包括:处理器;以及与所述处理器通信的计算机可读存储介质,所述计算机可读存储介质包括存储于其上的计算机可执行指令,所述指令在由所述处理器执行时使所述处理器提供基于模板的客户端展现平台。
示例22:一种计算机实现方法,包括:提供基于模板的客户端展现平台。
示例23:一种具有存储于其上的计算机可执行指令的计算机可读存储介质,所述指令在由计算机执行时使所述计算机:提供基于模板的客户端展现平台。
附图中提供的功能框图、操作情形和序列以及流程图表示用于执行本公开内容的新颖性方面的示例性系统、环境和方法。尽管为了解释简单起见本文包含的方法可以具有功能框图、操作情形和序列或流程图的形式并且可以被描述为一系列动作,但是应当理解并且认识到,所述方法不受所述动作顺序的限制,因为根据所述方法一些操作可以是按照与本文图示和描述的顺序不同的顺序发生的和/或可以是与其它动作同时发生的。例如,本领域的技术人员将理解和认识到,作为替代,也可以将方法(例如)通过状态图,表示为一系列相关的状态或事件。此外,对于一种新颖性实现而言未必需要在该方法中示出的所有动作。
本文包含的描述和附图描绘了特定实现,以教导本领域技术人员如何做出以及使用最佳选项。出于教导创造性原则的目的,简化或忽略了一些常规方面。本领域技术人员将认识到这些实现的落在本发明的范围内的变型。本领域技术人员还将认识到可以通过各种方式组合上文描述的特征,以形成多种实现。因此,本发明不限于上面描述的特定实现,本发明仅由权利要求及其等同要件界定。

Claims (15)

1.一种协作服务,包括:
多个协作站点,每一协作站点包括多个web页,其中,所述多个web页包括桌面页和移动页;以及
路由服务,其根据定义所述桌面页和所述移动页之间的非平衡对应关系的桌面到移动映射将对所述桌面页的移动请求重定向至所述移动页,以及根据定义所述桌面页和所述移动页之间的平衡对应关系的移动到桌面映射将对所述移动页的桌面请求重定向至所述桌面页。
2.根据权利要求1所述的协作服务,其中,所述路由服务接收来自多个服务客户端的对所述多个web页的多个请求,以及基于所述多个请求中的每个请求的源的身份,在包含所述移动请求的请求和包含所述桌面请求的请求之间进行区分。
3.根据权利要求2所述的协作服务,其中,所述路由服务在将所述多个服务客户端中的每个标识为移动客户端或非移动客户端的表格中查询所述源的所述身份。
4.根据权利要求2所述的协作服务,其中,所述桌面页和所述移动页之间的所述非平衡对应关系包括所述桌面页的子集与所述移动页之一之间的多对一对应关系。
5.根据权利要求4所述的协作服务,其中,所述桌面页和所述移动页之间的所述平衡对应关系包括所述桌面页的不同子集与所述移动页子集之间的一对一对应关系。
6.根据权利要求5所述的协作服务,其中,所述桌面到移动映射按照所述桌面页中包含的列表视图的列表类型和视图标识符定义所述桌面页之间的所述非平衡对应关系,其中,所述移动到桌面映射按照页面名称定义所述桌面页和所述移动页之间的所述平衡对应关系。
7.一种用于重定向对web页的请求的方法,包括:
响应于对web页的请求,其中,所述web页包含列表的视图,来识别包含与所述列表相关联的列表类型以及与所述列表相关联的视图标识符的元组;
至少部分地基于多个web页中的哪一个对应于所述元组来从所述多个web页中识别出不同的web页;以及
识别出所述不同的web页作为对所述请求的答复。
8.根据权利要求7所述的方法,还包括:
响应于对额外web页的额外请求,其中,所述额外web页包括所述列表的所述视图,识别出包含与所述列表相关联的所述列表类型和与所述列表相关联的所述视图标识符的额外元组;
至少部分地基于所述多个web页中的哪一个对应于所述额外元组来从所述多个web页中识别出所述不同的web页;以及
识别出所述不同的web页作为对所述额外请求的答复。
9.根据权利要求8所述的方法,其中,所述web页包括协作web站点中的具有桌面格式的页面,其中,所述额外web页包括所述协作web站点中的具有所述桌面格式的额外页面,并且其中,所述不同的web页包括所述协作web站点中的具有移动格式的不同页。
10.根据权利要求7所述的方法,还包括:
响应于对额外web页的额外请求,其中,所述额外web页包含所述列表的所述视图,至少部分地基于所述多个web页中的哪一web页对应于所述额外web页来从所述多个web页中识别出所述不同的web页;以及
识别出所述不同的web页作为对所述额外请求的答复。
11.根据权利要求10所述的方法,其中,所述web页包括协作web站点中的具有桌面格式的页面,其中,所述额外web页包括所述协作web站点中的具有移动的额外页面,并且其中,所述不同的web页包括所述协作web站点中的具有所述桌面格式的不同页。
12.根据权利要求7所述的方法,其中,识别所述元组是响应于确定所述请求源自于移动客户端而发生的。
13.根据权利要求7所述的方法,其中,协作站点包括所述多个web页,其中,所述多个web页包括具有桌面格式的web页的子集,所述具有桌面格式的web页的子集对应于具有移动格式的web页的子集中的单个web页。
14.一种装置,包括:
一个或多个计算机可读存储介质;以及
存储在所述一个或多个计算机可读存储介质上的用于重定向对web页的请求的程序指令,所述程序指令在由处理系统执行时,指导所述处理系统至少进行以下操作:
响应于对包含列表的视图的web页的请求,识别出包含与所述列表相关联的列表类型和与所述列表相关联的视图标识符的元组;
至少部分地基于多个web页中的哪一个对应于所述元组来从所述多个web页中识别出不同的web页;以及
识别出所述不同的web页作为对所述请求的答复。
15.根据权利要求14所述的装置,其中,所述程序指令响应于对包含所述列表的所述视图的额外web页的额外请求,指导所述处理系统至少进行以下操作:
识别出包含与所述列表相关联的所述列表类型和与所述列表相关联的所述视图标识符的额外元组;
至少部分地基于所述多个web页中的哪一个对应于所述额外元组来从所述多个web页中识别出所述不同的web页;以及
识别出所述不同的web页作为对所述额外请求的答复。
CN201480062987.8A 2013-11-18 2014-11-18 桌面页和移动页之间的不平衡映射 Active CN105745648B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361905500P 2013-11-18 2013-11-18
US61/905,500 2013-11-18
US14/542,860 US10230782B2 (en) 2013-11-18 2014-11-17 Unbalanced mapping between desktop and mobile pages
US14/542,860 2014-11-17
PCT/US2014/066048 WO2015074012A1 (en) 2013-11-18 2014-11-18 Unbalanced mapping between desktop and mobile pages

Publications (2)

Publication Number Publication Date
CN105745648A true CN105745648A (zh) 2016-07-06
CN105745648B CN105745648B (zh) 2020-08-25

Family

ID=52103160

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480062987.8A Active CN105745648B (zh) 2013-11-18 2014-11-18 桌面页和移动页之间的不平衡映射

Country Status (4)

Country Link
US (1) US10230782B2 (zh)
EP (1) EP3072068B1 (zh)
CN (1) CN105745648B (zh)
WO (1) WO2015074012A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109478128A (zh) * 2017-02-03 2019-03-15 乐天株式会社 信息处理装置、信息处理方法、程序、存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11677809B2 (en) * 2015-10-15 2023-06-13 Usablenet Inc. Methods for transforming a server side template into a client side template and devices thereof

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272545B1 (en) * 1997-10-24 2001-08-07 Microsoft Corporation System and method for interaction between one or more desktop computers and one or more mobile devices
CN1308287A (zh) * 2000-01-27 2001-08-15 国际商业机器公司 多个不同种类计算设备之间的即时选择的多个软文档共享
US20050097008A1 (en) * 1999-12-17 2005-05-05 Dan Ehring Purpose-based adaptive rendering
CN1979476A (zh) * 2005-12-06 2007-06-13 国际商业机器公司 用于提供异步门户页的方法和系统
US20080172372A1 (en) * 2007-01-17 2008-07-17 Google Inc. Expandable Homepage Modules
US20080172373A1 (en) * 2007-01-17 2008-07-17 Google Inc. Synchronization of Fixed and Mobile Data
US20090006338A1 (en) * 2007-06-28 2009-01-01 Taptu Ltd. User created mobile content
WO2009012461A1 (en) * 2007-07-18 2009-01-22 Network Solutions, Llc Mobile content service
WO2011139980A1 (en) * 2010-05-05 2011-11-10 Digimarc Coporation Hidden image signaling
US20120079427A1 (en) * 2006-05-18 2012-03-29 Christopher Carmichael Sprocket Shaped User Interface for Navigating a Dynamic Collection of Information
US8181106B2 (en) * 2009-03-18 2012-05-15 Microsoft Corporation Use of overriding templates associated with customizable elements when editing a web page
CN102624729A (zh) * 2012-03-12 2012-08-01 北京星网锐捷网络技术有限公司 一种web认证的方法、装置及系统
US20120284012A1 (en) * 2010-11-04 2012-11-08 Rodriguez Tony F Smartphone-Based Methods and Systems
US20130024450A1 (en) * 2011-07-18 2013-01-24 Dirk Thomsen Converter traversal using power of two-based operations
US20130144928A1 (en) * 2011-12-05 2013-06-06 Microsoft Corporation Minimal download and simulated page navigation features

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030009563A1 (en) 1997-07-31 2003-01-09 At&T Corp. Method for client-side inclusion of data elements
US7111231B1 (en) 1999-02-24 2006-09-19 Intellisync Corporation System and methodology for dynamic application environment employing runtime execution templates
US7210099B2 (en) 2000-06-12 2007-04-24 Softview Llc Resolution independent vector display of internet content
US8375358B2 (en) 2008-01-30 2013-02-12 International Business Machines Corporation Automatically generating rest clients from rest resources
WO2011025975A1 (en) 2009-08-28 2011-03-03 Zynga Game Network, Inc. Apparatuses, methods and systems for a distributed object renderer
US8819172B2 (en) * 2010-11-04 2014-08-26 Digimarc Corporation Smartphone-based methods and systems
US8941673B2 (en) 2011-11-08 2015-01-27 Red Hat, Inc. Rendering images in a remote web browser
US8959142B2 (en) 2012-02-29 2015-02-17 Microsoft Corporation Combining server-side and client-side user interface elements
US10222926B2 (en) 2012-03-19 2019-03-05 Citrix Systems, Inc. Systems and methods for providing user interfaces for management applications
US9141596B2 (en) 2012-05-02 2015-09-22 Google Inc. System and method for processing markup language templates from partial input data
US20140282139A1 (en) 2013-03-13 2014-09-18 Outright, Inc. System for mobile content management
US20150143227A1 (en) 2013-11-18 2015-05-21 Microsoft Technology Licensing, Llc Enhanced event handler attachment

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272545B1 (en) * 1997-10-24 2001-08-07 Microsoft Corporation System and method for interaction between one or more desktop computers and one or more mobile devices
US20050097008A1 (en) * 1999-12-17 2005-05-05 Dan Ehring Purpose-based adaptive rendering
CN1308287A (zh) * 2000-01-27 2001-08-15 国际商业机器公司 多个不同种类计算设备之间的即时选择的多个软文档共享
CN1979476A (zh) * 2005-12-06 2007-06-13 国际商业机器公司 用于提供异步门户页的方法和系统
US20120079427A1 (en) * 2006-05-18 2012-03-29 Christopher Carmichael Sprocket Shaped User Interface for Navigating a Dynamic Collection of Information
US20080172373A1 (en) * 2007-01-17 2008-07-17 Google Inc. Synchronization of Fixed and Mobile Data
US20080172372A1 (en) * 2007-01-17 2008-07-17 Google Inc. Expandable Homepage Modules
US20090006338A1 (en) * 2007-06-28 2009-01-01 Taptu Ltd. User created mobile content
WO2009012461A1 (en) * 2007-07-18 2009-01-22 Network Solutions, Llc Mobile content service
US8181106B2 (en) * 2009-03-18 2012-05-15 Microsoft Corporation Use of overriding templates associated with customizable elements when editing a web page
WO2011139980A1 (en) * 2010-05-05 2011-11-10 Digimarc Coporation Hidden image signaling
US20120284012A1 (en) * 2010-11-04 2012-11-08 Rodriguez Tony F Smartphone-Based Methods and Systems
US20130024450A1 (en) * 2011-07-18 2013-01-24 Dirk Thomsen Converter traversal using power of two-based operations
US20130144928A1 (en) * 2011-12-05 2013-06-06 Microsoft Corporation Minimal download and simulated page navigation features
CN102624729A (zh) * 2012-03-12 2012-08-01 北京星网锐捷网络技术有限公司 一种web认证的方法、装置及系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
INTERNET ARTICLE: "Recommendations for building smartphone-optimized websites", 《HTTP://GOOGLEWEBMASTERCENTRAL.BLOGSPOT.NL/2012/06/RECOMMENDATIONS-FOR-BUILDING-SMARTPHONE .HTML》 *
INTERNET ARTICLE: "Running desktop and mobile versions of your site", 《HTTP://GOOGLEWEBMASTERCENTRAL.BLOGSPOT.NL/2009/11/RUNNING-DESKTOP-AND-MOBILE-VERSIONS-OF.HTML》 *
NAMITA MITTAL等: "Reconstruction of web forms for efficient web search", 《2009 PROCEEDING OF INTERNATIONAL CONFERENCE ON METHODS AND MODELS IN COMPUTER SCIENCE (ICM2CS)》 *
苗连强: "ASP.NET2.0中页面重定向方法的教学探讨", 《教育与教学研究》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109478128A (zh) * 2017-02-03 2019-03-15 乐天株式会社 信息处理装置、信息处理方法、程序、存储介质
CN109478128B (zh) * 2017-02-03 2022-03-04 乐天集团股份有限公司 信息处理装置、信息处理方法、存储介质

Also Published As

Publication number Publication date
CN105745648B (zh) 2020-08-25
EP3072068B1 (en) 2020-10-07
US10230782B2 (en) 2019-03-12
EP3072068A1 (en) 2016-09-28
US20150142890A1 (en) 2015-05-21
WO2015074012A1 (en) 2015-05-21

Similar Documents

Publication Publication Date Title
US11327928B2 (en) Dynamic display of file sections based on user identities
US11703990B2 (en) Animated visual cues indicating the availability of associated content
US10521251B2 (en) Hosting application experiences within storage service viewers
US9979732B2 (en) Contextually aware sharing recommendations
US9235335B2 (en) Touch interactions with a drawing application
US20130124605A1 (en) Aggregating and presenting tasks
CN104541271A (zh) 从电子表格数据生成场景和游览
US20150143227A1 (en) Enhanced event handler attachment
US9892141B2 (en) Extensibility of collectable data structures
US10108737B2 (en) Presenting data driven forms
US10719498B2 (en) Enhanced management capabilities for collectable data structures
US20160012129A1 (en) Visualization suggestions
CN108028857A (zh) 智能通知
CN105393222A (zh) 网络应用与本地应用之间的渲染委托
CN106537382A (zh) 查询建议
CN109313589B (zh) 实现与外部功能的交互
CN106062709A (zh) 将主题信息从主机应用传播到主机扩展
WO2017172491A1 (en) Generating a services application
CN105745648A (zh) 桌面页和移动页之间的不平衡映射
US20140372524A1 (en) Proximity Operations for Electronic File Views
CN105408866B (zh) 远程脚本环境中的上下文关联性
TW201617942A (zh) 在文件中利用資料搜尋
WO2023129245A1 (en) Enhance control of communication sessions
CN108141467A (zh) 应用自动路由框架
CN102831118A (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