Website preview based on client presentation status

The service computing system determines the client's presentation status and selects the appropriate preview template, which solves the problem of poor appearance of website preview in different contexts, achieving better user experience and space utilization.

CN119174156APending Publication Date: 2024-12-20MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380038976.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-05-24
Filing Date
2023-03-01
Publication Date
2024-12-20

AI Technical Summary

Technical Problem

The prior art is difficult to generate suitable website previews in different client presentation states, resulting in poor appearance and inappropriate space in different contexts.

Method used

Receive website preview requests through the service computing system, determine the client's rendering status, and select a suitable preview template based on this, use the website content to fill the template to generate preview data, ensuring that the website preview matches the rendering context when the client renders.

Benefits of technology

It achieves good matching of website preview in different client presentation states, improves appearance quality and space utilization, and provides a more consistent and rich user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119174156A_ABST
    Figure CN119174156A_ABST
Patent Text Reader

Abstract

A website preview is generated based on a client presentation state of a client that will render the website preview. When the service receives a request for preview data providing a website preview corresponding to the website identifier, the service determines a client presentation state of the client (s) that is to render the website preview using the preview data provided in response to the request. The service selects a preview template based at least in part on the determined client presentation status. The service also populates the selected preview template with content from the website, thereby generating preview data representing a preview of the website identified by the website identifier. Therefore, the preview data is customized according to the presentation state of the client.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] A uniform resource locator (or URL) is a text string identifier that uniquely identifies a resource on a network. As an example, a URL can identify a website. The URL of a website is typically entered into a web browser so that the browser navigates to the respective website. In addition, a URL is typically associated with a selectable link (commonly referred to as a "hyperlink") within a website. Selection of a hyperlink causes the browser to navigate to the website identified by the URL associated with the hyperlink.

[0002] The URL can also be used in other ways. For example, the URL can be entered into a chat window, which can potentially cause the system to render a limited preview of a website. As an example, the preview can include an image, limited text, and a possible hyperlink that allows navigation to the website associated with the link when selected. Compared with simply presenting the text of only the URL, this allows the user to better understand the content provided by the website. Therefore, the user knows more about the website to allow the user to make a more informed decision whether to select the hyperlink. Once the user has selected the hyperlink and has navigated to the website, the user can then navigate on the website (e.g., by selecting a hyperlink or a control) to perform various actions at the website.

[0003] As an example, a user may navigate to a website that offers a product for sale, and then perform an action to purchase the product. As another example, a user may navigate to a website that is hosting a promotion, and then select a hyperlink or control to find out more information about the event, purchase tickets for the event, or find the location of the event on a map. As yet another example, a user may navigate to a restaurant website, and then view the menu or make a reservation.

[0004] The subject matter presented herein is not limited to embodiments that solve any disadvantages or that operate only in the environment described above. Rather, such background is provided merely to illustrate one example technology area in which some embodiments described herein may be implemented. Summary of the invention

[0005] This Summary is provided to introduce selected concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.

[0006] Some embodiments described herein relate to generating a website preview based on a client rendering state of (one or more) client computing systems that will render the website preview. According to one embodiment described herein, when a service computing system receives a request to provide preview data for a website preview corresponding to a website identifier, the service computing system determines the client rendering state of one or more client computing systems, and the one or more client computing systems use the preview data provided in response to the request to render the website preview. The service computing system selects a preview template based at least in part on the determined client rendering state. The service computing system also populates the selected preview template with content from the website, thereby generating preview data representing a preview of the website identified by the website identifier.

[0007] The service computing system then responds to the request using the preview data. The preview data defines how the website preview will appear on the client computing system. Thus, the client computing system renders the web preview using the preview data. Because the web preview is planned to take into account the rendering state of the client computing system that renders the website preview, the website preview better matches the rendering context and therefore has a better appearance and occupies an appropriate amount of space.

[0008] Additional features and advantages will be set forth in the following description, and some features and advantages will be apparent from the description, or may be learned through practice of the teachings of the present invention. The features and advantages of the present invention may be realized and obtained through the tools and combinations particularly pointed out in the appended claims. The features of the present invention will become more fully apparent from the following description and the appended claims, or may be learned through practice of the present invention as described below. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] In order to describe the manner in which the above-listed and other advantages and features are obtained, a more particular description of the subject matter briefly described above will be rendered by reference to specific embodiments illustrated in the accompanying drawings. Understanding that these drawings depict only typical embodiments and that these drawings are not to be considered limiting of scope, the embodiments will be more particularly and in detail described and illustrated through the use of the accompanying drawings, in which:

