CN111552897A - web内容的客户端侧定制和渲染 - Google Patents

web内容的客户端侧定制和渲染 Download PDF

Info

Publication number
CN111552897A
CN111552897A CN202010082085.8A CN202010082085A CN111552897A CN 111552897 A CN111552897 A CN 111552897A CN 202010082085 A CN202010082085 A CN 202010082085A CN 111552897 A CN111552897 A CN 111552897A
Authority
CN
China
Prior art keywords
web
client
computing device
client computing
client device
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.)
Pending
Application number
CN202010082085.8A
Other languages
English (en)
Inventor
盛彬
马墨峰
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.)
Oracle International Corp
Original Assignee
Oracle International Corp
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 Oracle International Corp filed Critical Oracle International Corp
Publication of CN111552897A publication Critical patent/CN111552897A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/154Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及web内容的客户端侧定制和渲染。本文描述的技术涉及由客户端web浏览器生成更新后的样式表和/或其它web内容,以允许在客户端设备处渲染时将具体的格式、布局和样式应用于特定的web元素。客户端设备可以分析从web服务器接收的web内容以识别web内容内的各个元素,包括元素标识符、值和/或其它特性。客户端设备可以向web服务器传输后续请求以检索元素定义、使用元素定义来动态地生成更新后的web内容,然后将更新后的web内容注入从web服务器接收的web内容中,以在客户端设备处实现定制的且特定于元素的显示格式、布局和样式。

Description