[0010] Figure 1 illustrates a flow chart of a method for generating a website preview based on a website identifier and a client rendering state according to the principles described herein;

[0011] Figure 2 The diagram shows a network environment including a client computing system and a preview service computing system, which shows that a process can be executed therein. Figure 1 Example environment for the method;

[0012] Figure 3 illustrates a data structure of a preview request including a website identifier for which preview data is to be generated, and a client rendering state identifying a client rendering state in which a preview of the website is to be rendered;

[0013] Figure 4 illustrates a flow chart of a method for generating a preview of a website identified by a website identifier by using a template according to one embodiment described herein;

[0014] Figure 5 The diagram shows the Figure 4 An environment for methods including services for interacting with websites and collections of preview templates;

[0015] Figure 6 illustrates a data flow in which some website content is populated into a copy of a selected preview template, which in one example generates preview data that is returned to the client;

[0016] Fig. 7A illustrates an example of a website preview associated with a particular website identifier to be rendered in a client rendering context;

[0017] Figure 7B illustrates website previews associated with the same website identifier, but to be presented in different contexts;

[0018] Figure 8 illustrates a generalized example of a website preview including three controls, each control having an associated endpoint identifier that facilitates connection to the associated endpoint regarding interactivity with the control; and

[0019] Fig. 9 An example of a computing system is illustrated in which the principles described herein may be employed. DETAILED DESCRIPTION

[0020] Some embodiments described herein relate to generating a website preview based on a client rendering state of (one or more) client computing systems that will render the website preview. According to one embodiment described herein, when a service computing system receives a request to provide preview data for a website preview corresponding to a website identifier, the service computing system determines the client rendering state of one or more client computing systems, and the one or more client computing systems will use the preview data provided in response to the request to render the website preview. The service computing system selects a preview template based at least in part on the determined client rendering state. The service computing system also populates the selected preview template with content from the website, thereby generating preview data representing a preview of the website identified by the website identifier.

[0021] The service computing system then responds to the request with the preview data. The preview data defines how the web preview will appear on the client computing system. Thus, the client computing system renders the web preview using the preview data. Because the web preview is formulated with consideration of the rendering state of the client computing system rendering the website preview, the website preview better matches the rendering context and therefore has a better appearance and occupies an appropriate amount of space.

[0022] Figure 1 A flow chart of a method 100 of generating a website preview based on a website identifier according to the principles described herein is illustrated. By way of example only, a website identifier may be a uniform resource locator (or URL). Figure 2 A network environment 200 is illustrated, which represents an example of an environment in which the principles described herein may operate, and represents an example environment in which the method 100 may be performed. Figure 1 Method 100 will refer to Figure 1 And reference Figure 2 The network environment 200 is described. Figure 2 , the network environment 200 includes a service computing system 201 and a client computing system 202. Fig. 9 As described in computing system 900 , each of computing systems 201 and 202 may be constructed.

[0023] Some of the actions of method 100 are performed by a client computing system, such as Figure 2 The client computing system 202 and Figure 1 The method 100 is illustrated under the heading "Client" in the left half. Other actions in the method 100 are performed by the service computing system, such as Figure 2 The service computing system 201 and Figure 1 The qualifiers "client" and "service" in this document with respect to computing systems are used only to distinguish the computing system that generates the request for the preview and / or renders the website preview (i.e., the "client" or "client computing system") from the computing system that generates the preview data (i.e., the "service" or "service computing system").

[0024] Method 100 includes a client computing system accessing a website identifier (action 111), determining that a website preview of a website identified by the website identifier is to be presented in a client rendering state (action 112), and causing a request for a preview of the website identified by the website identifier to be dispatched to a service computing system (action 113). The client computing system then receives a response to the request with preview data (action 131), and renders the preview using the preview data in a client application state (action 131).

[0025] Before turning to the actions performed by the computing system, the meaning of dotted line 130 will now be described. Dotted line 130 indicates that actions 111 to 113 can be performed by one client computing system, and actions 131 and 132 can be performed by the same client computing system, or may be performed by different computing systems. That is, one client computing system can dispatch a request for a preview to a service computing system, and the same client computing system and / or one or more other client computing systems can each receive a response and render a website preview based on the preview data in the response. As mentioned above, the client application that generates the preview request identifies the client rendering state in which the requested website preview will be rendered (reference action 112). This client rendering state can be any state that may affect how the website preview appears. For example, the client rendering state can be an application (i.e., an application identifier) ​​in which the website preview will be rendered. Examples of such applications can include specifically identified social media applications, video conferencing applications, group chat applications, and the like.

[0026] As another example, the client rendering state may be a state of an application in which a website preview is to be rendered. As an example, the state of the application may be that a chat state is active, a particular window to be rendered is active or a particular size, etc. As another example, the rendering state may indicate that the window in which the website preview state is to appear is a chat window between only two client computing systems, or a group chat window with a large number of participants.

[0027] As for the service computing system, the service computing system receives a request for preview data providing a preview of a website corresponding to a website identifier (act 121). Figure 2 In FIG. 2 , the transmission of the request is represented by arrow 211 . Figure 3The data structure of a preview request 300 is illustrated. The preview request 300 includes a website identifier 301 for which preview data is to be generated and a client rendering state 302, which identifies the client rendering state 303 in which the website preview is to be rendered. The preview request 300 may also include other data, but these two data items 301 and 302 are the only data that will be referenced herein.

[0028] In response to receiving the preview request (act 121), the service computing system generates preview data representing a preview of the website represented by the website identifier (act 122). Figure 2 , generating preview data based on the website identifier is represented by circular arrow 212. The preview data is structured to be interpreted by the client computing system so that the client computing system renders the website preview. In some embodiments, the website preview is defined by the preview data. Therefore, by appropriately generating the preview data, the service computing system controls how the client computing system renders the website preview.

[0029] According to method 100, after generating the preview data (act 122), the service computing system then causes the generated preview data to be sent to the client computing system (act 123). Figure 2 , the service computing system 201 sends the preview data (as represented by arrow 213) to the client computing system 202. At the client computing system, the preview data can then be interpreted as rendering the website preview in the client rendering state. Thus, the website preview associated with the website identifier is provided to the user.

[0030] The client application submitting the preview request may identify more than one client presentation state in which the website preview may appear. This may be true even if multiple previews are to be displayed in the same application. In such a case, in response to receiving a preview request including multiple different presentation states of the application (action 121), the service computing system generates different preview data, the preview data representing different preview data of the website represented by the same website identifier requested by the same application in different client presentation states (action 122). For example, the same application may include at least two different presentation states. As an example, there may be a first state of a messaging session of an ongoing real-time conference, and the second state may be a messaging session in a pure chat thread not associated with the real-time conference. In the first state and the second state, the same website identifier corresponding to the same website published will generate different preview displays in a messaging session in an ongoing real-time conference and a messaging session in a pure chat thread not associated with the real-time conference, respectively.

[0031] In another embodiment, two or more different applications executed on the requesting device include different client rendering states. In response to receiving preview requests for different rendering states of embedded applications (act 121), the service computing system generates different preview data representing different previews of the website represented by the same website identifier requested by the different applications (act 122).

[0032] Figure 4 The flowchart of the method 400 for generating preview data by the service computing system is shown. Figure 1 Because action 121 has already occurred, the service computing system already has the website identifier before method 400 begins. Figure 5 An example environment 500 is illustrated in which method 400 may be performed. Environment 500 includes a service computing system 501 and a website 502. Service computing system 501 has received (as represented by arrow 531) a preview request from a client computing system. Service computing system 501 is Figure 2 Now in conjunction with the example of the service computing system 201 Figure 5 The environment 500 is described Figure 4 Method 400.

[0033] According to method 400, the service computing system accesses the client rendering state from the preview request (action 401). For example, if the preview request is Figure 3 If the preview template is a preview request 300 in the service computing system, the service computing system can access the client rendering state 302 from the preview request 300. The selection of the preview template will depend at least in part on the client rendering state.