web内容的客户端侧定制和渲染
背景技术
web服务器通过传输HTTP(超文本传输协议)消息和/或各种基于web的协议向客户端设备提供内容,以向其各种客户端提供web文件。客户端设备一般通过其web浏览器传输请求,然后以标记语言文档(诸如超文本标记语言(HTML)文件、可扩展标记语言(XML)文件)以及相关联的基于web的资源(诸如JavaScript文件、样式表(例如,CSS)以及图像文件、视频文件和要嵌入在网页内的其它web内容)的形式从web服务器接收网页。客户端设备上的web浏览器然后可以解析从web服务器接收的标记语言文档,并向客户端设备的显示器渲染(render)网页内容。web浏览器通过应用布局规则并使用由样式表定义的元素的特定渲染样式来显示元素。
随着客户端设备(包括台式计算机、膝上型计算机、平板电脑、智能电话、智能手表、启用web的电视等)的数量和类型不断增加,取决于客户端设备的类型和特点来以不同方式渲染web内容是重要的。为此,web服务器一般创建网页/web内容的多个副本,以在不同的客户端设备上进行渲染。当客户端请求网页时,服务器可以从请求报头(header)中识别客户端设备类型和/或平台,并且可以检索并传输标记语言文件、样式表等的特定集合。此外,一些web内容提供者可以支持对网页的有限用户定制,诸如通过在网页内提供“暗(dark)模式”特征,该特征允许用户在较亮和较暗的样式之间切换被渲染的网页,或者通过允许客户端用户改变网页内显示的字体尺寸。但是,对定制特征的支持是有限的并且必须由后端web服务器实现。
发明内容
因而,本文描述的实施例涉及用于经由在客户端设备上执行的web浏览器生成和注入更新后的样式表和/或其它web内容,从而更新在客户端设备上渲染的web内容的样式、布局和格式的技术,其中需要很少或不需要改变后端web服务器所需的支持。例如,本文描述的某些实施例包括客户端设备从web服务器请求、接收和分析web内容。客户端设备可以分析web内容以识别网页内的各个元素,包括元素标识符、值和/或其它特性。客户端设备可以将后续请求传输到web服务器以检索元素定义,该元素定义可以是特定的元素标识符和/或元素组。使用元素定义,客户端设备可以动态地生成更新后的web文件(例如,标记语言文件、样式表等),然后将更新后的web文件(例如,使用JavaScript)注入从web服务器接收的其余web内容中,以显示在客户端设备上。这些技术允许使用由客户端设备动态地生成的更新后的样式表和其它web内容来将特定的格式、布局和样式应用于web元素(诸如表格、图像、控件和任何其它web元素)。
此外,根据某些实施例,在客户端设备上执行的web浏览器可以确定形状因数、用户输入控件和/或各种其它客户端设备能力和特点,并且可以使用确定的设备特点来生成为web内容更新的呈现标记、样式表等。还可以基于操作客户端设备的当前用户的特点来执行这种定制,例如,通过基于可以由客户端web浏览器确定的当前用户的偏好或特点更改元素尺寸、配色方案、用户输入控件等。另外,在一些实施例中,可以在请求并渲染初始web内容之后检测对客户端设备的形状因数和/或特点的改变。例如,智能电话或台式客户端可以与电视或其它外部显示器连接(例如,经由屏幕镜像或配对),从而允许将客户端智能电话或台式的显示投影到外部显示器。在此类情况下,客户端设备可以基于对新的外部显示器的检测(和/或对客户端设备检测到的任何改变)重新生成标记和/或样式表,从而允许动态地重新生成web内容并将其向外部显示器渲染。
如以下详细讨论的,本文描述的技术提供了相对于向各种客户端设备提供和特制(tailor)web内容的常规技术的优点。例如,通过分析和解析web内容、检索特定的web元素定义,然后使用通过客户端设备上执行的浏览器进行的动态代码生成和注入来生成样式表和其它web资源,可以节省大量的后端处理资源和网络资源。此外,通过支持对web内容样式、布局、格式等进行健壮的特定于客户端的定制,在服务器侧可以要求较少的代码改变(甚至不需要改变),从而避免了附加的软件开发、测试和部署处理。类似地,web服务器可以避免为各种客户端设备生成和更新层叠样式表(Cascading Style Sheet,CSS)的多个副本和版本的要求,而是直接在客户端web浏览器处为客户端设备提供生成和注入动态CSS所需的web内容和元素定义。最终,本文描述的实施例支持比使用常规技术可以支持的多得多的类型的布局、样式和格式改变/定制。客户端设备可以比web服务器具有更多有关其自己的特定平台、特点、能力、形状因数的信息,因此客户端可以基于这些具体的特点为各个web元素和整个网页确定最优布局、样式和格式。
附图说明
图1图示了根据本发明一个或多个实施例的包括各种服务器侧系统的客户端-服务器网络环境,该服务器侧系统被配置为向客户端设备提供web内容。
图2是根据本发明一个或多个实施例的包括多个小页面web元素的定制的web门户的示例用户界面。
图3是图示根据本发明一个或多个实施例的在客户端设备处生成和渲染定制的web内容的示例处理的客户端-服务器流程图。
图4是图示根据本发明一个或多个实施例的基于客户端请求在客户端设备处生成和渲染具有更新后的样式、格式和/或布局的web内容的示例处理的另一个流程图。
图5图示了根据本发明一个或多个实施例的简化的客户端-服务器网络环境,该网络环境包括web服务器、客户端设备和与客户端设备相关联的第二显示器。
图6是根据本发明某些实施例的计算机服务器和计算环境的图。
图7是描绘根据本发明某些实施例的云计算系统和环境的部件的简化框图。
图8是被配置为执行根据本发明某些实施例的技术的计算机系统的示意图。
在附图中,相似的部件和/或特征可以具有相同的附图标记。另外,可以通过在附图标记之后加上破折号和在相似的部件之间进行区分的第二标记来区分相同类型的各种部件。如果在说明书中仅使用第一附图标记,那么该描述适用于具有相同的第一附图标记的任何相似部件,而与第二附图标记无关。
具体实施方式
在以下描述中,出于解释的目的,阐述了具体细节以便提供对各种实施方式和示例的透彻理解。但是,显而易见的是,可以在没有这些具体细节的情况下实践各种实施方式。例如,电路、系统、算法、结构、技术、网络、处理和其它部件可以被示为框图形式的部件,以便不以不必要的细节使实施方式模糊。附图和描述不旨在是限制性的。
一些示例(诸如相对于本公开中的附图所公开的那些示例)可以被描述为处理,该处理被描绘为流程图、流图、数据流图、结构图、序列图或框图。虽然序列图或流程图可以将操作描述为顺序处理,但是许多操作可以并行或同时执行。此外,可以重新安排操作的次序。处理在其操作完成时终止,但可以具有图中未包括的附加步骤。处理可以与方法、函数、过程、子例程、子程序等对应。当处理与函数对应时,其终止可以与该函数返回到调用函数或主函数对应。
可以在由一个或多个处理单元(例如,处理器核)执行的软件(例如,代码、指令、程序)、硬件或其组合中实现本文所描绘的处理,诸如参考本公开中的附图所描述的处理。软件可以存储在存储器中(例如,在存储器设备上、在非暂态计算机可读存储介质上)。在一些示例中,可以通过本文公开的任何系统来实现本文的序列图和流程图中描绘的处理。本公开中的特定系列的处理步骤不旨在是限制性的。根据替代示例,也可以执行其它步骤顺序。例如,本公开的替代示例可以按不同次序执行以上概述的步骤。而且,图中所示的各个步骤可以包括多个子步骤,这些子步骤可以以适合于各个步骤的各种顺序来执行。此外,取决于特定应用,可以添加或移除附加步骤。本领域普通技术人员将认识到许多变型、修改和替代。
在一些示例中,本公开的附图中的每个处理可以由一个或多个处理单元执行。处理单元可以包括一个或多个处理器,包括单核或多核处理器、处理器的一个或多个核或其组合。在一些示例中,处理单元可以包括一个或多个专用协处理器,诸如图形处理器、数字信号处理器(DSP)等。在一些示例中,可以使用定制的电路(诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA))来实现处理单元中的一些或全部。
如上所述,本文所述的各个方面涉及用于使用在客户端设备上执行的web浏览器来生成和注入更新后的web内容(例如,样式表、XML或HTML页面等)的技术(例如,方法、系统、设备、存储用于执行计算功能的计算机可执行指令的计算机可读介质等)。因此,此类技术可以支持网页的样式、布局和格式等的特定于客户端设备的定制,而不需要后端服务器和网络上的附加支持或工作负荷。在某些实施例中,客户端设备可以从web服务器请求、接收和分析web内容。这种web内容的范围可以从简单的网页到面向基于交互式web的门户和应用的复杂客户端。客户端设备可以分析web内容以识别网页内的各种web元素,包括元素标识符、值和/或其它特性。使用web元素标识符,客户端设备可以从web服务器和/或其它第三方服务器请求并获得元素定义。在接收到web元素定义之后,客户端设备可以动态地生成更新后的web内容文件,包括样式表、标记语言文件、JavaScript文件等,以便为各个web元素实现特定的样式或格式和/或为网页实现特定的布局。例如,可以使用JavaScript代码注入器将更新后的web内容文件注入从web服务器接收的原始web内容中,然后经由客户端web浏览器向客户端显示器渲染。因此,此类技术可以允许针对特定格式、布局和样式的自动化的特定于客户端的定制和/或用户请求的定制被应用于web元素(诸如表格、图像、控件和任何其它web元素),而不要求来自web服务器和其它后端系统的附加请求和处理。
此外,在一些实施例中,在客户端设备上执行的web浏览器可以确定形状因数、用户输入控件和/或各种其它客户端设备能力和特点,并且可以使用所确定的设备特点来生成更新后的web内容的呈现标记,样式表等。还可以基于操作客户端设备的当前用户的特点来执行这种定制,例如,通过基于可以由客户端web浏览器确定的当前用户的偏好或特点等更改元素尺寸、配色方案、用户输入控件等。此外,在一些实施例中,可以在请求并渲染初始web内容之后检测对客户端设备的形状因数和/或特点的改变。例如,智能电话或台式客户端可以与电视或其它外部显示器连接(例如,经由屏幕镜像或配对),从而允许将客户端智能电话或台式的显示投影到外部显示器。在此类情况下,客户端设备可以基于对新的外部显示器的检测(和/或对客户端设备检测到的任何改变)重新生成标记和/或样式表,从而允许动态地重新生成web内容并将其向外部显示器渲染,同样不要求来自web服务器和其它后端系统的附加请求和处理。
现在参考图1,示出了网络环境100,该网络环境100包括被配置为通过一个或多个通信网络130将基于web的内容传输到客户端设备110的各种服务器侧系统140-160。如以下示例中所描述的,网页和其它web内容可以由web服务器140和/或后端应用服务器150生成,并由web服务器140提供给各种客户端设备110。web内容可以包括标记语言代码文件(例如,HTML、XML等),每个标记语言代码文件可以与不同的web地址/URL对应并且可以定义网站或域的一个或多个网页。与标记语言代码文件相关联和/或由标记语言代码文件引用的附加web内容可以包括样式表(例如,层叠样式表(CSS))、图像文件、视频文件和程序化代码文件(例如,脚本文件、可执行文件)。如这个示例中所示,web内容文件161(其也可以被称为web资源)可以存储在一个或多个后端数据存储库160中,而其它web内容可以由后端应用服务器150存储和/或生成。
各种web元素可以在web内容文件161内表示,或者由后端服务器150生成,包括嵌入在标记语言文件内的web元素和/或表示存储在单独的(separate)web资源文件161中的数据对象的web元素。此类web元素可以与例如网页控件/部件(诸如框架、命令按钮、标头(heading)、文本块、标题(title)、菜单选项、表格、段落和/或句子)对应。附加web元素可以包括图像文件、视频文件、音频文件、图形文件等、以及更复杂的程序化元素(诸如小页面、小程序和其它嵌入式可执行文件)。如这个示例中所示,附加数据也可以存储在服务器侧数据存储库160中,诸如web元素定义数据162和客户端/用户数据163。
下文更详细描述的web元素定义可以指与任何web内容元素161相关联的特性或特点的集合。因此,web元素定义162可以定义应当在网页内渲染的web元素的尺寸或尺寸范围,和/或当在网页上渲染web元素时应当使用的样式。某些类型的web元素定义数据可以应用于所有可能的web元素,而其它web元素定义数据可以特定于web元素的类型。例如,网格/表格web元素,web元素定义162可以包括指示是否要显示表头、标题和(一个或多个)导航栏以及应当在表格对象上的何处渲染它们、网格/表格元素是否包括嵌入式弹出帮助、背景样式、行动作按钮的特性、列标头样式、显示页脚特性等的数据。此外,对于任何web对象/元素,web元素定义162可以包括当web元素显示在各种形状因数(例如,小、中、大或超大形状因数等)的屏幕上时是否可以获准抑制(和/或是否应当抑制)web元素。在一些实施例中,数据存储库162中的每个web元素定义可以与一个或多个相关联的元素标识符一起存储。数据存储库162内的元素标识符对于个体web元素(例如,特定框架、特定表格、特定文本框等)和/或对于特定类型的web元素(例如,所有框架、所有表格、所有文本框等)可以是唯一的。此外,元素标识符可以用于定义在渲染时应当将通用特性集合应用于其的web元素组。
客户端设备110可以经由网络130发送web请求并从应用服务器150和/或web服务器140接收web内容。网络130可以包括例如互联网、局域网和/或广域网等。虽然在这个示例中仅示出了单个网络130,但是网络130可以包括在本文所述的任何计算机服务器和设备之间的任何数量的不同通信网络。通信网络130的各种实施方式可以采用不同类型的网络之一或其组合,其中网络诸如基于IP的计算机网络、电信网络、蜂窝网络、近距离和远距离无线网络、线缆或卫星网络、和/或这些网络和/或其它网络的任何组合。客户端设备110可以包括移动设备(诸如智能电话、平板计算机、虚拟助手设备、基于车辆的设备和可穿戴计算设备(例如,智能手表、智能眼镜等))。此类移动设备可以运行各种移动操作系统,并且可以启用互联网、电子邮件、短消息服务(SMS)、蓝牙
Figure BDA0002380663860000081
移动射频识别(M-RFID)和/或其它通信协议。其它客户端设备110可以是通用个人计算机或专用计算设备,例如、包括个人计算机、膝上型计算机、工作站计算机、投影设备和交互式房间显示系统。此外,客户端设备110可以是能够通过(一个或多个)网络130进行通信的任何其它电子设备,诸如瘦客户端计算机、启用互联网的游戏系统、商务或家用电器和/或个人消息传递设备。
如这个示例中所示,客户端设备110可以包括多个软件应用120,包括一个或多个web浏览器122和浏览器插件124(也可以被称为浏览器扩展(extension))。如下面更详细讨论的,客户端web浏览器122和/或插件124内的代码可以被配置为分析从web服务器接收的web内容的各种元素、检索对应的web元素定义,然后动态地生成更新后的层叠样式表(CSS)、标记语言文档和/或客户端侧110处的其它web内容,而无需服务器系统140-160所要求的最少干预(或没有干预)。此外,浏览器扩展和/或插件124可以包括功能并支持用户界面,以允许管理员用户手动地请求并实现对客户端设备110处渲染的web内容的样式、格式和/或布局的更新。浏览器122和/或插件124内的代码还可以被配置为自动地检测客户端设备110的各种特点和能力,并且检测并响应客户端设备110与相关联的客户端设备或显示器110之间的连接,如下面所讨论的。此外,虽然参考浏览器扩展或插件124描述了若干示例,但是应当理解的是,本文讨论的技术不限于扩展或插件。例如,本文描述的任何浏览器扩展或插件功能可以附加地或可替代地在浏览器122内实现,或者被实现为在服务器侧嵌入到传输给客户端110的本机(native)网页中的一段代码。因此,在这些示例(例如,代码在浏览器122内、插件/扩展124内、嵌入在网页内,或位于客户端设备110上的其它位置)中的任何示例中,代码都可以在浏览器122已完成在客户端设备110处加载网页之后继续执行。
现在参考图2,示出了示例用户界面200。在这个示例中,用户界面200可以由定制的web门户应用生成,该应用可以针对web门户应用的当前用户来特制特定的web元素和内容。因此,与简单的HTML页面或其它静态web内容不同,可以基于当前用户、用户经由门户访问某些应用的特权和授权以及用户对要显示的部件、屏幕布局等的偏好来动态地生成用户界面200。因此,在这个示例中,可以为特定用户动态地生成并显示多个小页面web部件220,其中每个小页面部件220与用户当前可访问的特定门户应用或部件对应。菜单210可以包括为每个用户完全相同地显示的通用部件集,但是当不同的用户选择相同的菜单按钮时可以执行不同的功能。因此,即使当在用户界面中呈现的菜单210具有相似或完全相同的外观时,底层的标记语言代码也可以是不同的和/或特定的菜单按钮可以调用不同的脚本/软件功能。
在一些实施例中,由web服务器140提供并由客户端设备110渲染的基于web的内容可以与最终用户软件产品线(诸如来自Oracle的
Figure BDA0002380663860000101
等)的交互中心的流畅(fluid)主页或门户主页对应。在此类情况下,网页200可以是聚合相关信息并显示图块(tile)220的主页,该图块提供对流畅应用的访问。在这个示例中,图块220可以与经典门户中的小页面进行比较,并且它们是在流畅主页200上显示的导航构造。像其它小页面一样,图块200可以是可重用的用户界面窗口小部件(widget)。这些图块/窗口小部件220可以被设计为仅在门户200中显示,或者可以被设计为在任何网页上运行。
网页200(该网页200在一些情况下可以是流畅主页,并且在其中显示部件/图块220)可以共享共同的目的或应用于软件应用内的特定用户或角色(诸如员工角色、管理员角色、职员角色等)。用户可以与主页200上的图块220进行交互,并且可以选择特定的图块来访问底层应用并执行例程任务。图块220通常可以在其上具有描绘底层应用的目的的图形,这可以帮助用户识别图块并将图块与应用相关联。一些图块220还可以显示当前信息,从而为用户提供仪表板功能以审查高级信息以用于决策制定或监视。
在一些情况下,当用户首次访问网页200时,客户端web浏览器122可以访问web服务器140和/或应用服务器150,以重新加载并刷新所有内容(例如,图块/部件220))。然后,浏览器122可以手动地重新渲染主页200,使得所有实时图块220(和/或其它web元素)显示底层数据的最当前表示。另外,在一些示例中,各个图块220和/或其它web元素可以被配置为以特定速率刷新。还可以允许用户经由网页200使其主页体验个性化,例如,通过创建或删除个人主页、从其主页添加和移除图块220和/或其它web元素、以及改变其主页的标题/特性。
此外,某些网页(包括诸如由
Figure BDA0002380663860000111
流畅用户界面等显示的页面之类的页面200),可以被设计为取决于客户端设备110访问用户界面而以不同方式显示。例如,可以经由台式机、膝上型计算机、平板电脑或智能电话访问相同的页面200,并且对于每种类型的设备,页面200的布局可以不同。例如,在平板设备上,可以出现更多的字段,并且它们之间有更多的空间,而在智能电话设备上,可以出现更少的字段,并且显示可以调整到智能电话上可用的较小空间。
现在参考图3,示出了流图的示例,图示了客户端设备和web服务器通过其协作以在客户端设备处生成并渲染定制的web内容的处理。如以下示例中所讨论的,这些处理中的步骤可以由客户端设备110和web服务器140与一个或多个附加服务器侧系统(例如,150-160)协作来执行。在其它示例中,某些web内容/web资源可以从web服务器140请求/检索,而其它web内容/web资源直接从应用服务器150、数据存储库160或单独操作的第三方服务器检索。例如,可以从一个计算机系统140-160请求并检索实质性的web内容(例如,web元素/资源本身),而样式数据(例如、CSS)、格式和/或布局数据可以从单独的计算机系统140-160或第三方系统接收。多个客户端设备也可以类似地协作,例如,其中第一客户端设备110a可以请求/接收web内容,然后第二客户端设备110b可以渲染和显示内容。此外,多个不同的客户端设备110在一些情况下可以共享web元素,和/或可以共享web元素样式数据、布局数据和/或格式数据。例如,客户端设备110可以从web服务器140检索web资源的集合,但是可以从单独的客户端设备110或其它本地系统检索样式数据等。另外,应当理解的是,这些示例中描述的处理不必限于图1-图2和图5中所示的计算系统、网络和体系架构,而是也可以在其它兼容的计算系统和网络内实现。
在步骤301中,web客户端设备110可以生成对web内容的请求并将该请求传输到web服务器140。在一些情况下,步骤301中的请求可以是对与通用资源定位符(URL)对应的特定网页/web资源的请求,与常规网页请求中所使用的那些相似或完全相同。步骤301中的请求还可以是刷新请求,由用户发起或由客户端侧浏览器122或其它web应用自动发起。步骤301中的请求还可以是正在进行的web会话内的请求和/或与web门户或基于web的应用的特定于用户或会话的交互。因此,步骤301中的请求无需指定新的或唯一的URL,而是可以与SOAP或REST web服务、JSON请求等的调用对应,该调用可以将参数或其它客户端侧交互数据传达给web服务器140作为活动会话的一部分。
请求302从客户端设备110到web服务器140的传输可以经由TCP/IP、任何已知的基于web的协议(例如,HTTP/SOAP)和/或加密来执行。在一些实施例中,请求302可以包括识别当前会话、用户、客户端设备、客户端设备特点和/或平台的数据。例如,请求302内的某些报头数据或者嵌入在请求302的主体和/或请求URL内的参数可以包括会话标识符、用户标识符、客户端平台标识符、识别客户端形状因数的数据等。
在步骤303中,包括web服务器140的服务器侧系统可以接收和处理该请求,包括响应于请求302而检索和/或生成基于web的内容。如上所述,响应性的基于web的内容可以包括任何数量的静态web资源,诸如网页文档(例如,HTML和XML文件)以及相关脚本(例如,JavaScript文件)、样式表(例如,CSS文件)、嵌入式可执行应用(例如,小程序)、图像和其它基于web的资源,这些可以从一个或多个数据存储库160中检索。附加地或可替代地,请求302可以是web服务请求,并且步骤303中的响应性的基于web的内容可以包括由在应用服务器150内执行的一个或多个后端web服务动态生成的响应,该响应可以由从数据存储库160中检索出的附加web元素/资源来补充。因此,传输回客户端设备110的响应304可以包括主动(例如,程序化)和/或被动的web元素,并且可以经由单个消息、一系列消息、流式会话等来传输。例如,响应304可以包括一个或多个主网页文档,以及在渲染主网页时可以使用的和/或可以被嵌入主网页内的多个相关联的资源(例如,脚本、样式表、图像、可执行应用等)。
在步骤305中,客户端设备110可以分析从web服务器140接收的web内容、解析该内容以识别一个或多个个体web元素,然后确定用于各个web元素的元素标识符(ID)的集合。在一些实施例中,步骤305的一些或全部可以由浏览器122的本机功能和/或由浏览器插件或扩展124执行。在一些情况下,可以响应于明确的客户端用户请求而执行步骤305中的分析和解析,而在其它情况下,步骤305可以被自动执行并且相对于客户端设备110的用户可以是透明的。例如,可以基于客户端设备数据、用户数据和偏好等自动执行某些实施方式以定制接收到的网页。在此类实施方式中,步骤305可以由浏览器122和/或插件124自动地执行,并且web内容304可能根本不会由客户端设备110上的浏览器122渲染。但是,在下面描述的其它实施方式中,可以初始地在客户端设备110上渲染并显示从web服务器140接收的web内容304,此后用户可以请求改变内容的样式、格式和/或布局。在这些实施方式中,步骤305可以在接收到web内容304后初始地执行或者可以不执行,或者可替代地可以响应于用户对样式/格式/布局改变的请求而执行。
在步骤305中对接收到的web内容进行分析期间,可以对web内容进行解析以识别多个web元素,并针对每个识别出的web元素检索嵌入在web内容内的标识符。如上所述,web元素可以包括接收到的web内容304内的具有与web内容304内的其它数据对象不同的特性和/或标识符的任何数据对象。因此,一些web元素可以由网页的标记语言文档(例如HTML或XML)内的标签定义,而其它web元素可以与单独的相关联的标记语言文档或嵌入式图像、脚本、可执行文件内的对象相对应。因此,在步骤305中分析web内容可以包括解析标记语言文档和/或其它相关联的web内容文件(例如,脚本文件、图像文件、可执行文件等)以识别和分析存储在其中的特定数据对象。对于遇到的每个web元素,浏览器插件122(或其它软件代码执行步骤305)可以从与web元素对应的web内容中检索一个或多个web元素标识符(或web元素ID)。web元素可以是对象的名称、对象的ID号、对象的类型、对象的相关联的URL或地址等中的一个或组合。对于嵌入在标记语言内的对象,可以通过解析标记语言并分析其各种标签、属性和子元素,然后确定数据对象内的唯一元素识别数据来确定web元素ID。对于其它类型的web元素,可以通过解析单独的相关联的数据对象/文件(包括脚本文件、图像文件、可执行文件等)以确定与特定web元素相关联的唯一对象标识符/特性来确定web元素ID数据。在一些情况下,web元素ID可以对于该web元素完全唯一,而在其它情况下,web元素ID可以仅识别web元素的类型。例如,浏览器插件124可以识别web内容304内的表格对象,并且可以为表格对象指派与它的对象类型(诸如“表格”或“网格”)对应的web元素ID。但是,在另一个示例中,浏览器插件124可以基于其名称/标题特性、标头、网格尺寸和/或内容来识别特定的表,并且可以向表格对象指派更特定的web元素ID,诸如“表5692”或“产品库存表Q1”或对于特定表唯一的对应字母数字代码标识符。可以为web内容、网页菜单和头部、图像、视频、文本块、web控件、嵌入式窗口小部件和其它活动对象等中的框架和框架集确定类似的web元素ID。
在步骤306中,客户端设备110将在步骤305中确定的web元素标识符的集合传输回web服务器140。在一些情况下,从客户端设备110到web服务器140的传输可以包括在web内容内找到的web元素标识符的字母数字列表。此外,在一些实施例中,步骤306中的传输可以要求客户端设备110和服务器140之间的多个请求-响应。例如,如果存在重复的web元素ID,那么可能需要多次服务器行程(例如,以传输/比较web元素的附加特点)以识别与由浏览器122和/或插件124从web内容解析出来的web元素对应的正确web元素标识符。
此外,在一些实施例中,当解析web内容时,浏览器122和/或插件124可以确定并提取与不同的web元素相关联的值。例如,诸如复选框、单选按钮、文本框等的用户交互式web元素(例如,web控件)可以具有相关联的值,诸如选中/未选中、选择/未选择、在文本框内输入文本/数字等。类似地,对于诸如列表框、网格和表格之类的web元素,浏览器122和/或插件124可以捕获表格/列表/网格标识符和/或针对每个个体行的标识符,以及每个行/单元格内的数据。在步骤306中,可能不必将各种web元素的数据值传输到web服务器140,而是可以代替地将这些值本地存储在客户端设备上。
如下面所讨论的,本文讨论的技术的潜在优点可以包括减少或甚至消除对更新后的web内容的多个客户端-服务器请求和响应。因为可以从web元素中提取数据并将其存储在客户端设备110上(例如,在浏览器存储器内),因此客户端110在对web内容的格式、样式或布局执行客户端侧更新时无需第二次从服务器140检索web元素数据。类似地,如下面更详细地讨论的,客户端设备110在对web内容的格式、样式或布局执行客户端侧更新时不需要重新检索web内容、CSS文件和其它web内容文件(例如,脚本、可执行文件、图像等)的HTML。代替地,通过解析/传输web元素ID(步骤305-306),然后检索对应的web元素定义(步骤307-308),客户端web浏览器122和/或插件124可以使用客户端注入脚本在客户端侧重新生成web内容(例如,CSS),然后重新布局和重新渲染网页。
如上所述,在步骤307中,web服务器可以接收包括web元素ID的客户端请求306,可以从数据存储库162和/或其它数据源检索对应的web元素定义,然后在步骤308中向客户端设备110传输回web元素ID和对应的定义。针对特定web元素的定义数据可以包括为特定web元素定义设计元数据的一个或多个特征的数据值/范围。示例可以包括元素的多个像素(或范围)、布局信息、元素的特性、样式数据等。这种设计元数据可以存储在服务器侧系统中,以便允许内容提供者和/或web服务器140控制(如果期望)如何在客户端设备110上显示特定web元素的某些方面。如上所述,存储在服务器侧并在步骤308中传输到客户端设备110的web元素定义数据162可以包括样式数据,但是这种样式数据不需要包括样式表(例如,CSS文件),而是可以包括更紧凑的样式特性数据(例如,字体、颜色、样式集、间距要求等)。实际上,如上所述,不传输完整的CSS文件而是在客户端设备110处生成更新后的CSS文件对于服务器处理负载、网络负载等可以具有明显的优势。
因而,在步骤309中,客户端设备110可以将在步骤308中接收到的用于web元素的定义数据以及先前在步骤304中接收到的web内容一起使用,以生成将被显示在客户端设备110上的更新后的web内容。在步骤309中更新后的web内容的生成可以包括动态地生成新的层叠样式表(CSS文件),以改变经由浏览器122显示的各个web元素和/或整个网页的样式。附加地或可替代地,浏览器122或插件124可以重新生成标记语言文件、脚本中的一些或全部,和/或可以对在步骤304中最初接收到的任何web内容进行其它修改。
在一些实施例中,步骤309中的web内容的动态生成和/或修改可以基于设备规范、用户偏好和/或基于经由浏览器用户访谈接收的明确的用户请求。例如,在步骤309中生成的CSS和/或其它web内容可以基于客户端设备110的特定硬件、软件和/或平台。在一些情况下,浏览器插件124可以确定客户端设备特点,诸如客户端设备110的显示形状因数(例如,客户端显示器的尺寸、形状和质量/特点等)和/或客户端设备110的输入设备特征(例如,是否有触摸屏、是否有笔输入、是否有语音控制、是否有姿势识别等),然后使用客户端设备特点与在步骤308中接收到的web元素定义数据的组合来确定web元素的样式/布局/格式。例如,对于特定的web元素(例如,文本框、按钮、图像等),浏览器122/插件124的代码可以使用像素和用于在步骤308中接收到的元素的样式数据以及客户端设备110的显示形状因数数据来确定web元素的特定CSS样式。在其它示例中,可以在步骤309中基于web元素定义以及本地确定的客户端设备110特点(例如,显示特点、输入类型、移动设备平台等)来确定web内容的任何元素(和/或元素的组合)的样式、格式和/或布局。
最终,在步骤310中,客户端设备110(例如,使用浏览器122和/或插件124)可以基于在步骤309中的任何动态生成和/或经修改的CSS或其它web内容文件来更新在步骤304中接收到的web内容,然后可以将更新后的/经修改的web内容渲染到客户端设备110的(一个或多个)显示器。在一些实施例中,客户端设备110可以执行代码注入脚本以在客户端侧生成CSS(或其它web内容),然后将经修改的CSS(或其它文件)注入(或集成)到在步骤304中接收到的web内容中。如上所述,某些客户端设备110可以与一个显示设备相关联,而其它客户端设备110可以与多个显示器相关联。客户端显示器可以是集成的(例如,用于平板设备、智能电话、可穿戴设备等),或者可以是单独的分离式显示器(例如,用于台式计算机、屏幕镜像/配对技术等)。
在一些实施例中,可以初始地在客户端设备110处渲染并显示在步骤304中接收到的web内容,然后该web内容可以在步骤310中重新渲染并重新显示。例如,在客户端设备110上执行的web浏览器122和/或用户界面本身可以支持即时(on-the-fly)样式配置特征,该特征允许用户动态地改变当前正在显示的网页的样式、布局和/或格式。例如,用户界面中内的嵌入式web控件或浏览器特征可以是用户可选择的,并且可以允许用户改变当前网页的配色方案(例如,暗模式、亮模式或选择不同的颜色图案)、改变页面上web元素的尺寸、改变文本尺寸或字体、改变文本或元素间距等。可以经由浏览器菜单或经由网页本身上的控件来访问这些类型的即时样式配置特征,并且样式配置改变可以应用于各个web元素、整个网页和/或用户的整个浏览会话或将来的会话。在这些示例中,web浏览器122可以在步骤304-305中执行网页的第一渲染,该第一渲染可以经由显示屏对用户可见,随后在步骤309-310中重新渲染网页,这可以即时可见地改变网页的外观。此类改变可以由明确的用户请求发起,该用户请求可以在一些实施方式中在步骤305之前或在其它实施方式中在步骤309之前被接收。另外,如上所述,网页的重新渲染和外观改变不需要要求重新加载网页和/或对web服务器140或其它服务器侧系统的任何附加请求/响应。
在其它实施例中,可以在没有web内容的两个单独的渲染/显示的情况下执行这个示例中的步骤。例如,代替先进行web内容的第一渲染然后再进行改变当前显示的第二渲染(例如,由用户请求发起),可以自动地执行这个示例中的步骤,使得在步骤304中接收到的web内容仅在步骤310中被渲染和显示一次。例如,步骤306-308中的web元素定义的请求/接收可以由web浏览器122或插件124自动地执行。附加地,可以基于客户端设备110、平台或浏览器的特点和/或基于先前定义的用户偏好或设备偏好等来自动地执行CSS或其它web内容的动态生成以及在步骤304中接收到的新内容到web内容中的注入和集成。因此,这些中间步骤可以对用户是透明的,并且在步骤302中来自web请求的第一可见输出是在步骤310中生成的经修改的web内容,包括注入的代码,以修改样式、格式和/或布局。而且,如上面的示例中一样,这些示例也不需要重新加载网页和/或对web服务器140或其它服务器侧系统的任何其它请求/响应。
现在参考图4,示出了图示在客户端设备处生成和渲染经修改的web内容的处理的流程图。因此,在这个示例中的步骤401-405可以与以上在图3中讨论的协作处理的某些实施例期间在客户端设备110处执行的功能对应。特别地,这个示例更详细地描述了在允许用户改变web元素、网页和/或浏览会话的样式/格式/布局时经由客户端web浏览器122和/或浏览器扩展124执行的步骤,即时且不要求附加内容请求返回到web服务器140。
在步骤401中,浏览器122在客户端设备110的(一个或多个)适用显示器上接收并渲染web内容(例如,网页)。在步骤401中接收和渲染的web内容可以包括静态web资源,诸如网页文档(例如,HTML和XML文件)以及相关的脚本(例如,JavaScript文件)、样式表(例如,CSS文件)、嵌入式可执行应用(例如,小程序)、图像和其它基于web的资源。这些资源可以从web服务器140和/或其它服务器侧系统接收,并且可以存储在浏览器存储器122中,在那里可以对它们进行分析、解析,然后将其渲染到可显示的web内容中,然后将其输出到客户端显示器。
在步骤402中,可以在web浏览会话期间从用户接收对当前显示的网页的样式、格式或布局的一个或多个方面进行改变的请求。在一些实施例中,浏览器扩展(例如,插件124)可以提供可以由用户选择以选择改变的附加浏览器菜单或菜单选项。此类菜单可以集成在现有浏览器菜单内,或者可以经由侧面菜单、右键单击菜单选项等进行添加。在一些情况下,改变当前网页的样式/格式/布局的用户控件可以嵌入网页本身的被渲染的显示中。
如以上所讨论的,可以提供各种不同的选项以允许用户改变网页的样式、布局或格式。在一些情况下,浏览器菜单选项可以允许用户改变当前网页的配色方案(例如,暗模式、亮模式或选择不同的颜色图案)、改变网页的背景图案、改变页面上的web元素的尺寸、改变文本尺寸或字体、改变字符间距或元素之间的间距、改变文本样式、改变页面上图像的尺寸或显示特征、改变页面上web元素的布局等。应当理解的是,不需要由浏览器122或浏览器扩展124提供的固定的或列举的样式/格式/布局改变选项的集合。相反,这些实施例的附加潜在优点包括:可以使用动态生成的CSS(和/或其它web内容)在客户端侧上支持无限数量的可能样式/格式/布局改变和配置,以及因此在服务器侧系统内不要求附加支持或努力来对CSS进行预编程,或者以其它方式支持各种不同的可能样式/格式/布局选项。
因此,在一些实施例中,浏览器122或插件124可以通过在客户端侧上动态地生成CSS(和/或其它web内容)来允许用户对当前显示的网页进行一个或多个即时改变,而无需从服务器侧请求附加web内容。在一些示例中,由浏览器插件124提供的菜单、改变选项和用户界面可以允许用户不仅改变当前网页,而且可以应用于用户的web浏览会话的其余部分和/或应用于客户端设备110上用户将来的web浏览会话。此外,在一些实施例中,由浏览器插件124提供的菜单、改变选项和用户界面可以允许用户改变个体web元素而不是整个页面。例如,改变一帧的背景而不改变页面中的其它帧的背景、改变某些web控件的样式而不改变页面中的其它web控件的样式等。
在步骤403中,在客户端设备110上执行的浏览器122和/或扩展124可以动态地重新生成CSS以替换在步骤401中接收到的原始CSS。在一些情况下,浏览器扩展124可以仅重新生成CSS内容的某些块并将其注入接收到的CSS文件中,而在其它情况下,浏览器扩展124可以重新生成并替换整个CSS文件。此外,虽然这个示例仅涉及CSS文件,但如上面所讨论的,浏览器122和/或扩展124可以被配置为还重新生成和替换不同类型的web内容,包括标记语言文件、脚本文件、图像文件、可执行文件等。
可以基于用户改变请求和用户对在步骤402中接收到的web元素和/或网页的新样式/格式/布局配置的选择来执行CSS(或其它web内容)的重新生成。例如,如果用户请求不同的背景、配色方案、字体样式等,那么浏览器扩展124可以替换或者修改在步骤401中接收到的原始CSS以实现期望的改变。此外,在一些情况下,当前网页上显示的web元素的web元素定义可以用于CSS(或其它web内容)的动态重新生成。如以上所讨论的,可以将特定web元素和/或web元素组的定义存储在服务器侧系统(例如,数据存储库162)内。web定义可以与由服务器侧系统存储和管理的设计元数据、与内容提供者和/或web服务器140对应,以控制或限制web元素的某些方面如何在客户端设备110上显示。虽然在一些实施例中对web元素定义的检索和使用可以是可选的,但是当使用来自服务器侧的web元素定义时,客户端可以在步骤403期间或者在步骤402之前的任何时间检索它们。当被使用时,web元素定义可以向客户端提供关于各个web元素和/或web元素组的尺寸(例如,像素范围)、允许的样式参数等的指导和/或限制参数。
附加地或可替代地,可以基于客户端设备110的某些特点来执行步骤403中的CSS(或其它web内容)的重新生成。例如,如上面所讨论的,动态生成的CSS(和/或其它web内容)可以基于客户端设备110的特定硬件、软件和/或平台。例如,在步骤403期间或之前,浏览器扩展124可以确定客户端设备特点,诸如客户端设备110的显示形状因数(例如,客户端显示器的尺寸、形状和质量/特点等)和/或客户端设备110的输入设备特征(例如,是否有触摸屏、是否有笔输入、是否有语音控制、是否有姿势识别等)。然后,浏览器122和/或扩展124可以使用以下各项的组合:(a)客户端设备特点、(b)从服务器侧检索到的web元素定义数据、和/或(c)用以改变在步骤402中接收到的web内容的样式/格式/布局的用户请求,以确定更新后的样式改变,然后生成对应的CSS(和/或其它web内容)。
在步骤404中,客户端设备110可以将在步骤403中动态生成的更新后的CSS(和/或其它web内容)注入在步骤401中接收到的web内容中。然后,在步骤405中,客户端设备110可以将更新后的网页内容渲染到客户端显示器上,该客户端显示器将包括网页的更新后的样式/格式/布局。因此,步骤404-405可以与以上讨论的步骤310相似或完全相同。在一些实施例中,浏览器扩展124可以包括代码注入脚本,该代码注入脚本在客户端设备110处生成CSS(或其它web内容),然后将经修改的CSS(或其它文件)注入和/或集成到在步骤401中接收到的原始web内容中。在一些情况下,浏览器扩展124可以仅重新生成CSS内容的某些块并将其注入到接收到的CSS文件中,而在其它情况下,浏览器扩展124可以重新生成并替换整个CSS文件。
另外,如步骤405和402中的箭头所指示的,web浏览用户可以对网页的样式/格式/布局进行多个改变,每个改变都会造成步骤403-405中的另一次动态CSS重新生成、注入和渲染。但是,如上所述,这些后续的网页样式修改可以利用更少的请求或没有请求返回到web服务器140或任何其它服务器侧部件来执行。例如,在使用web元素定义的实施例中,它们可以最初从web服务器140检索,然后本地存储在客户端设备110处。然后,可以执行任何数量的后续网页样式修改,而无需返回到web服务器140或其它服务器侧系统的任何通信。
现在参考图5,示出了包括web服务器140、第一客户端设备110a和与第一客户端设备110a进行通信的第二显示设备110b的客户端-服务器网络环境的另一个示例。因此,这个示例可以表示以上讨论的网络环境100的一个或多个可能的实施方式。在这个示例中,客户端设备110a可以与诸如智能电话或平板计算机之类的无线移动设备对应。客户端设备110a可以从web服务器140和/或其它服务器侧系统请求和接收web内容,并且可以支持以上参考图1-图4讨论的用于渲染web内容、请求/接收web元素定义、确定设备特征、动态生成web内容以及注入和渲染更新后的web内容以便为特定用户和/或客户端设备110a定制web内容的样式、格式和/或布局的任何或所有功能。因此,如上面详细描述的,客户端设备110a可以包括web浏览器122和/或浏览器插件124,其被配置为基于来自设备用户的请求、客户端设备110a的设备配置偏好和/或形状因数和其它特点来定制在客户端显示器110a上显示的web内容的样式/格式/布局。另外,如上面所讨论的,客户端设备110a可以动态地生成并渲染新的CSS和其它web内容以改变所显示的web元素/页面的外观,而无需重新加载网页或对web服务器140或其它服务器侧系统执行任何附加请求/响应。
此外,如这个示例中所示,第一客户端设备110a可以连接到第二客户端显示器110b或与第二客户端显示器110b进行通信。客户显示器110b可以是例如电视、计算机监视器、投影设备或任何其它显示屏。客户端设备110a与分开的(separate)显示器110b之间的连接链路可以是有线或无线连接,并且设备110a-110b两者都可以支持客户端设备110a将其当前屏幕显示传输到分开的显示设备110b以用于在该显示器上输出的功能。用于将屏幕显示从客户端设备110a传输到显示器110b的屏幕镜像技术和其它类似通信技术的示例可以包括Miracast标准、Google Chromecast、AirPlay等。在一些情况下,客户端设备110a可以传输其整个屏幕显示,而在其它情况下,它可以仅将单个应用窗口传输到分开的显示设备110b。此外,在一些实施例中,客户端设备110a和分开的显示设备110b可以同时显示完全相同的内容,而在其它实施例中,内容可以显示在分开的设备110b上,而不是显示在第一客户端设备110a上。
使用类似于图5所示的客户端-服务器网络环境,附加的实施例可以支持第一客户端设备110a对web内容的动态定制,以便在分开的显示设备110b上传输和渲染web内容。例如,客户端设备110a上的web浏览器应用122和/或浏览器插件124的操作还可以被配置为检测或接收显示屏幕被镜像或传输到分开的显示设备110b的通知。在一些实施例中,浏览器插件124可以从电话上的其它软件应用或通信部件接收更新/通知,以确定客户端设备110a正在将其屏幕显示传输到另一个显示器110b,并且还检索分开的显示器110b的形状因数和/或其它设备特点。
然后,响应于检测到客户端设备110a正在屏幕镜像或以其它方式共享其显示,客户端设备110a可以基于目标显示设备110b的特定设备特征(形状因数、显示或图形质量、触摸屏或输入部件等)来(自动地或基于用户请求地)发起动态生成更新后的CSS或其它web内容。在此类情况下,动态生成更新后的CSS(或其它web内容)以及将更新后的CSS注入web内容可以与上述步骤403-404相似或完全相同。但是,在这些情况下,客户端设备110a可以不基于客户端设备110a的设备特点而是基于分开的显示器110b的设备特点来确定该客户端设备110a的样式、格式和布局配置。例如,如果显示器110b的形状因数比客户端设备110a的显示器的形状因数大得多和/或与之形状不同,那么可以由客户端设备110a专门针对目标显示器110b的形状因数来生成动态生成的CSS(或其它web内容)。类似地,对于不同的显示器,关于输出的期望的配色方案、页面上的web元素的期望尺寸、期望的文本尺寸或字体、期望的文本或元素间隔等,样式、格式和布局偏好可以有所不同,并且在这些情况中的每种情况下,客户端设备110a可以基于设备特点和要用于目标设备110b的期望输出样式/格式/布局来动态地生成更新后的CSS(和/或其它web内容)。
因此,在一些情况下,客户端设备110a可以基于目标显示器110b的特点来动态地生成并注入经修改的CSS(和/或web内容)的单个副本。但是,在其它情况下,在设备110a-110b上操作的显示共享特征、屏幕镜像特征等可以允许将web内容同时显示在客户端设备110a和分开的显示器110b上。在这些实施例中,客户端浏览器122和/或插件124可以被配置为生成和维护可渲染web内容的两个单独的副本:将被输出到客户端设备110a的显示器的第一副本以及将被输出到分开的目标显示器110b的第二副本。web内容的这两个单独的副本不需要针对其web元素和网页使用完全相同的样式、布局或格式。因此,例如,客户端设备110a可以针对两个(或更多个)分开的显示器中的每一个执行单独的动态CSS生成处理、代码注入处理、内容重新渲染和输出处理等。因此,基于由客户端设备执行的两个单独的动态CSS生成处理,即使当完全相同的网页(或任何其它内容)被客户端设备110a显示并镜像到分开的显示器110b时,所渲染的页面或其中的各个元素的样式、布局和格式也可以对于不同的显示设备110a-110b而不同。
现在参考图6,描绘了分布式系统600的简化图,其中可以实现上面讨论的各种示例。在所示的示例中,分布式系统600包括经由一个或多个通信网络610耦合到服务器612的一个或多个客户端计算设备602、604、606、608。客户端计算设备602、604、606、608可以被配置为运行一个或多个应用。
在各种实施例中,存储网络612可以适于运行启用与系统100相关联的一个或多个操作的一个或多个服务或软件应用。例如,用户可以使用客户端计算设备602、604、606、608(例如,与内容作者设备610对应)来访问经由复制系统600提供的一个或多个基于云的服务。
在某些示例中,服务器612还可以提供其它服务或软件应用,并且可以包括非虚拟环境和虚拟环境。在一些示例中,这些服务可以作为基于web的服务或云服务或在软件即服务(SaaS)模型下被供应给客户端计算设备602、604、606、608的用户。操作客户端计算设备602、604、606、608的用户进而可以使用一个或多个客户端应用与服务器612进行交互,以使用由这些部件提供的服务。
在图6所示的配置中,服务器612可以包括实现由服务器612执行的功能的一个或多个部件618、620和622。这些部件可以包括可以由一个或多个处理器执行的软件部件、硬件部件或其组合。应当认识到的是,各种不同的系统配置是可能的,其可以与示例分布式系统600不同。
客户端计算设备602、604、606、608可以包括各种类型的计算系统,诸如便携式手持设备,诸如智能电话和平板电脑;通用计算机,诸如个人计算机和膝上型计算机;工作站计算机;可穿戴设备,诸如头戴式显示器;游戏系统,诸如手持游戏设备、游戏控制台和启用互联网的游戏设备;瘦客户端;各种消息传递设备;传感器和其它感测设备等。这些计算设备可以运行各种类型和版本的软件应用和操作系统(例如,Microsoft
Figure BDA0002380663860000261
Apple
Figure BDA0002380663860000262
Figure BDA0002380663860000263
或类UNIX操作系统、Linux或类Linux操作系统(诸如GoogleChromeTM OS)),其中操作系统包括各种移动操作系统(例如,Microsoft Windows
Figure BDA0002380663860000264
Figure BDA0002380663860000265
Windows
Figure BDA0002380663860000266
AndroidTM
Figure BDA0002380663860000267
Palm
Figure BDA0002380663860000268
)。客户端设备可以能够执行各种不同的应用,诸如各种与互联网相关的应用、通信应用(例如,电子邮件应用、短消息服务(SMS)应用),并且可以使用各种通信协议。客户端设备可以提供使客户端设备的用户能够与客户端设备进行交互的接口。客户端设备还可以经由这个接口向用户输出信息。虽然图6仅描绘了四个客户端计算设备,但可以支持任何数量的客户端计算设备。
分布式系统600中的(一个或多个)网络610可以是本领域技术人员熟悉的任何类型的网络,其可以使用各种可用协议中的任何协议来支持数据通信,其中协议包括但不限于TCP/IP(传输控制协议/互联网协议)、SNA(系统网络体系架构)、IPX(互联网分组交换)、AppleTalk等。仅仅作为示例,(一个或多个)网络610可以是局域网(LAN)、基于以太网的网络、令牌环、广域网、互联网、虚拟网络、虚拟专用网(VPN)、内联网、外联网、公共电话交换网(PSTN)、红外网络、无线网络(例如,在任何电气和电子协会(IEEE)802.11协议套件、蓝牙
Figure BDA0002380663860000269
和/或任何其它无线协议下操作的网络)和/或这些网络和/或其它网络的任何组合。
服务器612可以由一个或多个通用计算机、专用服务器计算机(作为示例,包括PC(个人计算机)服务器、
Figure BDA0002380663860000271
服务器、中档服务器、大型计算机、机架安装服务器等)、服务器场、服务器集群或任何其它适当的布置和/或组合来组成。服务器612可以包括运行虚拟操作系统的一个或多个虚拟机,或者涉及虚拟化的其它计算体系架构,诸如可以被虚拟化以维护服务器的虚拟存储设备的逻辑存储设备的一个或多个灵活的池(pool)。在各种示例中,服务器612可以适于运行执行上述操作的一个或多个服务或软件应用。
服务器612可以运行操作系统,包括以上讨论的任何操作系统以及任何商用的服务器操作系统。服务器612还可以运行各种附加服务器应用和/或中间层应用中的任何应用,其中服务器包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、CGI(通用网关接口)服务器、
Figure BDA0002380663860000272
服务器、数据库服务器等。数据库服务器的示例包括但不限于可从Oracle、Microsoft、Sybase、IBM(国际商业机器)等商业获得的数据库服务器。
在一些实施方式中,服务器612可以包括一个或多个应用以分析和整合从客户端计算设备602、604、606和608的用户接收的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括但不限于从一个或多个第三方信息源和连续数据流接收的
Figure BDA0002380663860000273
馈送、
Figure BDA0002380663860000274
更新或实时更新,其可以包括与传感器数据应用、金融报价机(ticker)、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视等相关的实时事件。服务器612还可以包括经由客户端计算设备602、604、606和608的一个或多个显示设备显示数据馈送和/或实时事件的一个或多个应用。
分布式系统600还可以包括一个或多个数据储存库614、616。这些数据储存库可以提供用于存储各种类型的信息(诸如以上讨论的各种示例所描述的信息)的机制。数据储存库614、616可以驻留在各种位置。例如,由服务器612使用的数据储存库可以在服务器612本地,或者可以远离服务器612并经由基于网络的连接或专用的连接与服务器612进行通信。数据储存库614、616可以是不同的类型。在一些示例中,由服务器612使用的数据储存库可以是数据库,例如关系数据库,诸如由Oracle公司(Oracle
Figure BDA0002380663860000281
)和其它供应商提供的数据库。这些数据库中的一个或多个可以适于响应于SQL格式的命令来实现去往或来自数据库的数据的检索、更新和存储。
在一些示例中,应用还可以使用数据储存库614、616中的一个或多个来存储应用数据。由应用使用的数据储存库可以具有不同的类型,诸如例如键-值存储储存库、对象存储储存库或由文件系统支持的通用存储储存库。
在一些示例中,云环境可以提供一个或多个服务,诸如以上讨论的服务。现在参考图7,示出了系统环境700的一个或多个部件的简化框图,其中这些服务和其它服务可以被供应为云服务。在图7所示的示例中,云基础设施系统702可以提供可以由用户使用一个或多个客户端计算设备704、706和708请求的一个或多个云服务。云基础设施系统702可以包括一个或多个计算机和/或服务器,其可以包括以上针对图6的服务器612描述的那些计算机和/或服务器。图7的云基础设施系统702中的计算机可以被组织为通用计算机、专用服务器计算机、服务器场、服务器集群或任何其它适当的布置和/或组合。
(一个或多个)网络710可以促进客户端704、706、708和云基础设施系统702之间的数据交换和通信。(一个或多个)网络710可以包括一个或多个网络。网络可以具有相同或不同的类型。(一个或多个)网络710可以支持一种或多种通信协议,包括有线协议和/或无线协议,用于促进通信。
图7中描绘的示例只是云基础设施系统的一个示例,并不旨在进行限制。应当认识到的是,在其它示例中,云基础设施系统702可以具有比图7中所描绘的部件更多或更少的部件、可以组合两个或更多个部件,或者可以具有部件的不同配置或布置。例如,虽然图7描绘了三个客户端计算设备,但是在其它示例中可以支持任何数量的客户端计算设备。
术语“云服务”通常用于指由服务提供商的系统(例如,云基础设施系统702)根据需要并且经由诸如互联网之类的通信网络对用户可用的服务。通常,在公共云环境中,组成云服务提供商系统的服务器和系统与客户自己的本地服务器和系统不同。云服务提供商的系统由云服务提供商管理。客户因此可以利用由云服务提供商提供的云服务,而不必为服务购买单独的许可证、支持或硬件和软件资源。例如,云服务提供商的系统可以托管应用,并且用户可以经由互联网根据需要和自助服务地订购和使用应用,其中用户不必购买用于执行应用的基础设施资源。云服务旨在提供对应用、资源和服务的轻松、可扩展的访问。若干提供商供应云服务。例如,由加利福尼亚州Redwood Shores的Oracle公司(Oracle
Figure BDA0002380663860000292
)供应了若干云服务,诸如中间件服务、数据库服务、Java云服务等。
在各种示例中,云基础设施系统702可以使用不同模型来提供一个或多个云服务,其中模型诸如软件即服务(SaaS)模型、平台即服务(PaaS)模型、基础设施即服务(IaaS)模型以及包括混合服务模型的其它模型。云基础设施系统702可以包括应用套件、中间件、数据库以及使得能够供给各种云服务的其它资源。
SaaS模型使得应用或软件能够作为服务通过如互联网的通信网络被递送给客户,而客户不必为底层应用购买硬件或软件。例如,SaaS模型可以用于为客户提供对由云基础设施系统702托管的按需应用的访问。由Oracle公司(Oracle
Figure BDA0002380663860000291
)提供的SaaS服务的示例包括但不限于用于人力资源/资本管理、客户关系管理(CRM)、企业资源规划(ERP)、供应链管理(SCM)、企业绩效管理(EPM)、分析服务、社交应用及其它服务的各种服务。
IaaS模型通常用于向客户提供基础设施资源(例如,服务器、存储装置、硬件和联网资源)作为云服务,以提供弹性计算和存储能力。Oracle公司(Oracle
Figure BDA0002380663860000301
)提供了各种IaaS服务。
PaaS模型通常用于提供平台和环境资源作为服务,其使得客户能够开发、运行和管理应用和服务,而客户不必采购、构建或维护此类资源。由Oracle公司(Oracle
Figure BDA0002380663860000302
)提供的PaaS服务的示例包括但不限于Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)、数据管理云服务、各种应用开发解决方案服务以及其它服务。
在一些示例中,云基础设施系统702中的资源可以由多个用户共享并且可以根据需求动态地重新分配。此外,可以将资源分配给不同时区中的用户。例如,云基础设施系统702可以使第一时区中的第一用户集合能够在指定的小时数内利用云基础设施系统的资源,然后将相同资源重新分配给位于不同时区中的另一用户集合,从而最大化资源的利用率。
云基础设施系统702可以经由不同的部署模型来提供云服务。在公共云模型中,云基础设施系统702可以由第三方云服务提供商拥有,并且云服务被提供给任何普通公众客户,其中客户可以是个人或企业。在某些其它实施例中,在私有云模型下,可以在组织内(例如,在企业组织内)操作云基础设施系统702,并向组织内的客户提供服务。例如,客户可以是企业的各个部门,诸如人力资源部门、工资部门等,或者甚至是企业内的个人。在某些其它实施例中,在社区云模型下,云基础设施系统702和所提供的服务可以由相关社区中的若干组织共享。也可以使用各种其它模型,诸如上面提到的模型的混合。
客户端计算设备704、706、708可以是与以上针对图6的客户端计算设备602、604、606、608所描述的设备相似的设备。图7的客户端计算设备704、706、708可以被配置为操作客户端应用,诸如web浏览器、专有客户端应用(例如,Oracle Forms)或可以被客户端计算设备的用户用来与云基础设施系统702进行交互以使用由云基础设施系统702提供的服务的某种其它应用。
在各种示例中,云基础设施系统702还可以提供“大数据”以及相关的计算和分析服务。术语“大数据”一般用于指可以由分析人员和研究人员存储和操纵的极大数据集,以可视化大量数据、检测趋势和/或以其它方式与数据进行交互。云基础设施系统702可以执行的分析可以涉及使用、分析和操纵大型数据集以检测和可视化数据内的各种趋势、行为、关系等。这种分析可以由一个或多个处理器执行,可能并行地处理数据、使用该数据执行模拟等。用于这种分析的数据可以包括结构化数据(例如,存储在数据库中或根据结构化模型结构化的数据)和/或非结构化数据(例如,数据blob(二进制大对象))。
如在图7的实施例中所描绘的,云基础设施系统702可以包括基础设施资源730,该基础设施资源730用于促进由云基础设施系统702供应的各种云服务的供给。基础设施资源730可以包括例如处理资源、存储或存储器资源、联网资源等。
在一些示例中,为了促进这些资源的高效供给以用于支持由云基础设施系统702为不同客户提供的各种云服务,可以将资源捆绑成资源集合或资源模块集合(也称为“聚合(pod)”)。每个资源模块或聚合可以包括一种或多种类型的资源的预先集成和优化的组合。在一些示例中,可以为不同类型的云服务预先供给不同的聚合。例如,可以为数据库服务供给第一聚合集,可以为Java服务供给第二聚合集,其中第二聚合集可以包括与第一聚合集中的聚合不同的资源组合。对于一些服务,可以在服务之间共享被分配用于供给服务的资源。
云基础设施系统702本身可以内部使用服务732,服务732由云基础设施系统702的不同部件共享并且促进云基础设施系统702的服务供给。这些内部共享的服务可以包括但不限于安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、用于启用云支持的服务、电子邮件服务、通知服务、文件传输服务等。
在各种示例中,云基础设施系统702可以包括多个子系统。这些子系统可以用软件、硬件或它们的组合来实现。如图7中所描绘的,子系统可以包括用户界面子系统w,该用户界面子系统使云基础设施系统702的用户或客户能够与云基础设施系统702进行交互。用户界面子系统712可以包括各种不同的界面,诸如网络界面714、在线商店界面716(其中由云基础设施系统702提供的云服务做广告并且可由消费者购买)、以及其它界面718。例如,客户可以使用客户端设备使用接口714、716、718中的一个或多个来请求(服务请求734)由云基础设施系统702提供的一个或多个服务。例如,客户可以访问在线商店、浏览由云基础设施系统702供应的云服务,并为客户希望订阅的由云基础设施系统702供应的一个或多个服务进行订阅。服务请求可以包括识别客户的信息以及客户期望订阅的一个或多个服务。例如,客户可以为诸如上面讨论的服务下订阅订单。作为订单的一部分,客户可以提供识别客户所需的资源量和/或在什么时间范围内的信息等。
在一些示例中,诸如在图7中描绘的示例,云基础设施系统702可以包括被配置为处理新订单的订单管理子系统(OMS)720。作为这个处理的一部分,OMS 720可以被配置为:如果尚未完成,那么为客户生成账户;接收来自客户的账单和/或记账信息,该账单和/或记账信息将用于向客户计费以向客户提供所请求的服务;核实客户信息;在核实后,为客户预订订单;以及编排(orchestrate)各种工作流程以准备用于供给的订单,以及其它操作。
一旦被正确地验证,OMS 720就可以调用订单供给子系统(OPS)724,该订单供给子系统被配置为为订单供给资源,包括处理资源、存储器资源和联网资源。供给可以包括为订单分配资源,以及配置资源以促进客户订单所请求的服务。为订单供给资源的方式和供给资源的类型可以取决于客户已订购的云服务的类型。例如,根据一个工作流程,OPS 724可以被配置为确定所请求的特定云服务,并且识别可能已经针对该特定云服务而预先配置的多个聚合(pod)。为订单分配的聚合的数量可以取决于所请求的服务的大小/数量/级别/范围。例如,可以基于服务所支持的用户的数量、正在请求的服务的持续时间等来确定要分配的聚合的数量。然后,可以针对特定的请求客户定制所分配的聚合,以提供所请求的服务。
云基础设施系统702可以向发出请求的客户发送响应或通知744,以指示所请求的服务何时准备就绪。在一些情况下,可以将信息(例如,链接)发送给客户,使得客户能够开始使用和利用所请求的服务的权益。
云基础设施系统702可以向多个客户提供服务。对于每个客户,云基础设施系统702负责管理与从客户接收到的一个或多个订阅订单相关的信息、维护与订单相关的客户数据、以及向客户提供所请求的服务。云基础设施系统702还可以收集关于客户对已订阅的服务的使用的使用统计信息。例如,可以针对使用的存储量、传输的数据量、用户的数量以及系统开机时间和系统停机时间量等来收集统计信息。这个使用信息可以用于向客户计费。计费可以例如以月为周期进行。
云基础设施系统702可以并行地向多个客户提供服务。云基础设施系统702可以存储这些客户的信息,包括可能的专有信息。在一些示例中,云基础设施系统702包括身份管理子系统(IMS)728,该身份管理子系统被配置为管理特定于客户的信息并提供所管理的信息的分离,使得与一个客户相关的信息不能被另一个客户访问。IMS 728可以被配置为提供各种与安全性相关的服务,诸如身份服务(诸如信息访问管理、认证和授权服务)、用于管理客户身份和角色的服务以及相关能力等。
现在参考图8,示出了可以被用于实现上面讨论的各种示例的计算机系统800的示例。在一些示例中,计算机系统800可以用于实现上述各种服务器和计算机系统中的任何服务器和计算机系统。如图8中所示,计算机系统800包括各种子系统,包括处理子系统804,该处理子系统804经由总线子系统802与多个其它子系统进行通信。这些其它子系统可以包括处理加速单元806、I/O子系统808、存储子系统818和通信子系统824。存储子系统818可以包括非暂态计算机可读存储介质822和系统存储器810。
总线子系统802提供了用于使计算机系统800的各种部件和子系统按预期彼此通信的机制。虽然总线子系统802被示意性地示为单个总线,但是总线子系统的替代示例可以利用多个总线。总线子系统802可以是若干类型的总线结构中的任何类型的总线结构,总线结构包括使用各种总线体系架构中的任何总线体系架构的存储器总线或存储器控制器、外围总线、网络总线和本地总线。例如,此类体系架构可以包括工业标准体系架构(ISA)总线、微通道体系架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围部件互连(PCI)总线(PCI总线可以被实现为根据IEEE P1386.1标准制造的夹层(Mezzanine)总线)等。它还可以利用基于联网的体系架构,诸如套接字(socket)、管道(pipe)、TCP/IP、有线或无线、本地、虚拟、蜂窝和其它。
处理子系统804控制计算机系统800的操作,并且可以包括一个或多个处理器、专用集成电路(ASIC)或现场可编程门阵列(FPGA)。处理器可以包括单核或多核处理器。可以将计算机系统800的处理资源组织成一个或多个处理单元832、834等。处理单元可以包括一个或多个处理器(包括单核或多核处理器)、来自相同或不同处理器的一个或多个核(core)、核和处理器的组合、或核和处理器的其它组合。在一些示例中,处理子系统804可以包括一个或多个专用协处理器,诸如图形处理器、数字信号处理器(DSP)等。在一些示例中,处理子系统804的处理单元中的一些或全部可以使用定制电路来实现,诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)。
在一些示例中,处理子系统804中的处理单元可以执行存储在系统存储器810中或存储在计算机可读存储介质822上的指令。在各种示例中,处理单元可以执行各种程序或代码指令,并且可以维护多个同时执行的程序或进程。在任何给定的时间,要执行的程序代码中的一些或全部可以驻留在系统存储器810中和/或计算机可读存储介质822上(包括可能在一个或多个存储设备上)。通过适当的编程,处理子系统804可以提供上述各种功能。在计算机系统800正在执行一个或多个虚拟机的情况下,可以将一个或多个处理单元分配给每个虚拟机。
在一些示例中,可以提供处理加速单元806,以用于执行定制的处理或用于卸载由处理子系统804执行的一些处理,从而加速由计算机系统800执行的整体处理。
I/O子系统808可以包括用于向计算机系统800输入信息和/或用于从计算机系统800或经由计算机系统800输出信息的设备和机制。一般而言,术语“输入设备”的使用旨在包括用于向计算机系统800输入信息的所有可能类型的设备和机制。用户界面输入设备可以包括,例如,键盘、诸如鼠标或轨迹球之类的指向设备、并入到显示器中的触摸板或触摸屏、滚轮、点击轮、拨盘、按钮、开关、小键盘、带有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户界面输入设备还可以包括使用户能够控制输入设备并与之交互的诸如Microsoft
Figure BDA0002380663860000351
运动传感器的运动感测和/或姿势识别设备、Microsoft
Figure BDA0002380663860000352
360游戏控制器、提供用于接收使用姿势和口语命令的输入的界面的设备。用户界面输入设备还可以包括眼睛姿势识别设备,诸如从用户检测眼睛活动(例如,当拍摄图片和/或进行菜单选择时的“眨眼”)并将眼睛姿势转换为进入输入设备(例如,Google
Figure BDA0002380663860000353
)的输入的Google
Figure BDA0002380663860000354
眨眼检测器。此外,用户界面输入设备可以包括使用户能够通过语音命令与语音识别系统(例如,
Figure BDA0002380663860000355
导航器)进行交互的语音识别感测设备。
用户界面输入设备的其它示例包括但不限于三维(3D)鼠标、操纵杆或指示杆、游戏板和图形平板、以及音频/视频设备,诸如扬声器、数字相机、数字摄录机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3D扫描仪、3D打印机、激光测距仪、以及眼睛注视跟踪设备。此外,用户界面输入设备可以包括例如医疗成像输入设备,诸如计算机断层摄影、磁共振成像、位置发射断层摄影、医疗超声检查设备。用户界面输入设备也可以包括例如音频输入设备,诸如MIDI键盘、数字乐器等。
一般而言,术语“输出设备”的使用旨在包括用于从计算机系统800向用户或其它计算机输出信息的所有可能类型的设备和机制。用户界面输出设备可以包括显示子系统、指示器灯或诸如音频输出设备的非可视显示器等。显示子系统可以是阴极射线管(CRT)、诸如利用液晶显示器(LCD)或等离子体显示器的平板设备、投影设备、触摸屏等。例如,用户界面输出设备可以包括但不限于可视地传达文本、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备和调制解调器。
存储子系统818提供用于存储由计算机系统800使用的信息的储存库或数据存储库。存储子系统818提供有形的非暂态计算机可读存储介质,用于存储提供一些示例的功能的基本编程和数据构造。当被处理子系统804执行时提供上述功能的软件(例如,程序、代码模块、指令)可以存储在存储子系统818中。软件可以由处理子系统804的一个或多个处理单元执行。存储子系统818还可以提供用于存储根据本公开使用的数据的储存库。
存储子系统818可以包括一个或多个非暂态存储器设备,包括易失性和非易失性存储器设备。如图8中所示,存储子系统818包括系统存储器810和计算机可读存储介质822。系统存储器810可以包括多个存储器,包括用于在程序执行期间存储指令和数据的易失性主随机存取存储器(RAM)以及其中存储有固定指令的非易失性只读存储器(ROM)或闪存。在一些实施方式中,基本输入/输出系统(BIOS)可以典型地存储在ROM中,该基本输入/输出系统(BIOS)包含有助于诸如在启动期间在计算机系统800内的元件之间传递信息的基本例程。RAM通常包含当前由处理子系统804操作和执行的数据和/或程序模块。在一些实施方式中,系统存储器810可以包括多种不同类型的存储器,诸如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。
作为示例而非限制,如图8中所示,系统存储器810可以加载正在被执行的可以包括客户端应用、Web浏览器、中间层应用、关系型数据库管理系统(RDBMS)等的应用程序812、程序数据811和操作系统816。作为示例,操作系统816可以包括各种版本的Microsoft
Figure BDA0002380663860000371
Apple
Figure BDA0002380663860000372
和/或Linux操作系统、各种商业可用的
Figure BDA0002380663860000373
或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、Google
Figure BDA0002380663860000374
OS等)和/或移动操作系统,诸如iOS、
Figure BDA0002380663860000375
Phone、
Figure BDA0002380663860000376
OS、
Figure BDA0002380663860000377
10OS以及
Figure BDA0002380663860000378
OS操作系统。
计算机可读存储介质822可以存储提供一些示例的功能的程序和数据构造。计算机可读介质822可以为计算机系统800提供计算机可读指令、数据结构、程序模块和其它数据的存储。当由处理子系统804执行时提供上述功能的软件(程序、代码模块、指令)可以存储在存储子系统818中。作为示例,计算机可读存储介质822可以包括非易失性存储器,诸如硬盘驱动器、磁盘驱动器、诸如CD ROM、DVD、蓝光
Figure BDA0002380663860000379
盘或其它光学介质的光盘驱动器。计算机可读存储介质822可以包括但不限于,
Figure BDA00023806638600003710
驱动器、闪存存储器卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字视频带等。计算机可读存储介质822也可以包括基于非易失性存储器的固态驱动器(SSD)(诸如基于闪存存储器的SSD、企业闪存驱动器、固态ROM等)、基于易失性存储器的SSD(诸如基于固态RAM、动态RAM、静态RAM、DRAM的SSD、磁阻RAM(MRAM)SSD)、以及使用基于DRAM和基于闪存存储器的SSD的组合的混合SSD。计算机可读存储介质822可以为计算机系统800提供计算机可读指令、数据结构、程序模块和其它数据的存储。
在一些示例中,存储子系统818还可以包括计算机可读存储介质读取器820,该计算机可读存储介质读取器820还可以连接到计算机可读存储介质822。读取器820可以接收并被配置为从诸如盘、闪存驱动器等的存储器设备读取数据。
在一些示例中,计算机系统800可以支持虚拟化技术,包括但不限于处理和存储器资源的虚拟化。例如,计算机系统800可以提供对于执行一个或多个虚拟机的支持。计算机系统800可以执行程序,诸如促进虚拟机的管理和配置的管理程序。每个虚拟机一般独立于其它虚拟机运行。可以为虚拟机分配存储器、计算(例如,处理器、核)、I/O和联网资源。每个虚拟机通常运行其自己的操作系统,该操作系统可以与由计算机系统800执行的其它虚拟机所执行的操作系统相同或不同。因而,多个操作系统可以由计算机系统800潜在地同时运行。
通信子系统824提供到其它计算机系统和网络的接口。通信子系统824用作用于从计算机系统800接收数据以及从计算机系统800向其它系统传输数据的接口。例如,通信子系统824可以使得计算机系统800能够经由互联网建立到一个或多个客户端计算设备的通信信道,以用于从客户端计算设备接收信息以及向客户端计算设备发送信息。
通信子系统824可以支持有线和/或无线通信协议两者。例如,在一些示例中,通信子系统824可以包括用于(例如,使用蜂窝电话技术、高级数据网络技术(诸如3G、4G或EDGE(全球演进的增强数据速率))、WiFi(IEEE 802.11族标准)、或其它移动通信技术、或其任何组合)接入无线语音和/或数据网络的射频(RF)收发器部件、全球定位系统(GPS)接收器部件和/或其它部件。在一些示例中,通信子系统824可以提供有线网络连接(例如,以太网)作为无线接口的附加或替代。
通信子系统824可以以各种形式接收和传输数据。例如,在一些示例中,通信子系统824可以以结构化和/或非结构化的数据馈送826、事件流828、事件更新830等形式接收输入通信。例如,通信子系统824可以被配置为实时地从社交媒体网络和/或其他通信服务的用户接收(或发送)数据馈送826,诸如
Figure BDA0002380663860000391
馈送、
Figure BDA0002380663860000392
更新、web馈送(诸如丰富站点摘要(RSS)馈送)和/或来自一个或多个第三方信息源的实时更新。
在一些示例中,通信子系统824可以被配置为以连续数据流的形式接收本质上可能是连续的或无界的没有明确结束的数据,其中连续数据流可以包括实时事件的事件流828和/或事件更新830。生成连续数据的应用的示例可以包括例如传感器数据应用、金融报价机、网络性能测量工具(例如网络监视和流量管理应用)、点击流分析工具、汽车流量监视等。
通信子系统824还可以被配置为将结构化和/或非结构化数据馈送826、事件流828、事件更新830等输出到可以与耦合到计算机系统800的一个或多个流传输数据源计算机进行通信的一个或多个数据库。
计算机系统800可以是各种类型中的一种,包括手持便携式设备(例如,
Figure BDA0002380663860000393
蜂窝电话、
Figure BDA0002380663860000394
计算平板、PDA)、可穿戴设备(例如,Google
Figure BDA0002380663860000395
头戴式显示器)、个人计算机、工作站、大型机、信息站(kiosk)、服务器机架或任何其它数据处理系统。
由于计算机和网络不断变化的性质,对图8中描绘的计算机系统800的描述旨在仅仅作为具体示例。具有比图8中所描绘的系统更多或更少部件的许多其它配置是可能的。基于本文所提供的公开内容和教导,本领域普通技术人员将理解实现各种示例的其它方式和/或方法。
虽然已经描述了具体的实施方式,但是各种修改、变更、替代构造以及等同物都是可能的。本公开中描述的实施方式不限于在某些特定数据处理环境内的操作,而是可以在多个数据处理环境内自由操作。此外,虽然已经使用一系列特定的事务和步骤描述了实施方式,但是对于本领域技术人员来说显而易见的是,这并不旨在进行限制。虽然一些流程图将操作描述为顺序处理,但是许多操作可以并行或同时执行。此外,操作的次序可以被重新布置。处理可能具有附图中未包括的附加步骤。上述实施方式的各种特征和方面可以被单独使用或联合使用。
另外,虽然已经使用硬件和软件的特定组合描述了本公开中描述的实施方式,但是应当认识到的是,硬件和软件的其它组合也是可能的。本文描述的一些实施方式可以仅用硬件或仅用软件或使用其组合来实现。本文描述的各种处理可以以任何组合在相同的处理器或不同的处理器上实现。
在将设备、系统、部件或模块描述为被配置为执行某些操作或功能的情况下,这样的配置可以通过以下方式来实现,例如,通过设计电子电路来执行操作、通过对可编程电子电路(诸如微处理器)进行编程来执行操作(诸如通过执行计算机指令或代码,或处理器或核被编程为执行存储在非暂态存储介质上的代码或指令)、或其任意组合来执行操作。进程可以使用各种技术进行通信,其中技术包括但不限于用于进程间通信的常规技术,并且不同配对的进程可以使用不同的技术,或者同一配对的进程可以在不同时间使用不同的技术。
在本公开中给出了具体细节以提供对实施例的透彻理解。但是,可以在没有这些具体细节的情况下实践实施例。例如,在没有不必要的细节的情况下已经示出了众所周知的电路、处理、算法、结构和技术,以避免使实施例模糊。本描述仅提供示例实施例,并且不旨在限制其它实施例的范围、适用性或配置。相反,实施例的先前描述将为本领域技术人员提供用于实现各种实施例的使能描述。可以对元件的功能和布置进行各种改变。
因而,说明书和附图应被认为是说明性的而不是限制性的。但是,将显而易见的是,在不脱离本公开的更广泛的精神和范围的情况下,可以对其进行添加、减少、删除以及其它修改和改变。因此,虽然已经描述了具体的实施方式,但是这些并不旨在是限制性的;各种修改和等同形式都在本公开的范围内。