[0034] As an additional possibility, the selection of the preview template may additionally take into account website metadata of the website for which the preview is being generated. In this case, the service computing system will use the website identifier within the preview request to navigate to the website and obtain relevant metadata from the website. As an example, if the preview request is Figure 3 If a preview request 300 is received, the service computing system will use the website identifier 301 to navigate to the website itself, thereby obtaining the relevant metadata.

[0035] For example, in Figure 5, service computing system 501 navigates to website 502. If the website identifier is a URL, the service can simply use standard web navigation to navigate to the website. After navigating to the website (action 501), the service computing system then accesses relevant website metadata from website 502. Website 502 is illustrated as including website metadata 521 and website content 522. As an example, metadata 521 may include the type of website 523, possible entities providing the website 524, and potentially other information 525. Such information may be structured according to a schema specified within the website. For example, the schema may be a version of the schema provided by schema.org. In Figure 5 532. The acquisition of the metadata is represented by a bidirectional arrow 532. Then, a preview template is selected based on the client presentation state and potentially based on any website metadata (such as website type 523, website entity 524, etc.) (action 403). For example, the service computing system 501 can access a preview template collection 540. In this example, the collection 540 has four preview templates 541 to 544, but this is just a simple example. There may be countless preview templates available to the service computing system 501. In this example, it is assumed that the service selects preview template 542, which is represented by arrow 533.

[0036] The fields within the template define which content of the website will be used to populate the template. This includes which action controls are to be populated into the template, and where. Therefore, the service uses the template to determine which content is to be populated into the template (action 404). As an example, if the selected template is a preview template 542, the preview template 542 defines which content of the website is to be populated into the preview template.

[0037] The preview service can then retrieve the appropriate content for the website (act 405), as represented by bidirectional arrow 534. Although arrows 532 and 534 are shown separately, all of the information (metadata and content) needed to generate the preview can be retrieved from website 502 through a single request and response.

[0038] The service computing system then populates the content into the website template (as an example of action 406). The populated preview template can then provide the generated preview data, which is then sent to the client. For example, the preview data can be a data exchange format object, such as a JSON object, which is a sequence of declarations that define how to render the website preview. The client can then interpret the preview data, thereby rendering the website preview in a client-side rendering state.

[0039] Figure 6Data flow 600 is illustrated, in which some website content 601 is filled (as represented by arrow 603) into a copy of the selected template 602, which, in one example, generates preview data that is returned to the client. In another embodiment, the preview data sent to the client includes website content 601 and unfilled template 602 (possibly as a single JSON object or multiple JSON objects). Then, the client fills the appropriate part of content 602 into the unfilled template 601 as part of rendering preview data. This has the disadvantage that it relies on the client to have the ability to perform binding of content 602 to template 601, but not all clients have this ability. On the other hand, rendering a sequence of declarations (such as a JSON object) is a more common operation that a client computing system is generally able to perform. This is an advantage of providing preview data as a filled copy of a template.

[0040] Thus, the principles described herein allow different website previews (even for the same website) to be presented depending on the client rendering state in which the website preview is to be presented. Fig. 7A An example of a website preview associated with a particular website identifier is illustrated, the website preview being rendered in a client rendering context, however, Figure 7B Website previews are illustrated that are associated with the same website identifier, but are to be presented in different contexts.

[0041] Specifically, Fig. 7A A text chat window 700A is illustrated in which a user sends a chat to Carol (a fictitious person) and pastes a website identifier, which causes a preview to be rendered within the chat window. The preview includes various static information, including the passenger's name, route, and flight number. However, there are output controls that show a status that can be updated as the flight progresses. In addition, departure and arrival times can also be updated in different output controls. The preview also includes navigation controls that can be selected from the preview itself to obtain flight tracking information from a separate flight tracking service. Figure 7B A more limited preview suitable for other client presentation contexts is illustrated, illustrating basic static information about the flight, as well as output controls showing an updated status of the flight.

[0042] As described above, a template is selected based at least in part on website metadata. As an example, the website metadata may include a website type. For example, a product website ("product" type) may result in a product website preview being selected by default, a restaurant website ("restaurant" type) may result in a restaurant website preview being selected by default, and an airline website ("airline" type) may result in an airline website being selected by default. Such selection does not rely on any input by the website owner itself. Instead, the selection is made by default based on the value of the type field in the website metadata.

[0043] Typically, when a website preview is presented to a user, the preview can be used as a hyperlink (or otherwise contain a hyperlink) that, when selected, navigates the user to the website previewed by the website preview. The user can then interact normally with the website, including interacting with any controls provided by the website. However, according to some embodiments of the principles described herein, one or more controls for the website are provided within the website preview itself. Thus, the user can use those controls without even navigating to the website.

[0044] For illustrative purposes only, Figure 8 A general example of a website preview 800 is illustrated, which includes three controls 801, 802, and 803, each of which has an associated endpoint identifier 811, 812, and 813. An endpoint identifier can be any identifier that a client computing system can use to further connect to an endpoint identified by the associated endpoint identifier. In one example, such an endpoint identifier is also a URL. The website preview may also include other website content, such as images, text (e.g., description, summary, title), and others, although in Figure 8 This other content is not represented in order to allow focus on the control itself. Figure 8 These are examples only. The principles described in this article are not limited to the number of action controls within a website preview.

[0045] As represented by dashed lines 810, 820, and 830, each control is associated with an endpoint identifier 811, 812, and 813, respectively. The controls also have corresponding configurations 821, 822, and 823 that define the type of connection facilitated by the respective controls. Thus, control 801 facilitates a specific type of connection defined by configuration 821 to an endpoint identified by endpoint identifier 811. Additionally, in this example, control 802 facilitates a specific type of connection defined by configuration 822 to an endpoint identified by endpoint identifier 812. Finally, in this example, control 803 facilitates a specific type of connection defined by configuration 823 to an endpoint identified by endpoint identifier 813. The generated preview data will be structured for interpretation by a client computing system so that the client computing system renders a preview of a website having an action control associated with the action and facilitates a connection to an endpoint identified by the endpoint identifier.

[0046] One example of a connection type is a navigation connection type, in which the client computing system is navigated to an endpoint in response to its user's interaction with a control. Such a control is referred to herein as a "navigation control." Another example of a connection type is an input connection type, in which a user can provide input (e.g., text, Boolean value, selection from a group, etc.) to a connected endpoint. Such a control is referred to herein as an "input control." Another example of a connection type is an output connection, in which an endpoint provides data to be populated into a control, and possibly even updates the data. Such a control will be referred to herein as an "output control."

[0047] These are just three different examples of connection types and associated control types. Regardless of the type of connection a control facilitates, the principles described in this article apply. Furthermore, regardless of the form of the control, regardless of the layout, design, color, size, shape, type of user interaction, etc., the principles described in this article apply.

[0048] Examples of navigation controls will now be described. For example, if the website is a restaurant website, an example navigation control may be a description control that, when interacted with, takes the user to a description endpoint maintained by the restaurant, which may be managed by the restaurant. As another example, a navigation control may be in the form of a menu control that, when interacted with, takes the user to a menu endpoint maintained by the restaurant, which presents the restaurant's menu. For example, these endpoints may be located within the domain of the website being previewed (in this case, the restaurant website).

[0049] However, there may also be some controls where the endpoints are completely outside the domain of the restaurant website. For example, there may be a navigation control for booking a restaurant that, when interacted with, takes the user to a booking service endpoint that is not managed by the restaurant website. As another example, a restaurant website preview may provide a navigation control for providing a map to view the location of the restaurant and / or get directions to the restaurant that, when interacted with, takes the user to a map service endpoint that is also not managed by the restaurant website. The same website preview may provide a navigation control that, when interacted with, takes the user to a review service that is also not managed by the restaurant website. Thus, controls can provide the ability to link to services that the user is familiar with and therefore navigate with ease. Furthermore, the website with the preview itself does not have to provide the services supported by each control in the preview. Instead, the controls can link to endpoints outside the website domain.

[0050] As an example of an input control, there may be an input control that allows a user to add their name to a wait list, which, when interacted with, provides a user identifier to an endpoint that registers those waiting for a table. As an example of an output control, a restaurant may generate an output control showing wait times, which updates to reflect a time estimate of the remaining minutes until their table is available. As another example of an output control, this time in the context of an airline website, the output control may update to reflect the flight real-time status of a flight (e.g., on time, in flight, delayed, landed, etc.). There may be another control that interacts with it to connect to a flight tracking service, whereby flight tracking updates are presented to the user.