Claims (20)

1.一种在客户端设备上渲染web内容的方法,包括:
由执行web浏览器的客户端设备向web服务器传输第一请求,该第一请求识别客户端设备所请求的一个或多个基于web的资源;
响应于第一请求,由客户端设备从web服务器接收与客户端设备所请求的所述一个或多个基于web的资源对应的web内容;
由客户端设备分析所接收的web内容,以识别该web内容内的一个或多个web元素;
由客户端设备基于对web内容的分析来确定所述一个或多个web元素中的每一个web元素的元素标识符;
由客户端设备向web服务器传输第二请求,该第二请求包括为所述一个或多个web元素中的每一个web元素确定的元素标识符;
响应于第二请求,由客户端设备接收针对所述一个或多个web元素中的每一个web元素的web元素定义;
由客户端设备生成一个或多个标记语言文档,其中标记语言文档的生成是基于来自web服务器的一个或多个web元素定义并且在接收到来自web服务器的所述一个或多个web元素定义之后执行的;以及
由客户端设备经由web浏览器将所述一个或多个标记语言文档渲染到客户端设备的显示器。
2.如权利要求1所述的在客户端设备上渲染web内容的方法,其中由客户端设备生成所述一个或多个标记语言文档包括:
生成一个或多个更新后的层叠样式表(CSS),其中更新后的层叠样式表基于(i)先前响应于第一请求而从web服务器接收的一个或多个层叠样式表,以及(ii)响应于第二请求而从web服务器接收的所述一个或多个web元素定义。
3.如权利要求1所述的在客户端设备上渲染web内容的方法,其中所接收的web内容内的第一web元素是包括第一数量的行和第二数量的列的表,并且其中所接收的针对第一web元素的web元素定义识别以下中的至少一个:不同于第一数量的更新后的数量的行,或者不同于第二数量的更新后的数量的列。
4.如权利要求1所述的在客户端设备上渲染web内容的方法,其中响应于第二请求而接收针对所述一个或多个web元素中的每一个web元素的web元素定义包括:
针对第一web元素接收定义针对第一web元素的像素要求或样式要求中的至少一个的第一web元素定义。
5.如权利要求1所述的在客户端设备上渲染web内容的方法,还包括:
由在客户端设备上执行的web浏览器确定客户端设备的显示器的形状因数,
其中由客户端设备生成的标记语言文档基于所确定的客户端设备的显示器的形状因数。
6.如权利要求5所述的在客户端设备上渲染web内容的方法,还包括在将标记语言文档渲染到客户端设备的显示器之后:
由客户端设备检测在客户端设备与第二显示器之间已经建立连接;
由在客户端设备上执行的web浏览器确定连接到客户端设备的第二显示器的第二形状因数;
由客户端设备重新生成所述一个或多个标记语言文档,其中标记语言文档的重新生成是基于连接到客户端设备的第二显示器的第二形状因数执行的;以及
由客户端设备经由web浏览器将重新生成的所述一个或多个标记语言文档渲染到连接到客户端设备的第二显示器。
7.如权利要求5所述的在客户端设备上渲染web内容的方法,还包括:
由在客户端设备上执行的web浏览器确定客户端设备的一个或多个功能设备能力;
其中标记语言文档是基于所确定的客户端设备的功能设备能力生成的。
8.如权利要求1所述的在客户端设备上渲染web内容的方法,其中响应于第一请求而分析从web服务器接收的web内容包括:
为web内容内的多个web元素中的每一个特定web元素确定:(i)元素标识符、(ii)与该特定web元素相关联的像素值、和(iii)该特定web元素的一个或多个特性、以及(iv)与该特定web元素相关联的一个或多个样式值。
9.一种客户端计算设备,包括:
一个或多个网络接口,被配置为访问广域网(WAN);
一个或多个集成的或相关联的显示设备,被配置为输出图形内容;
处理单元,包括一个或多个处理器;
存储器,存储计算机可读指令集,该计算机可读指令集在由所述一个或多个处理器执行时使得客户端计算设备执行以下操作:
经由在客户端计算设备上执行的web浏览器向web服务器传输第一请求,该第一请求识别客户端计算设备所请求的一个或多个基于web的资源;
响应于第一请求,从web服务器接收与客户端计算设备所请求的所述一个或多个基于web的资源对应的web内容;
分析所接收的web内容,以识别该web内容内的一个或多个web元素;
基于对web内容的分析,确定所述一个或多个web元素中的每一个web元素的元素标识符;
向web服务器传输第二请求,该第二请求包括为所述一个或多个web元素中的每一个web元素确定的元素标识符;
响应于第二请求,接收针对所述一个或多个web元素中的每一个web元素的web元素定义;
生成一个或多个标记语言文档,其中标记语言文档的生成是基于来自web服务器的一个或多个web元素定义并且在接收到来自web服务器的所述一个或多个web元素定义之后执行的;以及
经由在客户端计算设备上执行的web浏览器将所述一个或多个标记语言文档渲染到与客户端计算设备集成或相关联的一个或多个显示设备。
10.如权利要求9所述的客户端计算设备,其中生成所述一个或多个标记语言文档包括:
生成一个或多个更新后的层叠样式表(CSS),其中更新后的层叠样式表基于(i)先前响应于第一请求而从web服务器接收的一个或多个层叠样式表,以及(ii)响应于第二请求而从web服务器接收的所述一个或多个web元素定义。
11.如权利要求9所述的客户端计算设备,其中所接收的web内容内的第一web元素是包括第一数量的行和第二数量的列的表,并且其中所接收的针对第一web元素的web元素定义识别以下中的至少一个:不同于第一数量的更新后的数量的行,或者不同于第二数量的更新后的数量的列。
12.如权利要求9所述的客户端计算设备,其中响应于第二请求而接收针对所述一个或多个web元素中的每一个web元素的web元素定义包括:
针对第一web元素接收定义针对第一web元素的像素要求或样式要求中的至少一个的第一web元素定义。
13.如权利要求9所述的客户端计算设备,存储器存储附加计算机可读指令,该附加计算机可读指令在由所述一个或多个处理器执行时还使得客户端计算设备执行以下操作:
由在客户端计算设备上执行的web浏览器确定与客户端计算设备集成或相关联的第一显示设备的形状因数,
其中由客户端计算设备生成的标记语言文档基于所确定的第一显示设备的形状因数。
14.如权利要求13所述的客户端计算设备,存储器存储附加计算机可读指令,该附加计算机可读指令在由所述一个或多个处理器执行时还使得客户端计算设备执行以下操作:
在渲染标记语言文档之后,检测在客户端计算设备与第二显示设备之间已经建立连接;
由在客户端计算设备上执行的web浏览器确定连接到客户端计算设备的第二显示设备的第二形状因数;
重新生成所述一个或多个标记语言文档,其中标记语言文档的重新生成是基于连接到客户端计算设备的第二显示设备的第二形状因数执行的;以及
经由web浏览器将重新生成的所述一个或多个标记语言文档渲染到连接到客户端计算设备的第二显示设备。
15.如权利要求13所述的客户端计算设备,存储器存储附加计算机可读指令,该附加计算机可读指令在由所述一个或多个处理器执行时还使得客户端计算设备执行以下操作:
由在客户端计算设备上执行的web浏览器确定客户端计算设备的一个或多个功能设备能力;
其中标记语言文档是基于所确定的客户端计算设备的功能设备能力生成的。
16.如权利要求9所述的客户端计算设备,其中响应于第一请求而分析从web服务器接收的web内容包括:
为web内容内的多个web元素中的每一个特定web元素确定:(i)元素标识符、(ii)与该特定web元素相关联的像素值、和(iii)该特定web元素的一个或多个特性、以及(iv)与该特定web元素相关联的一个或多个样式值。
17.一种非暂态计算机可读介质,包括指令,该指令在由计算机系统的一个或多个处理器执行时使得所述一个或多个处理器在客户端计算设备上渲染web内容,所述指令包括:
经由在客户端计算设备上执行的web浏览器向web服务器传输第一请求,该第一请求识别客户端设备所请求的一个或多个基于web的资源;
响应于第一请求,从web服务器接收与客户端计算设备所请求的所述一个或多个基于web的资源对应的web内容;
分析所接收的web内容,以识别该web内容内的一个或多个web元素;
基于对web内容的分析,确定所述一个或多个web元素中的每一个web元素的元素标识符;
向web服务器传输第二请求,该第二请求包括为所述一个或多个web元素中的每一个web元素确定的元素标识符;
响应于第二请求,接收针对所述一个或多个web元素中的每一个web元素的web元素定义;
生成一个或多个标记语言文档,其中标记语言文档的生成是基于来自web服务器的一个或多个web元素定义并且在接收到来自web服务器的所述一个或多个web元素定义之后执行的;以及
经由web浏览器将所述一个或多个标记语言文档渲染到与客户端计算设备集成或相关联的第一显示设备。
18.如权利要求17所述的非暂态计算机可读介质,所述指令还包括:
由在客户端计算设备上执行的web浏览器确定与客户端计算设备集成或相关联的第一显示设备的形状因数,
其中由客户端计算设备生成的标记语言文档基于所确定的第一显示设备的形状因数。
19.如权利要求18所述的非暂态计算机可读介质,所述指令还包括:
在渲染标记语言文档之后,检测在客户端计算设备与第二显示设备之间已经建立连接;
由在客户端计算设备上执行的web浏览器确定连接到客户端计算设备的第二显示设备的第二形状因数;
重新生成所述一个或多个标记语言文档,其中标记语言文档的重新生成是基于连接到客户端计算设备的第二显示设备的第二形状因数执行的;以及
经由web浏览器将重新生成的所述一个或多个标记语言文档渲染到连接到客户端计算设备的第二显示设备。
20.如权利要求18所述的非暂态计算机可读介质,所述指令还包括:
由在客户端计算设备上执行的web浏览器确定客户端计算设备的一个或多个功能设备能力;
其中标记语言文档是基于所确定的客户端计算设备的功能设备能力生成的。
CN202010082085.8A 2019-02-08 2020-02-07 web内容的客户端侧定制和渲染 Pending CN111552897A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/271,314 US11068643B2 (en) 2019-02-08 2019-02-08 Client-side customization and rendering of web content
US16/271,314 2019-02-08