[0051] Thus, across all product website previews, across all restaurant website previews, and so on, the user has a consistent preview, where those website previews are customized for the website type. The user is thereby given an intuitive website preview. The purpose of generating such a website preview is to provide a robust and rich experience for users browsing and / or interacting with the website preview, and input from other stakeholders may be taken into account. Since the service controls how the website preview appears, rather than leaving such control to each client, the user is provided with a more consistent user experience. Furthermore, since the service computing system is a service that can operate in a cloud computing environment, which has abundant processing, memory, and storage resources, the generation of the preview can take into account various factors and is the result of complex processing, thereby providing a richer website preview.

[0052] Alternatively or additionally, the relevant metadata for selecting a preview template may be an entity expressed in the metadata of the website. This is the provider of the website. In one embodiment, an entity can register a specific preview template with the preview service. Thus, in this embodiment, the selection of a preview template depends on the entity.

[0053] As another example, the selection may be based on the screen size of the client where the website preview is to be rendered. The screen size may be identified within the request from the client to the preview service. The entity may register a different preview template based on each of a plurality of screen sizes. Alternatively or additionally, the selection may be based on both the website type and the client's screen size. Thus, the website entity, the website type, the context in which the preview is to be rendered, and the screen size of the client where the preview is to be rendered (or various combinations of the above) may all be used to select an appropriate preview template.

[0054] Thus, the principles described herein provide a rich preview experience in which generation of previews is determined based on data executed at a preview service, and in which users can interact directly with the previews without having to navigate to an associated website.

[0055] Since the principles described herein are implemented in the context of a computing system, Fig. 9 Some introductory discussions of computing systems are described. Today, computing systems increasingly take a variety of forms. For example, a computing system may be a handheld device, an appliance, a laptop computer, a desktop computer, a mainframe, a distributed computing system, a data center, or even a device that is not traditionally considered a computing system, such as a wearable device (e.g., glasses). In this specification and claims, the term "computing system" is broadly defined to include any device or system (or combination thereof) that includes at least one physical and tangible processor, and physical and tangible memory that is capable of storing computer executable instructions that can be executed by the processor. The memory can take any form and depends on the nature and form of the computing system. The computing system can be distributed in a network environment and can include multiple constituent computing systems.

[0056] like Fig. 9As illustrated, in the most basic configuration, the computing system 900 includes at least one hardware processing unit 902 and a memory 904. The processing unit 902 includes a general purpose processor. Although not required, the processing unit 902 may also include a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), or any other special circuit. In one embodiment, the memory 904 includes a physical system memory. The physical system memory may be volatile, non-volatile, or some combination of the two. In a second embodiment, the memory is a non-volatile mass storage, such as a physical storage medium. If the computing system is distributed, the processing, memory, and / or storage capabilities may also be distributed.

[0057] The computing system 900 also has a variety of structures, which are generally referred to as "executable components." For example, the memory 904 of the computing system 900 is illustrated as including an executable component 906. The term "executable component" is a name for a structure that is well known to those of ordinary skill in the computing arts, and such structure may be software, hardware, or a combination thereof. For example, when implemented in software, one of ordinary skill in the art will understand that the structure of an executable component may include a software object, a routine, a method (or the like) that is executable on the computing system. Such an executable component resides in a stack of the computing system, in a computer-readable storage medium, or a combination thereof.

[0058] Those of ordinary skill in the art will recognize that the structure of an executable component exists on a computer-readable medium so that when interpreted by one or more processors (e.g., processor threads) of a computing system, the computing system is caused to perform a function. Such a structure can be directly computer-readable by the processor (as in the case where the executable component is binary). Alternatively, the structure can be constructed to be interpretable and / or compilable (whether single-stage or multi-stage) so as to generate a binary file that can be directly interpreted by the processor. When the term "executable component" is used, this understanding of the example structure of an executable component is fully consistent with the understanding of those of ordinary skill in the computing field.

[0059] For ordinary technicians, the term "executable component" can also be fully understood to include structures such as hard-coded or hard-wired logic gates, which are completely or nearly completely implemented in hardware, such as in a field programmable gate array (FPGA), an application-specific integrated circuit (ASIC), or any other special circuit. Therefore, the term "executable component" is a term for structures well known to ordinary technicians in the computing field, whether implemented in software, hardware, or a combination. In this description, the terms "component", "agent", "manager", "service", "engine", "module", "virtual machine" or similar terms may also be used. As used in this description and cases, these terms (whether or not with modifying terms) are also intended to be synonymous with the term "executable component" and therefore also have structures well known to ordinary technicians in the computing field.

[0060] In the following description, embodiments will be described with reference to actions performed by one or more computing systems. If these actions are implemented by software, one or more processors (of the relevant computing system performing the actions) direct the operation of the computing system in response to the executed computer executable instructions (constituting executable components). For example, such computer executable instructions can be embodied on one or more computer readable media to form a computer program product. Examples of such operations involve data operations. If such actions are implemented completely or nearly completely in hardware, such as in an FPGA or ASIC, the computer executable instructions can be hard-coded or hard-wired logic gates. Computer executable instructions (and operation data) can be stored in a memory 904 of the computing system 900. The computing system 900 can also include a communication channel 908, allowing the computing system 900 to communicate with other computing systems via, for example, a network 910.

[0061] Although not all computing systems require a user interface, in some embodiments, computing system 900 includes a user interface system 912 for interacting with a user. User interface system 912 may include output mechanism 912A and input mechanism 912B. The principles described herein are not limited to accurate output mechanism 912A or input mechanism 912B, because this will depend on the nature of the device. However, output mechanism 912A may include, for example, a speaker, a display, tactile output, virtual reality or augmented reality, a hologram, etc. The example of input mechanism 912B may include, for example, a microphone, a touch screen, virtual or augmented reality, a hologram, a camera, a keyboard, a mouse or other pointer input, any type of sensor, etc.

[0062] The embodiments described herein may include or utilize a dedicated or general-purpose computing system, including computer hardware, for example, one or more processors and system memory, as will be discussed in detail below. The embodiments described herein also include physical and other computer-readable media for carrying or storing computer-executable instructions and / or data structures. Such computer-readable media can be any available media that can be accessed by a general-purpose or special-purpose computing system. The computer-readable medium that stores computer-executable instructions is a physical storage medium. The computer-readable medium that carries computer-executable instructions is a transmission medium. Therefore, by way of example and not limitation, embodiments of the present invention may include at least two distinct computer-readable media: a storage medium and a transmission medium.

[0063] Computer-readable storage media includes RAM, ROM, EEPROM, CD-ROM or other optical disk storage devices, magnetic disk storage devices or other magnetic storage devices, or any other physical and tangible storage media that can be used to store desired program code means in the form of computer-executable instructions or data structures and can be accessed by general or special purpose computing systems.

[0064] A "network" is defined as one or more data links for transmitting electronic data between computing systems and / or modules and / or other electronic devices. When information is transmitted or provided to a computing system via a network or other communication connection (hardwired, wireless, or a combination of hardwired and wireless), the computing system correctly treats the connection as a transmission medium. The transmission medium may include networks and / or data links that can be used to carry the required program code units in the form of computer executable instructions or data structures that can be accessed by general or special computing systems. Combinations of the above described contents should also be included within the scope of computer-readable media.

[0065] Furthermore, when various computing system components are implemented in the form of program code components in the form of computer executable instructions or data structures, they may be automatically transferred from a transmission medium to a storage medium (or vice versa). For example, computer executable instructions or data structures received over a network or data link may be buffered in the RAM of a network interface module (e.g., a "NIC") and then ultimately transferred to the computing system RAM and / or a less volatile storage medium at the computing system. Thus, it should be understood that a storage medium may be included in a computing system component that also (or even primarily) utilizes a transmission medium.

[0066] For example, computer executable instructions include instructions and data that, when executed on a processor, cause a general purpose computing system, a special purpose computing system, or a special purpose processing device to perform a specific function or set of functions. Alternatively or additionally, computer executable instructions can configure a computing system to perform a certain function or set of functions. For example, computer executable instructions can be binary files, or even instructions that have undergone some translation (such as compilation) before being directly executed by a processor, such as intermediate format instructions in assembly language, or even source code.