Publications (1)

Publication Number Publication Date
CN111552897A true CN111552897A (zh) 2020-08-18

Family

ID=69500537

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010082085.8A Pending CN111552897A (zh) 2019-02-08 2020-02-07 web内容的客户端侧定制和渲染

Country Status (3)

Country Link
US (1) US11068643B2 (zh)
EP (1) EP3693872A1 (zh)
CN (1) CN111552897A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112307403A (zh) * 2020-11-12 2021-02-02 Oppo(重庆)智能科技有限公司 页面渲染方法、装置、存储介质以及终端
CN112507670A (zh) * 2020-12-14 2021-03-16 北京字跳网络技术有限公司 一种文本编辑方法、装置、电子设备及存储介质
CN112528274A (zh) * 2020-12-24 2021-03-19 微医云(杭州)控股有限公司 数据处理方法、装置、电子设备及存储介质

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210342522A1 (en) * 2020-04-30 2021-11-04 Truabilities, LLC Dynamic accessibility compliance of a website
CA3203793C (en) * 2020-12-28 2024-01-23 Appward Llc System and method for real-time, dynamic creation, delivery, and use of customizable web applications
CN113835684B (zh) * 2021-09-16 2024-07-05 支付宝(杭州)信息技术有限公司 自动生成图片配置文件的方法及装置
WO2023235434A2 (en) * 2022-06-04 2023-12-07 Apple Inc. Synchronized rendering
US20230391190A1 (en) * 2022-06-04 2023-12-07 Apple Inc. Synchronized rendering

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070220480A1 (en) * 2006-03-17 2007-09-20 Microsoft Corporation Dynamic generation of cascading style sheets
US20090300483A1 (en) * 2008-05-30 2009-12-03 Julien Viet Stylesheet conversion engine
CN102272757A (zh) * 2009-01-08 2011-12-07 国际商业机器公司 经由标记语言的客户端浏览器状态的服务器端记录的方法
US8682964B1 (en) * 2011-03-14 2014-03-25 Amazon Technologies, Inc. Progressively loading network content
US20150317405A1 (en) * 2012-12-13 2015-11-05 Thunderhead Limited Web Page Variation

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438578B1 (en) * 1996-06-12 2002-08-20 Education Networks Of America System and method for generating a modified web page in response to an information request from a client computer
US7152203B2 (en) * 2000-09-11 2006-12-19 Appeon Corporation Independent update and assembly of web page elements
US20040109197A1 (en) * 2002-06-05 2004-06-10 Isabelle Gardaz Apparatus and method for sharing digital content of an image across a communications network
WO2006023459A1 (en) * 2004-08-17 2006-03-02 Shaw Parsing Llc Techniques for delivering personalized content with a real-time routing network
US7975019B1 (en) * 2005-07-15 2011-07-05 Amazon Technologies, Inc. Dynamic supplementation of rendered web pages with content supplied by a separate source
US7505977B2 (en) * 2005-09-27 2009-03-17 International Business Machines Corporation Method for dynamically updating a websheet configuration
US9311420B2 (en) 2007-06-20 2016-04-12 International Business Machines Corporation Customizing web 2.0 application behavior based on relationships between a content creator and a content requester
US20120210205A1 (en) * 2011-02-11 2012-08-16 Greg Sherwood System and method for using an application on a mobile device to transfer internet media content
FR2953311B1 (fr) 2009-12-01 2018-02-09 Shoopz Procede de modification dynamique du rendu d'une page web.
US10157236B2 (en) * 2011-05-23 2018-12-18 Radware, Ltd. Optimized rendering of dynamic content
US8621341B2 (en) 2011-10-28 2013-12-31 Microsoft Corporation Theming engine
US20140207911A1 (en) * 2013-01-22 2014-07-24 James Kosmach System and method for embedding multimedia controls and indications in a webpage
US9087024B1 (en) * 2012-01-26 2015-07-21 Amazon Technologies, Inc. Narration of network content
US9003313B1 (en) 2012-04-30 2015-04-07 Google Inc. System and method for modifying a user interface
US20140095328A1 (en) * 2012-09-28 2014-04-03 Yahoo! Inc. Interactive reveal ad unit
US20150278388A1 (en) 2012-11-15 2015-10-01 Titus Inc. Dynamically re-skinning a web user interface
US9173000B2 (en) * 2013-04-12 2015-10-27 Sony Corporation Automatic discovery and mirroring of server-client remote user interface (RUI) session on a companion device and synchronously controlling both sessions using RUI on companion device
US10984175B2 (en) 2013-08-09 2021-04-20 Yottaa Inc. Systems and methods for dynamically modifying a requested web page from a server for presentation at a client
US9158438B2 (en) 2013-09-16 2015-10-13 Sap Se Multi-level user interface theming engine
US10380239B2 (en) * 2013-12-03 2019-08-13 Sharethrough Inc. Dynamic native advertisment insertion
US20160048605A1 (en) 2014-08-14 2016-02-18 International Business Machines Corporation Integrating image renditions and page layout
CN104267941B (zh) 2014-09-18 2018-01-23 用友优普信息技术有限公司 动态生成响应式网页的方法及装置
US9857959B2 (en) 2015-07-27 2018-01-02 Adobe Systems Incorporated Supporting webpage design and revision irrespective of webpage framework
US10114543B2 (en) * 2015-08-12 2018-10-30 Amazon Technologies, Inc. Gestures for sharing data between devices in close physical proximity
US11206273B2 (en) * 2018-01-31 2021-12-21 Salesforce.Com, Inc. Content management system connect

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070220480A1 (en) * 2006-03-17 2007-09-20 Microsoft Corporation Dynamic generation of cascading style sheets
US20090300483A1 (en) * 2008-05-30 2009-12-03 Julien Viet Stylesheet conversion engine
CN102272757A (zh) * 2009-01-08 2011-12-07 国际商业机器公司 经由标记语言的客户端浏览器状态的服务器端记录的方法
US8682964B1 (en) * 2011-03-14 2014-03-25 Amazon Technologies, Inc. Progressively loading network content
US20150317405A1 (en) * 2012-12-13 2015-11-05 Thunderhead Limited Web Page Variation

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112307403A (zh) * 2020-11-12 2021-02-02 Oppo(重庆)智能科技有限公司 页面渲染方法、装置、存储介质以及终端
CN112507670A (zh) * 2020-12-14 2021-03-16 北京字跳网络技术有限公司 一种文本编辑方法、装置、电子设备及存储介质
CN112528274A (zh) * 2020-12-24 2021-03-19 微医云(杭州)控股有限公司 数据处理方法、装置、电子设备及存储介质
CN112528274B (zh) * 2020-12-24 2023-09-22 微医云(杭州)控股有限公司 数据处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
US20200257756A1 (en) 2020-08-13
US11068643B2 (en) 2021-07-20
EP3693872A1 (en) 2020-08-12