[0067] Although the subject matter has been described in language specific to structural features and / or methodological acts, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the described features or acts described above. Rather, the described features and acts are disclosed as example forms of implementing the claims.

[0068] Those skilled in the art will appreciate that the present invention can be implemented in a network computing environment with various types of computing system configurations, including personal computers, desktop computers, laptop computers, message processors, handheld devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, microcomputers, mainframe computers, mobile phones, PDAs, pagers, routers, switches, data centers, wearable devices (e.g., glasses), etc. The present invention can also be implemented in a distributed system environment, in which local and remote computing systems, connected through a network (through a hard-wired data link, a wireless data link, or a combination of hard-wired and wireless data links), all perform tasks. In a distributed system environment, program modules can be located in both local and remote memory storage devices.

[0069] Those skilled in the art will also appreciate that the present invention may be implemented in a cloud computing environment. A cloud computing environment may be distributed, but need not be. In a distributed environment, a cloud computing environment may be distributed internationally within an organization and / or have components across multiple organizations. In this specification and the following claims, "cloud computing" is defined as a model for enabling on-demand network access to a shared pool of configurable computing resources (such as networks, servers, storage, applications, and services). The definition of "cloud computing" is not limited to any of the other numerous advantages that can be obtained from this model when properly deployed.

[0070] For the processes and methods disclosed herein, the operations performed in the processes and methods may be implemented in different orders. In addition, the operations outlined are provided only as examples, and some operations may be optional, may be combined into fewer steps and operations, may be supplemented with more operations, or may be expanded into additional operations without departing from the essence of the disclosed embodiments.

[0071] The present invention may be embodied in other specific forms without departing from its spirit or features. The described embodiments should be considered in all respects as illustrative only and not restrictive. Therefore, the scope of the present invention is indicated by the appended claims rather than the description described above. All changes within the meaning and equivalent range of the claims should be included within the scope of the claims.

Claims

1. A computer-implemented method executed by a service computing system to generate a website preview based on a client rendering state, the method comprising: receiving a request for preview data providing a preview of a website corresponding to a website identifier; determining a client rendering state of one or more client computing systems that will render a website preview using the preview data provided in response to the request; selecting a preview template based at least in part on the determined client presentation state; populating the selected preview template with content from the website, thereby generating preview data representing a preview of the website identified by the website identifier, the preview data being structured to be interpreted by the one or more client computing systems to cause each of the one or more client computing systems to render a website preview, the preview data defining how the website preview is to be rendered; as well as The request is responded to with the preview data. 2 . The method of claim 1 , the client rendering state comprising an application in which the website preview is to be rendered. 3 . The method of claim 1 , the client rendering state comprising a state of an application in which the website preview is to be rendered. The method of claim 1 , the one or more client computing systems being a plurality of computing systems.

5. The method of claim 1, the preview template is also selected based on the type of the website identified by the website identifier.

6. A service computing system, comprising: one or more processors; as well as One or more computer-readable media having computer-executable instructions thereon, the computer-executable instructions being structured such that if executed by the one or more processors, the service computing system will be configured to generate a website preview based on a client rendering state by being configured to, in response to receiving a request for providing preview data for a website preview corresponding to a website identifier, perform the following operations: determining a client rendering state of one or more client computing systems that will render a website preview using the preview data provided in response to the request; selecting a preview template based at least in part on the determined client presentation state; populating the selected preview template with content from the website, thereby generating preview data representing a preview of the website identified by the website identifier, the preview data being structured to be interpreted by the one or more client computing systems to cause each of the one or more client computing systems to render a website preview, the preview data defining how the website preview is to be rendered; as well as The request is responded to with the preview data.

7. The service computing system of claim 6, the computer executable instructions being structured such that if executed by the one or more processors, the service computing system will be caused to determine the client presence state based on the content of the request.

8. The service computing system of claim 6, the client rendering state comprising an application in which the website preview is to be rendered.

9. The service computing system of claim 6, the client rendering state comprising a state of an application in which the website preview is to be rendered.

10. The service computing system of claim 6, the client presentation state comprising a state of a window in which the website preview is to be rendered.