Similar Documents

Publication Publication Date Title
JP7449984B2 (ja) 電子ドキュメントにおけるヘッダの表示を管理するための技術
US11068643B2 (en) Client-side customization and rendering of web content
US11429677B2 (en) Sharing common metadata in multi-tenant environment
US10824403B2 (en) Application builder with automated data objects creation
US10095510B2 (en) Live updating of a shared plugin registry with no service loss for active users
US10331463B2 (en) Dynamic role-based view definitions in a repository system
US9535726B2 (en) Reverse dependency injection in a system with dynamic code loading
US10803048B2 (en) Change data capture processing and analysis
US10379819B2 (en) Generic editor layout using intrinsic persistence metadata
US10942900B2 (en) Techniques for tenant controlled visualizations and management of files in cloud storage systems
US10110447B2 (en) Enhanced rest services with custom data
US20160004668A1 (en) Adfdi support for custom attribute properties
US10135940B2 (en) Subscribing to event notifications using object instances
US10712913B2 (en) Event-based architecture for expand-collapse operations
CN112805705A (zh) 通用治理
US11334601B2 (en) Unified data model
US11226940B2 (en) Adapting data for changes to data attributes
US11132374B2 (en) Property painter
US10372488B2 (en) Parallel processing using memory mapping
US20240005095A1 (en) Predicting text and data variables using customer-specific models

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination