DE202011108505U1 - Computersystem zum selektiven Vor-Rendern eines Off-Screen-Inhalts - Google Patents
Computersystem zum selektiven Vor-Rendern eines Off-Screen-Inhalts Download PDFInfo
- Publication number
- DE202011108505U1 DE202011108505U1 DE202011108505U DE202011108505U DE202011108505U1 DE 202011108505 U1 DE202011108505 U1 DE 202011108505U1 DE 202011108505 U DE202011108505 U DE 202011108505U DE 202011108505 U DE202011108505 U DE 202011108505U DE 202011108505 U1 DE202011108505 U1 DE 202011108505U1
- Authority
- DE
- Germany
- Prior art keywords
- screen
- content
- viewport
- tile
- rendering
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/14—Solving problems related to the presentation of information to be displayed
- G09G2340/145—Solving problems related to the presentation of information to be displayed related to small screens
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/34—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling
- G09G5/346—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling for systems having a bit-mapped display memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Description
- HINTERGRUND
- Gebiet
- Die vorliegende Offenbarung bezieht sich im Allgemeinen auf die Übertragung von Daten über ein Netzwerk, und genauer gesagt auf die Verwendung einer Rechenvorrichtung zum Anzeigen von Daten, die über ein Netzwerk übertragen wurden.
- Beschreibung der verwandten Technik
- Mobile Vorrichtungen sind besonders durch eine Bildschirmgröße eingeschränkt. In Folge dessen zeigen Web-Browser für mobile Vorrichtungen oftmals nur einen Teil bzw. Abschnitt einer Internetseite innerhalb ihrer eingeschränkten Bildschirmfläche der Vorrichtung (”Viewport”) an. Die Ausmaße des Viewports werden basierend auf der Bestimmung der Bildschirmfläche für den Web-Browser (z. B. Pixel bzw. Bildpunkte), die zum Anzeigen der Internetseite verfügbar ist, bestimmt. Ein Nutzer bzw. Verwender muss zum Lesen des Inhalts der Internetseite, der nicht in dem Viewport angezeigt ist, scrollen.
- Für ein Rendern des Inhalts bzw. Contents außerhalb des Viewports werden üblicherweise zwei Ansätze genutzt: (1) der Inhalt außerhalb des Viewports wird gerendert, wenn er in den Viewport gelangt, oder (2) der gesamte Inhalt der Internetseite, einschließlich des Inhalts außerhalb des Viewports, wird unmittelbar gerendert, wenn die Internetseite durch den Web-Browser geladen wird. Jeder Ansatz hat seine Nachteile. Wird der Inhalt außerhalb des Viewports gerendert, wenn er in den Viewport gelangt, kann eine Verzögerung beim Rendern des Inhalts außerhalb des Viewports zur Anzeige in dem Viewport entstehen, und als ein Ergebnis kann der Nutzer einen leeren Bildschirm oder einen Teil eines leeren Bildschirms sehen. Wird der gesamte Inhalt außerhalb des Viewports gerendert, wenn die Web- bzw. Internetseite geladen wird, kann dies eine unnötige Verzögerung verursachen und zu einer ineffizienten Nutzung von Batterieleistung, Verarbeitungskapazität und Speicher führen, insbesondere wenn der Nutzer den Inhalt außerhalb des Viewports nicht sieht bzw. betrachtet.
- ZUSAMMENFASSUNG
- Gemäß einer Ausführungsform der Offenbarung ist ein computerimplementiertes Verfahren für ein selektives Vor-Rendern des Off-Screen-Inhalts zur Anzeige, bevor der Inhalt auf den Bildschirm einer Vorrichtung bzw. on-screen kommt, vorgesehen. Das Verfahren beinhaltet bzw. umfasst ein Empfangen einer Anfrage zum Anzeigen eines Inhalts bzw. Contents auf einer Vorrichtung und ein Unterteilen des Inhalts in einen ersten anzeigbaren Teil bzw. Abschnitt, der auf einer Größe eines Viewports der Vorrichtung basiert, und einen zweiten anzeigbaren Teil, der sich außerhalb des Viewports befindet. Das Verfahren umfasst ebenso ein Rendern und Anzeigen des ersten anzeigbaren Teils des Inhalts innerhalb des Viewports, und ein Auswählen einer Teilmenge bzw. eines Subsatzes des zweiten anzeigbaren Teils des Inhalts zum Off-Screen-Rendern, basierend auf einer zuvor bestimmten Regel.
- Gemäß einer anderen Ausführungsform der Offenbarung ist bzw. wird ein System für ein selektives Vor-Rendern eines Off-Screen-Inhalts zur Anzeige, bevor der Inhalt auf den Bildschirm einer Vorrichtung bzw. on-screen kommt, vorgesehen. Das System umfasst bzw. beinhaltet einen Speicher, der Inhalt zum Anzeigen umfasst, und einen Prozessor. Der Prozessor ist so konfiguriert, dass er eine Anfrage zum Anzeigen des Inhalts auf einer Vorrichtung empfängt und den Inhalt in einen ersten anzeigbaren Teil bzw. Abschnitt, der auf der Größe des Viewports der Vorrichtung basiert, und einen zweiten anzeigbaren Teil, der außerhalb des Viewports liegt, teilt. Der Prozessor ist außerdem so konfiguriert, dass er den ersten anzeigbaren Teil des Inhalts in dem Viewport rendert und anzeigt und eine Teilmenge bzw. einen Subsatz des zweiten anzeigbaren Teils des Inhalts für ein Off-Screen-Rendern basierend auf einer zuvor bestimmten Regel auswählt, wobei die zuvor bestimmte Regel auf zumindest einem von Inhalt, einem Ansichts- bzw. Betrachtungsverlauf eines Nutzers und einer Nähe der Teilmenge des zweiten anzeigbaren Teils zum Viewport basiert.
- Gemäß einer weiteren Ausführungsform der Offenbarung ist bzw. wird ein Web-Browser vorgesehen bzw. zur Verfügung gestellt, der selektiv einen Off-Screen-Inhalt zum Anzeigen vor-rendert, bevor der Inhalt auf den Bildschirm einer Vorrichtung kommt. Der Web-Browser umfasst einen Anzeigebereich, der auf der Größe eines Viewports der Vorrichtung basiert und so konfiguriert ist, dass er den Inhalt auf der Vorrichtung anzeigt. Der Inhalt ist bzw. wird in einen ersten anzeigbaren Teil bzw. Abschnitt, der auf einer Größe des Anzeigebereichs basiert, und einen zweiten anzeigbaren Teil, der außerhalb des Anzeigebereichs liegt, unterteilt. Der erste anzeigbare Teil des Inhalts wird gerendert und innerhalb des Anzeigebereichs angezeigt, und eine Teilmenge des zweiten anzeigbaren Teils des Inhalts für ein Off-Screen-Rendern wird basierend auf einer zuvor bestimmten Regel ausgewählt. Die zuvor bestimmte Regel basiert auf zumindest einem von Inhalt, einem Betrachtungsverlauf eines Nutzers und einer Nähe der Teilmenge des zweiten anzeigbaren Teils zum Viewport. Der erste anzeigbare Teil und der zweite anzeigbare Teil sind jeweils in gleich große Tiles unterteilt.
- Gemäß einer noch anderen Ausführungsform der Offenbarung ist ein maschinenlesbares Speichermedium vorgesehen, das maschinenlesbare Anweisungen umfasst, die einen Prozessor veranlassen, ein Verfahren zum selektiven Vor-Rendern eines Off-Screen-Inhalts zum Anzeigen, bevor der Inhalt auf den Bildschirm der Vorrichtung kommt, auszuführen. Das Verfahren umfasst bzw. beinhaltet ein Empfangen einer Anfrage zum Anzeigen des Inhalts auf einer Vorrichtung, ein Unterteilen des Inhalts in gleich große Tiles und ein Rendern und Anzeigen der Tiles, die sich in einem Viewport der Vorrichtung befinden. Das Verfahren umfasst ebenso ein Auswählen einer Teilmenge der übrigen Tiles für ein Off-Screen-Rendern basierend auf zumindest einem des Inhalts eines Tiles, einem Betrachtungsverlauf eines Nutzers und einer Nähe des Tees zum Viewport.
- KURZE BESCHREIBUNG DER ZEICHNUNGEN
- Die anhängenden Zeichnungen, die für ein weiteres Verständnis beigefügt sind und in diese Beschreibung aufgenommen sind und einen Teil dieser bilden, veranschaulichen bzw. illustrieren geoffenbarte Ausführungsformen und dienen zusammen mit der Beschreibung zur Erläuterung der Prinzipien der geoffenbarten Ausführungsformen. In den Zeichnungen:
- veranschaulicht
1 einen exemplarischen Aufbau für ein selektives Vor-Rendern von Off-Screen-Inhalt zum Anzeigen, bevor der Inhalt auf den Bildschirm einer Vorrichtung bzw. on-screen kommt. - ist
2 ein Blockdiagramm, das einen exemplarischen Client und Server aus dem Aufbau von1 gemäß bestimmten Aspekten der Offenbarung veranschaulicht. - veranschaulicht
3 einen exemplarischen Prozess zum selektiven Vor-Rendern von Off-Screen-Inhalt zum Anzeigen, bevor der Inhalt auf den Bildschirm kommt, unter Verwendung eines exemplarischen Clients von2 . - ist
4 eine exemplarische Darstellung in Verbindung mit dem exemplarischen Prozess von3 , in der anzeigbarer Inhalt in einen ersten Teil bzw. Abschnitt, der in einem Viewport angezeigt wird, und einen zweiten Teil außerhalb des Viewports aufweist, der eine Teilmenge unterteilt, welche selektiv vor-gerendert ist. - ist
5 ein Blockdiagramm, das ein exemplarisches Computersystem veranschaulicht, mit dem der Client von2 implementiert werden kann. - AUSFÜHRLICHE BESCHREIBUNG
- In der folgenden ausführlichen Beschreibung werden für ein vollständiges Verständnis der vorliegenden Offenbarung zahlreiche spezifische Details dargelegt. Ein Fachmann wird jedoch erkennen, dass die Ausführungsformen der vorliegenden Offenbarung auch ohne einige dieser spezifischen Details umgesetzt werden können. In anderen Fällen sind allgemein bzw. gut bekannte Strukturen und Techniken nicht im Detail gezeigt, um nicht die Offenbarung in den Schatten zu stellen.
- Das geoffenbarte System unterteilt eine Web- bzw. Internetseite in Tiles bzw. Kachel-Grafiken und rendert die Tiles außerhalb eines Viewports einer Vorrichtung (”Vor-Rendern”) selektiv basierend auf eine Wahrscheinlichkeit, dass ein Nutzer bzw. Verwender später nach links, rechts, oben oder unten scrollen wird, um diese Tiles im Viewport sehen zu können. Die Tiles außerhalb des Viewports können basierend auf ihrer Nähe zum Viewport, dem vergangenen Scroll-Verlauf des Nutzers und dem Inhalt der Internetseite für ein Vor-Rendern ausgewählt und nach Vordringlichkeit geordnet werden. Im Ergebnis wird eine Anzeigeverzögerung des Internetseiteninhalts verringert. Scrollt der Nutzer den Viewport in einen Bereich, der Tiles enthält, die nicht vor-gerendert worden sind, dann werden diese Tiles zu diesem Zeitpunkt gerendert.
- Beispielsweise werden Tiles unter dem Viewport vor Tiles über dem Viewport vor-gerendert, und Tiles rechts vom Viewport werden vor Tiles außerhalb links vom Viewport vor-gerendert. Tiles, die näher am Viewport sind, werden vor Tiles vor-gerendert, die weiter weg sind vom Viewport. Tiles vertikal außerhalb (z. B. über oder unter) des Viewports werden vor Tiles vor-gerendert, die horizontal außerhalb (z. B. rechts oder links) des Viewports liegen, da beispielsweise ein Nutzer eher nach unten als zur Seite browst. Tiles, die diagonal außerhalb des Viewports liegen, können als letztes gerendert werden.
- Als ein anderes Beispiel werden, wenn der Nutzer nach unten gescrollt hat, um einen Inhalt unter dem Viewport anzusehen, Tiles unter dem Viewport vor Tiles über dem Viewport vor-gerendert. Liest der Nutzer ein Script bzw. Schriftstück, das von rechts nach links verläuft, wie Arabisch, dann wird Inhalt links vom Viewport vor Inhalt rechts vom Viewport vor-gerendert.
- Während hierin viele Beispiele im Zusammenhang mit einer Internetseite angegeben bzw. zur Verfügung gestellt sind, gelten die Prinzipien der vorliegenden Offenbarung auch für andere Arten von anzeigbarem Inhalt. Beispielsweise werden Textverarbeitung, mobile Anwendungen, Graphikbearbeitungssoftware, Karten und andere Formen eines visuellen Renderns alle in dem Umfang der vorliegenden Offenbarung erachtet.
- Wenden wir uns den Zeichnungen zu, veranschaulicht
1 einen exemplarischen bzw. beispielhaften Aufbau100 für ein selektives Vor-Rendern von Off-Screen-Inhalt zum Anzeigen, bevor der Inhalt auf den Bildschirm einer Vorrichtung kommt. Der Aufbau bzw. die Architektur100 umfasst Server130 und Clients110 , die über ein Netzwerk150 verbunden sind. - Jeder der Clients
130 ist so konfiguriert, dass er, wie hierin geoffenbart, einen Web-Browser herunterlädt, installiert und betreibt. Der Web-Browser ist so konfiguriert, dass er auf den Clients130 , die mobil oder nicht mobil sind, läuft. Die Clients110 können beispielsweise Desktop-Computer, Laptop-Computer, mobile Vorrichtungen (z. B. ein Smartphone, Tablet-Computer oder PDA), Settop-Boxen (z. B. für einen Fernseher), Videospiel-Konsolen oder jegliche andere Vorrichtungen mit entsprechenden Prozessor-, Speicher- und Kommunikationsfähigkeiten sein. In bestimmten Aspekten sind bestimmte Vorteile des Web-Browsers, wie eine erhöhte Internetseiten-Anzeigezeit, als Antwort auf ein Scrollen am markantesten bei Clients110 , die mobile Vorrichtungen sind oder die ansonsten langsamere Verarbeitungsgeschwindigkeiten aufweisen. - Der Web-Browser kann über das Netzwerk
150 von einem der vielen Server130 heruntergeladen werden. Zum Zwecke eines Lastausgleichs können auch mehrere Server130 die Daten zum Herunterladen des Web-Browsers bereitstellen. In bestimmten Fällen sind verschiedene Versionen und/oder Konfigurationen des Web-Browsers, welche die hierin offenbarten Merkmale umfassen, zum Herunterladen von einem Server130 und eine anschließende Installation verfügbar, was davon abhängig ist, ob der Client130 eine mobile Vorrichtung oder nicht mobile Vorrichtung ist. Nachdem der Web-Browser auf einem Client130 installiert worden ist, wird er so konfiguriert, dass er Internetseiten von irgendeinem oder mehreren Client-Server(n)130 , die die Internetseiten bereitstellen, herunterlädt. Die Server130 können irgendeine Vorrichtung sein, die über einen geeigneten Prozessor, Speicher und Kommunikationsfähigkeit zum Bereitstellen von Daten zum Installieren des Web-Browsers und zum Bereitstellen der Internetseiten verfügt. Das Netzwerk150 kann zum Beispiel ein oder mehrere von einem Personal Area Network (PAN), einem Local Area Network (LAN), einem Campus Area Network (CAN), einem Stadtbereichsnetzwerk bzw. Metropolitan Area Network (MAN), einem Langstreckennetzwerk bzw. Wide Area Network (WAN), einem Breitbandnetzwerk bzw. Broadband Network (BBN), dem Internet und dergleichen umfassen. Ferner kann das Netzwerk150 eine oder mehrere der folgenden Netzwerktopologien umfassen, die ein Bus-Netzwerk, ein sternförmiges Netzwerk, ein Ring-Netzwerk, ein Maschennetzwerk, ein Stern-Bus-Netzwerk, ein Baum- oder hierarchisches Netzwerk und dergleichen einschließen, ist aber nicht darauf beschränkt. - Der geoffenbarte Web-Browser, der von einem Server
130 heruntergeladen und installiert und auf einem Client130 eingerichtet worden ist, wird so konfiguriert, dass er eine heruntergeladene Internetseite in einem Web-Browser anzeigt. Die Internetseite wird von dem Web-Browser in gleich große Tiles unterteilt, die organisiert werden, je nachdem, ob diese Tiles in dem Viewport des Clients130 oder außerhalb des Viewports des Clients130 (z. B. wenn die Höhe oder Breite der Internetseite bei einem bestimmten Zoom-Niveau bzw. Abbildungsmaßstab die Höhe oder Breite des Viewports übersteigt) erscheinen. Tiles der Internetseite innerhalb des Viewports werden gerendert und dem Nutzer innerhalb des Viewports angezeigt. Andererseits wird eine begrenzte Teilmenge der verbliebenen Tiles (z. B. der Tiles außerhalb des Viewports) zum Vor-Rendern ausgewählt, so dass sie zum Anzeigen bereitstehen, wenn der Nutzer die Internetseite so scrollt, dass sie innerhalb des Viewports erscheinen. Die Teilmenge der verbliebenen Tiles, die zum Vor-Rendern bestimmt bzw. gekennzeichnet sind, wird zum Beispiel basierend auf der Nähe der Tiles zum Viewport, des vergangenen Scrollverlaufs des Nutzers (z. B. unmittelbare Vergangenheit oder im Verlauf der Zeit) und dem Inhalt der Internetseite (z. B. der Text in der Internetseite verläuft von rechts nach links) ausgewählt. -
2 ist ein Blockdiagramm200 , das einen exemplarischen Server130 und Client110 in dem Aufbau100 von1 gemäß bestimmten Aspekten der Offenbarung veranschaulicht. Der Client und der Server130 sind über das Netzwerk150 durch jeweilige Kommunikationsmodule218 und238 miteinander verbunden. Die Kommunikationsmodule218 und238 sind so konfiguriert, dass sie eine Schnittstelle mit dem Netzwerk150 zum Senden und Empfangen von Information wie Daten, Anfragen, Antworten und Befehle an andere Vorrichtungen auf dem Netzwerk bilden. Die Kommunikationsmodule218 und238 können beispielsweise Modems oder Ethernet-Cards sein. - Der Client
110 umfasst einen Prozessor212 , das Kommunikationsmodul218 und einen Speicher220 , der einen Web-Browser222 und eine Client-Kopie einer Internetseite224b (oder einen anderen anzeigbaren Inhalt bzw. Content) zum Anzeigen in dem Web-Browser222 unter Verwendung der Ausgabevorrichtung214 (z. B. einem Display bzw. Bildschirm) des Clients110 umfasst. Die Client-Kopie der Internetseite224b wird von dem Server130 über das Netzwerk150 unter Verwendung der jeweiligen Kommunikationsmodule218 und238 des Clients110 und Servers130 empfangen. Spezifisch stellt der Server130 als Antwort auf eine Anfrage von dem Client110 eine Kopie einer Internetseite224a in dem Speicher232 dem Client110 bereit. Der Client110 umfasst ebenso eine Eingabevorrichtung216 , wie eine Tastatur, einen Touchscreen oder eine Maus, um Scroll-/Ansicht-Eingaben des Nutzers zu empfangen. - Der Prozessor
212 des Clients110 ist so konfiguriert, dass er Anweisungen ausführt, wie Instruktionen bzw. Anweisungen, die physikalisch in den Prozessor212 codiert wurden, Anweisungen, die von Software in dem Speicher240 empfangen wurden, oder eine Kombination aus beiden. Beispielsweise führt der Prozessor212 des Clients110 Anweisungen von dem Web-Browser222 so aus, dass eine Anfrage zum Anzeigen von Inhalt, wie der Internetseite224b , empfangen und der Inhalt in einen ersten anzeigbaren Teil, der auf einer Größe eines Viewports des Clients110 basiert, und einen zweiten anzeigbaren Teil, der außerhalb des Viewports liegt, aufgeteilt wird. Die anzeigbaren Teile können jeweils in gleich große Tiles beliebiger Länge unterteilt werden. Wenn der Viewport der Vorrichtung 480 Pixel mal 800 Pixel beträgt, dann kann beispielsweise der erste anzeigbare Teil (z. B. der Teil in dem Viewport) in zwei mal drei Reihen von Tiles unterteilt werden, wobei jedes Tile 240 Pixel breit und 267 Pixel hoch ist. Der Prozessor212 rendert (z. B. vorbereitet zum Anzeigen) den ersten anzeigbaren Teil der Internetseite224b und zeigt ihn innerhalb des Viewports an. - Der Prozessor
212 ist ebenso so konfiguriert, dass er eine Teilmenge des zweiten anzeigbaren Teils der Internetseite224b , d. h. den anzeigbaren Teil der Internetseite224b , der außerhalb des Viewports liegt, basierend auf einer zuvor bestimmten Regel zum Off-Screen-Rendern auswählt und die ausgewählte Teilmenge des zweiten anzeigbaren Teils des Inhalts off-screen rendert. Die zuvor bestimmte Regel kann eine oder mehrere Bedingung(en) zum Bestimmen, welche Off-Screen-Tiles zum Vor-Rendern ausgewählt werden, und der Reihenfolge, in der die ausgewählten Off-Screen-Tiles vor-gerendert werden, umfassen. Die zuvor bestimmte Regel kann auf dem Inhalt der Internetseite224b , einem Betrachtungs- bzw. Ansichtsverlauf des Nutzers und/oder einer Nähe der Teilmenge bzw. des Subsatzes des zweiten anzeigbaren Teils zu dem Viewport basieren. - Nunmehr wird eine Liste exemplarischer Bedingungen für die zuvor bestimmte Regel angegeben. Der Prozessor
212 kann zum Beispiel ein Tile, das sich off-screen unter dem Viewport befindet, zum Off-Screen-Rendern auswählen, bevor er ein Tile zum Off-Screen-Rendern auswählt, das sich off-screen über dem Viewport befindet, und ein Tile, das sich off-screen rechts vom Viewport befindet, zum Off-Screen-Rendern auswählen, bevor er ein Tile zum Off-Screen-Rendern auswählt, das sich off-screen links vom Viewport befindet. Dies ist von Vorteil, da ein Nutzer dahin tendiert, nach rechts und nach unten zu scrollen, um weiteren Inhalt anzusehen, aufgrund der Natur der Richtung des Inhalts (z. B. verläuft englischer Text von links nach rechts, und eine neue Zeile englischer Text setzt sich unter einer aktuellen Textzeile fort), somit ist es eher wahrscheinlich, dass der Nutzer die Internetseite224b eher nach rechts als nach links und nach unten als nach oben scrollen wird. In bestimmten Aspekten kann der Prozessor212 daher ein Tile, dass sich off-screen in der Leserichtung des Inhalts befindet, vor einem Tile, dass sich off-screen in der Richtung entgegengesetzt zur Leserichtung des Inhalts befindet, zum Off-Screen-Rendern auswählen. - Der Prozessor
212 kann ebenso ein erstes off-screen angeordnetes Tile zum Off-Screen-Rendern auswählen, das näher an dem Viewport liegt, bevor er ein zweites off-screen angeordnetes bzw. befindliches Tile zum Off-Screen-Rendern auswählt, das weiter weg ist von dem Viewport als das erste Tile. Dies ist von Vorteil, da ein Nutzer dazu tendiert, off-screen eher zu Inhalt zu scrollen, der off-screen näher zu Inhalt liegt, den der Nutzer ansieht, als Inhalt, der weiter weg ist von dem Inhalt, den der Nutzer ansieht. In ähnlicher Weise kann der Prozessor212 ein off-screen befindliches Tile in der Richtung der letzten Scroll-Eingabe durch den Nutzer zum Off-Screen-Rendern auswählen, bevor er ein off-screen befindliches Tile in der Richtung entgegengesetzt zu der Richtung der letzten Scroll-Eingabe durch den Nutzer auswählt. Dies ist ein Vorteil, da ein Nutzer dazu tendiert, Scrollen in einer einzigen Richtung fortzusetzen, wenn er sich Inhalt ansieht. Der Prozessor212 kann ebenso die Scrollgeschwindigkeit des Nutzers vorhersagen, um das vorhergesagte Scrollziel eines nächsten Scrollens des Nutzers zu bestimmen, und Tiles, die mit dem Zielinhalt in Verbindung stehen, entsprechend zu rendern. Wenn ein Nutzer sehr schnell zu einem Zielinhalt gescrollt hat, der ziemlich weit entfernt ist von dem Viewport, dann kann beispielsweise der Prozessor212 den nächsten Zielinhalt, der ziemlich weit entfernt ist von dem Viewport, vorhersagen und Tiles für diesen Inhalt off-screen im Voraus rendern. - Die Anzahl an Tiles, die vor-gerendert werden, kann basierend auf dem Platz an Speicher, der Verarbeitungskapazität und der Batterieleistung, die für den Client
110 verfügbar sind, begrenzt werden. Wenn die Speichergrenze insgesamt sechs Tiles für ein Off-Screen-Rendern zulässt, dann können beispielsweise vier Tiles unter dem Viewport und zwei Tiles über dem Viewport zum Off-Screen-Rendern ausgewählt werden. Wenn die Speichergrenze, die Verarbeitungskapazität und die Batterieleistung eine große Anzahl an Tiles zum Off-Screen-Rendern zulassen, dann können in ähnlicher Weise zwei oder mehr Tiles außerhalb des Viewports in jede Richtung (z. B. oben, unten, links, rechts und in diagonalen Richtungen) off-screen gerendert werden. -
3 veranschaulicht einen exemplarischen Prozess300 unter Verwendung des exemplarischen Clients110 von2 zum selektiven Vor-Rendern von Off-Screen-Inhalt zum Anzeigen, bevor der Inhalt auf den Bildschirm bzw. on-screen kommt. Der Prozess300 beginnt mit einer Durchführung von Schritt301 , wenn ein Nutzer eine Anwendung, wie einen Web-Browser222 auf den Client110 herunterlädt, die Inhalt, wie eine heruntergeladene Internetseite224b enthält, die für eine Anzeige verfügbar ist. In Schritt302 wird eine Anfrage zum Anzeigen des Inhalts auf dem Client110 empfangen. In Schritt303 wird der Inhalt in einen ersten anzeigbaren Teil bzw. Abschnitt, der auf der Größe eines Viewports der Vorrichtung basiert, und einen zweiten anzeigbaren Teil, der außerhalb des Viewports liegt, unterteilt. Der erste anzeigbare Teil des Inhalts wird in Schritt304 gerendert und innerhalb des Viewports angezeigt, und in Schritt305 wird eine Teilmenge des zweiten anzeigbaren Teils des Inhalts zum Off-Screen-Rendern basierend auf einer zuvor bestimmten Regel ausgewählt. Schließlich wird in Schritt306 die ausgewählte Teilmenge des zweiten anzeigbaren Teils des Inhalts off-screen gerendert, und der Prozess300 endet in Schritt307 . -
3 stellt einen exemplarischen Prozess300 zum selektiven Vor-Rendern von Off-Screen-Inhalt zum Anzeigen, bevor der Inhalt auf den Bildschirm kommt, unter Verwendung des exemplarischen Clients110 von2 dar. Nunmehr wird ein Beispiel unter Verwendung des exemplarischen Prozesses300 von3 , eines Smartphone-Clients110 mit einem kleinen Viewport, eines mobilen Web-Browsers222 und einer Client-Kopie einer Internetseite224b beschrieben. - Der Prozess
300 beginnt mit einer Durchführung von Schritt301 , wenn ein Nutzer einen mobilen Web-Browser222 auf das Smartphone110 des Nutzers herunterlädt. Der mobile Web-Browser222 hat eine Internetseite224b heruntergeladen, die der Nutzer ansehen möchte. In Schritt302 fragt der Nutzer ein Anzeigen der Internetseite224b in dem mobilen Web-Browser222 an. In Schritt303 unterteilt der mobile Web-Browser222 die Internetseite224b in einen ersten anzeigbaren Teil, der auf einer Größe eines Viewports des Smartphones110 basiert, und einen zweiten anzeigbaren Teil, der außerhalb des Viewports des Smartphones110 liegt. Genauer gesagt, werden der erste und zweite anzeigbare Teil jeweils in gleich große Tiles unterteilt, wie in4 , einer exemplarischen Darstellung der Internetseite224b , veranschaulicht. In Schritt304 werden die Tiles aus dem ersten anzeigbaren Teil des Inhalts, nämlich die Tiles404 ,406 ,408 ,410 ,412 und414 , gerendert und innerhalb des Viewports402 angezeigt. - In Schritt
305 wird eine Teilmenge des zweiten anzeigbaren Teils des Inhalts gemäß den folgenden Bedingungen bzw. Beschränkungen ausgewählt. Tiles der Internetseite224b , die sich off-screen unter dem Viewport402 befinden, nämlich die Tiles420 und422 , werden zum Off-Screen-Rendern ausgewählt, bevor Tiles, die sich off-screen über dem Viewport402 befinden, nämlich die Tiles416 und418 , zum Off-Screen-Rendern ausgewählt werden. Als nächstes werden Tiles, die sich off-screen rechts vom Viewport402 befinden, nämlich die Tiles424 ,426 und428 , zum Off-Screen-Rendern ausgewählt, bevor Tiles, die sich off-screen links vom Viewport402 befinden, nämlich430 ,432 und434 , zum Off-Screen-Rendern ausgewählt werden. Da ausreichend Speicher, Verarbeitungskapazität und Batterieleistung zum Off-Screen-Rendern von zusätzlichen Tiles verbleiben, werden zusätzliche Tiles unter dem Viewport402 , nämlich die Tiles436 und438 , zum Off-Screen-Rendern ausgewählt. Schließlich wird in Schritt306 die ausgewählte Teilmenge an Tiles, nämlich die Tiles416 bis438 , off-screen gerendert, und der Prozess300 endet in Schritt307 . -
5 ist ein Blockdiagramm, das ein exemplarisches Computersystem500 veranschaulicht, mit dem der Client110 und der Server130 aus2 implementiert werden können. In bestimmten Aspekten kann das Computersystem500 unter Verwendung von Hardware oder einer Kombination von Software und Hardware, entweder in einem zweckbestimmten Server, oder integriert in einer anderen Einheit, oder verteilt auf mehrere Einheiten implementiert werden. - Das Computersystem
500 (z. B. der Client110 und der Server130 ) umfasst einen Bus508 oder einen anderen Kommunikationsmechanismus zur Übertragung von Information, und einen Prozessor502 (z. B. den Prozessor212 und236 ), der mit dem Bus508 zur Verarbeitung von Information gekoppelt ist. Zum Beispiel kann das Computersystem500 mit einem oder mehreren Prozessor(en)502 implementiert sein bzw. werden. Der Prozessor502 kann ein universeller Mikroprozessor, ein Mikrocontroller, ein digitaler Signalprozessor (DSP), eine anwendungsspezifische integrierte Schaltung (ASIC), ein frei programmierbares Gate Array bzw. Verknüpfungsfeld (FPGA), ein programmierbarer Logikbaustein (PLD), ein Controller bzw. eine Regel- bzw. Steuereinrichtung, eine Zustandsmaschine, ein Logikgatter, einzelne bzw. diskrete Hardwarekomponenten oder irgendeine andere geeignete Einheit sein, die Berechnungen oder andere Handhabungen von Information durchführen kann. - Das Computersystem
500 kann neben Hardware einen Code umfassen, der eine Ausführungsumgebung für das in Frage stehende Computerprogramm erzeugt, z. B. einen Code, der Prozessor-Firmware bildet, einen Protokollstapelspeicher, ein Datenbankverwaltungssystem, ein Betriebssystem oder eine Kombination aus einem oder mehreren von diesen, abgelegt bzw. gespeichert in einem einbezogenen Speicher504 (z. B. den Speichern220 und232 ), wie einem Schreib-Lese-Speicher (RAM), einem Flash-Speicher, einem Nur-Lese-Speicher (ROM), einem programmierbaren Nur-Lese-Speicher (PROM), einem löschbaren PROM (EPROM), Registern, einer Festplatte, einer Wechselplatte, einer CD-ROM, einer DVD oder einer anderen geeigneten Speichervorrichtung, der zum Ablegen der Information und Anweisungen, die von dem Prozessor502 ausgeführt werden sollen, mit dem Bus508 gekoppelt ist. Der Prozessor502 und der Speicher504 können durch eine zweckspezifische Logikschaltung ergänzt oder in eine solche aufgenommen sein bzw. werden. - Die Anweisungen können in dem Speicher
504 gespeichert und in einem oder mehreren Computerprogrammprodukt(en) implementiert sein bzw. werden, d. h. in einem oder mehreren Modul(en) von Computerprogrammanweisungen, die auf einem computerlesbaren Medium codiert sind für eine Ausführung durch das Computersystem500 oder um dessen Betrieb zu regeln bzw. zu steuern, und gemäß einem Verfahren, das dem Fachmann allgemein bekannt ist, beinhaltend, jedoch nicht beschränkt auf Computersprachen, wie datenorientierte Sprachen (z. B. SQL, dBase), Systemsprachen (z. B. C, Objective-C, C++, Assembly), Programmiersprachen (z. B. Java, .NET) und Applikationssprachen (z. B. PHP, Ruby, Perl, Python). Anweisungen können auch in Computersprachen, wie Array- bzw. Feldsprachen, Aspekt-orientierten Sprachen, Assemblersprachen, Authoring-Sprachen, Befehlszeilenschnittstellensprachen, kompilierten Sprachen, konkurrierenden Sprachen, Curly-Bracket-Sprachen, Datenflusssprachen, datenstrukturierten Sprachen, beschreibenden Sprachen, esoterischen Sprachen, Erweiterungssprachen, Sprachen der vierten Generation, funktionellen bzw. Funktionssprachen, Dialogsprachen, interpretierten Sprachen, iterativen Sprachen, Listen-basierenden Sprachen, kleinen Sprachen, Logik-basierenden Sprachen, Maschinensprachen, Makrosprachen, Metaprogrammiersprachen, Mehrfachmustersprachen, Nicht-Englisch-basierenden Sprachen numerischer Analyse, objektorientierten klassenbasierten Sprachen, objektorientierten prototypbasierten Sprachen, Off-Side-Regelsprachen, prozeduralen Sprachen, reflektiven Sprachen, regelbasierten Sprachen, Scriptsprachen, stack-basierenden Sprachen, Synchronsprachen, Syntax-Handling-Sprachen, visuellen Sprachen, Wirth-Sprachen und xml-basierten Sprachen implementiert sein bzw. werden. Der Speicher504 kann während einer Ausführung der Anweisungen, die durch den Prozessor502 ausgeführt werden sollen, auch zum Ablegen bzw. Speichern vorübergehend veränderbarer oder anderer Zwischeninformationen verwendet werden. - Ein wie hierin erörtertes Computerprogramm entspricht nicht notwendigerweise einer Datei bzw. einem File in einem Dateisystem. Ein Programm kann in einem Teil einer Datei, der andere Programme oder Daten beinhaltet (z. B. ein oder mehrere Script(e), das bzw. die in einem Markup-Language-Dokument bzw. Auszeichnungssprachendokument gespeichert ist bzw. sind), in einer einzigen Datei, die dem in Frage stehenden Programm zugeordnet ist, oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Modul(e), Teilprogramm(e) oder Teil(e) eines Codes speichern) gespeichert werden. Ein Computerprogramm kann entwickelt bzw. eingesetzt werden, dass es auf einem Computer oder auf mehreren Computern ausgeführt wird, die sich an einer Stelle befinden oder über mehrere Stellen verteilt sind und durch ein Kommunikationsnetzwerk miteinander verbunden sind. Die in dieser Beschreibung beschriebenen Prozesse und Logikabläufe können von einem oder mehreren programmierbaren Prozessor(en) durchgeführt werden, der/die ein oder mehrere Computerprogramm(e) zum Ausführen von Funktionen ausführt/ausführen, indem er/sie auf Eingabedaten zugreift/zugreifen und eine Ausgabe erzeugt/erzeugen.
- Das Computersystem
500 umfasst ferner eine Datenspeichervorrichtung506 , wie eine Magnetplatte oder eine optische Platte, die zum Speichern von Information und Anweisungen mit dem Bus508 gekoppelt ist. Das Computersystem500 kann über ein Eingabe-/Ausgabemodul510 an verschiedene Vorrichtungen gekoppelt sein bzw. werden. Das Eingabe-/Ausgabemodul510 kann irgendein Eingabe-/Ausgabemodul sein. Exemplarische Eingabe-/Ausgabemodule510 umfassen Datenports, wie USB-Ports. Das Eingabe-/Ausgabemodul510 ist so konfiguriert, dass es mit einem Kommunikationsmodul512 verbunden werden kann. Exemplarische Kommunikationsmodule512 (z. B. die Kommunikationsmodule218 und238 ) umfassen Netzwerk-Schnittstellenkarten, wie Ethernet-Karten und Modems. In bestimmten Aspekten ist das Eingabe-/Ausgabemodul510 so konfiguriert, dass es mit mehreren Vorrichtungen, wie einer Eingabevorrichtung514 (z. B. der Eingabevorrichtung216 ) und/oder einer Ausgabevorrichtung516 (z. B. der Ausgabevorrichtung214 ) verbunden ist. Exemplarische Eingabevorrichtungen514 umfassen eine Tastatur und ein Zeigegerät, z. B. eine Maus oder einen Track-Ball, durch welche ein Nutzer eine Eingabe in das Computersystem500 zur Verfügung stellen kann. Andere Arten von Eingabevorrichtungen514 können überdies verwendet werden, um eine Interaktion mit einem Nutzer zur Verfügung zu stellen, wie eine haptische bzw. taktile Eingabevorrichtung, eine visuelle Eingabevorrichtung, eine Toneingabevorrichtung oder Brain-Computer-Interface-Vorrichtung. Beispielsweise kann eine dem Nutzer bereitgestellte Rückmeldung jedwede Form einer sensorischen Rückmeldung, z. B. eine visuelle Rückmeldung, Audio-Rückmeldung oder taktile Rückmeldung sein; und eine Eingabe von dem Nutzer kann in irgendeiner Form empfangen werden, beinhaltend Hör-, Sprach-, Tast- oder Hirnstrom-Eingabe. Exemplarische Ausgabevorrichtungen516 umfassen Anzeigevorrichtungen, wie einen CRT-(Kathodenstrahlröhren) oder LCD-(Flüssigkristallanzeige-)Monitor, für ein Anzeigen von Information an den Nutzer. - Gemäß einem Aspekt der vorliegenden Offenbarung können der Client
110 und der Server130 unter Verwendung eines Computersystems500 als Antwort auf den Prozessor502 implementiert werden, der eine oder mehrere Sequenz(en) einer oder mehrerer Anweisung(en) ausführt, die in dem Speicher504 enthalten sind. Derartige Anweisungen können von einem anderen maschinenlesbaren Medium, wie der Datenspeichervorrichtung506 , in den Speicher504 eingelesen werden. Eine Ausführung der Sequenzen von Anweisungen, die in dem Hauptspeicher504 enthalten sind, veranlasst den Prozessor502 zur Durchführung der hierin beschriebenen Prozessschritte. Zur Ausführung der Anweisungssequenzen, die in dem Speicher504 enthalten sind, kann bzw. können auch ein oder mehrere Prozessor(en) in einer Multiprozessoranordnung eingesetzt werden. In alternativen Aspekten kann eine fest verdrahtete Schaltung an Stelle von oder in Kombination mit Softwareanweisungen zur Implementierung von verschiedenen Aspekten der vorliegenden Offenbarung verwendet werden. Daher sind Aspekte der vorliegenden Offenbarung nicht auf irgendeine spezifische Kombination von Hardware-Schaltung und Software beschränkt. - Verschiedene Aspekte des in dieser Beschreibung beschriebenen Gegenstands können in einem Computersystem implementiert sein bzw. werden, das eine Back-End-Komponente umfasst, z. B. als einen Datenserver, oder das eine Middleware-Komponente umfasst, z. B. einen Anwenderserver, oder das eine Front-End-Komponente umfasst, z. B. einen Client-Computer mit einer graphischen Nutzer-Schnittstelle oder einem Web-Browser, durch den ein Nutzer mit einer Implementierung des in dieser Beschreibung beschriebenen Gegenstands interagieren kann, oder eine Kombination von einer oder mehreren dieser Back-End-Middleware- oder Front-End-Komponenten. Die Komponenten des Systems können in irgendeiner Form oder irgendeinem Medium einer digitalen Datenkommunikation, z. B. einem Kommunikationsnetzwerk, miteinander verbunden werden. Das Kommunikationsnetzwerk (z. B. das Netzwerk
150 ) kann zum Beispiel eines oder mehrere von einem Personal Area Network (PAN), einem Local Area Network (LAN), einem Campus Area Network (CAN), einem Metropolitan Area Network bzw. Stadtbereichsnetzwerk (MAN), einem Wide Area Network bzw. Langstreckennetzwerk (WAN), einem Broadband Network bzw. Breitbandnetzwerk (BBN), dem Internet und dergleichen umfassen. Ferner kann das Kommunikationsnetzwerk eine oder mehrere der folgenden Netzwerktopologien umfassen, beinhaltend ein Bus-Netzwerk, ein sternförmiges Netzwerk, ein Ring-Netzwerk, ein Maschennetzwerk, ein Stern-Bus-Netzwerk, ein Baum- oder hierarchisches Netzwerk und dergleichen, ist aber nicht darauf beschränkt. Die Kommunikationsmodule können zum Beispiel Modems oder Ethernet-Karten sein. - Das Computersystem
500 kann Clients und Server umfassen. Ein Client und ein Server sind im Allgemeinen entfernt voneinander und interagieren für gewöhnlich über ein Kommunikationsnetzwerk. Die Beziehung von Client und Server entsteht durch Computerprogramme, die auf den jeweiligen Computern laufen und über eine Client-Server-Beziehung zueinander verfügen. Das Computersystem500 kann beispielsweise und ohne Einschränkung ein Desktop-Computer, ein Laptop-Computer oder ein Tablet-Computer sein. Das Computersystem500 kann auch in einer anderen Vorrichtung eingebettet sein bzw. werden, wie zum Beispiel und ohne Einschränkung einem Mobiltelefon, einem PDA-Computer, einem mobilen Audio-Player, einem globalen Positioniersystem-(GPS-)-Empfänger, einer Videospiel-Konsole und/oder einer Fernseh-Settop-Box. - Wie hierin verwendet, bezieht sich der Ausdruck ”maschinenlesbares Speichermedium” oder ”computerlesbares Medium” auf irgendein Medium oder Medien, das bzw. die an der Bereitstellung von Anweisungen an den Prozessor
502 zur Ausführung beteiligt ist bzw. sind. Ein solches Medium kann in irgendeiner Form vorliegen, einschließlich, aber nicht beschränkt auf permanente Medien, nicht-permanente bzw. flüchtige Medien und Übertragungsmedien. Permanente bzw. nicht-flüchtige Medien umfassen zum Beispiel optische oder Magnetplatten, wie die Datenspeichervorrichtung506 . Nicht-permanente Medien umfassen einen dynamischen Speicher, wie den Speicher504 . Übertragungsmedien umfassen Koaxialkabel, Kupferdraht und Faseroptik, einschließlich der Drähte, die der Bus508 umfasst. Übliche bzw. allgemeine Formen für maschinenlesbare Medien umfassen zum Beispiel Floppydisk, Diskette, Festplatte, Magnetband, jedwedes andere magnetische Medium, eine CD-ROM, DVD, jedwedes andere optische Medium, Lochkarten, Lochstreifen, jedwedes andere physikalische Medium mit Lochmustern, ein RAM, ein PROM, ein EPROM, ein FLASH EPROM, jedwede(r) andere Speicherchip oder -kassette, oder jedwedes andere Medium, von dem ein Computer lesen kann. Das maschinenlesbare Speichermedium kann eine maschinenlesbare Speichervorrichtung, ein maschinenlesbares Speichersubstrat, eine Speichervorrichtung, eine Zusammensetzung von Materie, die ein maschinenlesbares verbreitetes Signal bewirkt bzw. erzeugt, oder eine Kombination von einem oder mehreren davon sein. - Es wurden Systeme, Verfahren, Anwendungen und maschinenlesbare Speichermedien zum selektiven Vor-Rendern von Off-Screen-Inhalt für eine Anzeige, bevor der Inhalt auf den Bildschirm einer Vorrichtung gelangt, beschrieben. Eine Anwendung erhält Inhalt zum Anzeigen auf einer Vorrichtung. Der zum Anzeigen des gesamten Inhalts erforderliche Raum übersteigt jedoch den Raum bzw. Platz, der von dem Viewport der Vorrichtung bereitgestellt wird. Die Anwendung rendert eine Teilmenge des Inhalts, der off-screen erscheint, vor dem Inhalt, der auf dem Bildschirm bzw. on-screen erscheint, vor, um so Ladezeit für den Nutzer zu sparen. Die Teilmenge des Inhalts wird für ein Vor-Rendern basierend auf bestimmten Bedingungen ausgewählt, wie beispielsweise, was der Inhalt ist, der Nähe der Teilmenge des Off-Screen-Inhalts zum Viewport und dem Ansichtsverlauf des Nutzers.
- Während diese Beschreibung viele Details enthält, sollten diese nicht als Einschränkungen des beanspruchten Umfangs ausgelegt werden, sondern eher als Beschreibungen besonderer Implementierungen des Gegenstands. Bestimmte Merkmale, die in dieser Beschreibung im Zusammenhang mit einzelnen bzw. getrennten Ausführungsformen beschrieben wurden, können auch in Kombination in einer einzigen Ausführungsform implementiert sein bzw. werden. Umgekehrt können verschiedene Merkmale, die im Zusammenhang mit einer einzigen Ausführungsform beschrieben wurden, separat oder in einer geeigneten Subkombination auch in mehreren Ausführungsformen implementiert werden. Obgleich Merkmale oben als in bestimmten Kombinationen funktionierend beschrieben und anfänglich auch als solche beansprucht wurden, können überdies in einigen Fällen ein oder mehrere Merkmal(e) aus einer beanspruchten Kombination aus der Kombination heraus entnommen werden, und die beanspruchte Kombination kann auf eine Subkombination oder Variante einer Subkombination gerichtet sein bzw. werden.
- Während Vorgänge in den Zeichnungen in einer bestimmten Reihenfolge dargestellt sind, sollte dies in ähnlicher Weise nicht so verstanden werden, dass diese Vorgänge in der bestimmten gezeigten Reihenfolge oder in einer sequentiellen Reihenfolge durchgeführt werden müssen, oder dass alle dargestellten Vorgänge durchgeführt werden müssen, um gewünschte Ergebnisse zu erzielen. Unter bestimmten Umständen können ein Multitasking und parallele Verarbeitung von Vorteil sein. Überdies sollte die Trennung verschiedener Systemkomponenten in den oben beschriebenen Aspekten nicht so verstanden werden, dass eine solche Trennung in allen Aspekten erforderlich ist, und es sollte verstanden werden, dass die beschriebenen Programmkomponenten und -systeme im Allgemeinen zusammen in einem einzigen Softwareprodukt integriert oder in mehreren Softwareprodukten verpackt sein können.
- Der Gegenstand dieser Beschreibung wurde hinsichtlich bestimmter Aspekte beschrieben, wobei aber auch andere Aspekte implementiert werden können, und im Umfang der folgenden Ansprüche liegen. Beispielsweise können die in den Ansprüchen zitierten Aktionen in einer unterschiedlichen Reihenfolge vorgenommen werden und doch die gewünschten Ergebnisse liefern. Als ein Beispiel erfordern die in den beigefügten Zeichnungen dargestellten Prozesse nicht notwendigerweise die spezielle gezeigte Reihenfolge oder sequentielle Folge, um gewünschte Ergebnisse zu erzielen. In bestimmten Ausführungen bzw. Implementierungen können ein Multitasking und eine parallele Verarbeitung von Vorteil sein. Andere Varianten bzw. Abwandlungen liegen im Umfang der folgenden Ansprüche.
- Diese und andere Ausführungen liegen im Umfang der folgenden Ansprüche.
- Gemäß einem Aspekt wird ein Web-Browser-Produkt bereitgestellt, das selektiv einen Off-Screen-Inhalt zum Anzeigen vor-rendert, bevor der Inhalt auf den Bildschirm einer Vorrichtung gelangt, wobei das Web-Browser-Produkt umfasst (insbesondere computerlesbare Anweisungen, die beim Herunterladen und Ausführen auf einem geeigneten System bereitstellen): einen Anzeigebereich, der auf der Größe eines Viewports der Vorrichtung basiert, der so konfiguriert ist, dass er Inhalt bzw. Content auf der Vorrichtung anzeigt, wobei der Inhalt in einen ersten anzeigbaren Teil bzw. Abschnitt, der auf einer Größe des Anzeigebereichs basiert, und einen zweiten anzeigbaren Teil, der außerhalb des Anzeigebereichs liegt, unterteilt wird, wobei der erste anzeigbare Teil und der zweite anzeigbare Teil jeweils in gleich große Tiles unterteilt sind bzw. werden, wobei der erste anzeigbare Teil des Inhalts gerendert und innerhalb des Anzeigebereichs angezeigt wird, und wobei eine Teilmenge bzw. ein Subsatz des zweiten anzeigbaren Teils des Inhalts für ein Off-Screen-Rendern basierend auf einer zuvor bestimmten Regel ausgewählt wird, wobei die zuvor bestimmte Regel insbesondere auf zumindest einem von dem Inhalt, einem Betrachtungs- bzw. Ansichtsverlauf eines Nutzers bzw. Verwenders und einer Nähe der Teilmenge des zweiten anzeigbaren Teils zum Viewport basiert. Es versteht sich bzw. sollte verstanden werden, dass das Web-Browser-Produkt als ein Computerprogrammprodukt ausgeführt bzw. verkörpert werden kann, welches insbesondere greifbar auf einem computerlesbaren Medium oder als ein Datenstrom oder -signal verkörpert ist, das bei einem Laden und Ausführen auf einem geeigneten System einem Nutzer einen Web-Browser oder Navigationsdienste bereitstellt. Ein Web-Browser-Produkt ermöglicht insbesondere ein Ausführen einer computerimplementierten oder Software-Applikation für ein Wiederauffinden, Präsentieren und/oder Durchlaufen von Informationsressourcen (wie im World Wide Web), um beispielsweise Informationsressourcen zu dem Nutzer zu bringen. Dies kann insbesondere durch eine Nutzung einer Nutzer-Schnittstelle erreicht werden, die speziell auf dem Gebiet des Industriedesigns einer Mensch-Maschine-Interaktion der Raum ist, wo ein Zusammenwirken bzw. eine Interaktion zwischen Menschen und Maschinen stattfindet. Ein Ziel eines Zusammenwirkens zwischen einem Menschen und einer Maschine an der Nutzer-Schnittstelle bzw. dem Nutzer-Interface ist ein effektiver Betrieb und/oder eine Regelung bzw. Steuerung der Maschine und/oder eine Rückmeldung bzw. ein Feedback von der Maschine, welches dem Operator bzw. Betreiber beispielsweise dabei hilft, betriebliche Entscheidungen zu treffen. Beispiele für dieses breite Konzept von Nutzer-Schnittstellen umfassen die interaktiven Aspekte von Computerbetriebssystemen, Handwerkzeugen, Operatorsteuerungen von schwerem bzw. großem Gerät und/oder Prozesssteuerungen.
- Die Erfindung kann in Verbindung mit einem computer-implementierten Verfahren zum selektiven Vor-Rendern von Off-Screen-Inhalt zum Anzeigen, bevor der Inhalt auf den Bildschirm einer Vorrichtung gelangt, verwendet werden, wobei das Verfahren umfasst: ein Empfangen einer Anfrage zum Anzeigen von Inhalt auf einer Vorrichtung; ein Unterteilen des Inhalts in einen ersten anzeigbaren Teil bzw. Abschnitt, der auf einer Größe eines Viewports der Vorrichtung basiert, und einen zweiten anzeigbaren Teil, der außerhalb des Viewports liegt; ein Rendern und Anzeigen des ersten anzeigbaren Teils des Inhalts innerhalb des Viewports; und ein Auswählen einer Teilmenge bzw. eines Subsatzes des zweiten anzeigbaren Teils des Inhalts für ein Off-Screen-Rendern basierend auf einer zuvor bestimmten Regel.
- Im Besonderen umfasst das Verfahren ferner ein Off-Screen-Rendern der ausgewählten Teilmenge des zweiten anzeigbaren Teils des Inhalts.
- Noch spezieller basiert die zuvor bestimmte Regel auf zumindest einem von Inhalt, einem Ansichtsverlauf eines Nutzers und einer Nähe der Teilmenge des zweiten anzeigbaren Teils zum Viewport.
- Noch spezieller sind der erste anzeigbare Teil und der zweite anzeigbare Teil jeweils in gleich große Tiles unterteilt.
- Noch spezieller umfasst die zuvor bestimmte Regel ein Auswählen eines Tees, das sich off-screen unter dem Viewport befindet, für ein Off-Screen-Rendern, vor einem Auswählen eines Tiles, das sich off-screen über dem Viewport befindet, für ein Off-Screen-Rendern.
- Noch spezieller umfasst die zuvor bestimmte Regel ein Auswählen eines Tiles, das sich off-screen rechts vom Viewport befindet, für ein Off-Screen-Rendern, vor einem Auswählen eines Tiles, das sich off-screen links vom Viewport befindet, für ein Off-Screen-Rendern.
- Noch spezieller umfasst die zuvor bestimmte Regel ein Auswählen eines ersten off-screen befindlichen Tiles für ein Off-Screen-Rendern, das näher an dem Viewport liegt, vor einem Auswählen eines zweiten off-screen befindlichen Tiles für ein Off-Screen-Rendern, das weiter entfernt ist von dem Viewport als das erste Tile.
- Noch spezieller umfasst die zuvor bestimmte Regel ein Auswählen eines off-screen befindlichen Tiles in der Leserichtung des Inhalts für ein Off-Screen-Rendern vor einem off-screen befindlichen Tile in der Richtung entgegengesetzt zur Leserichtung des Inhalts.
- Noch spezieller umfasst die zuvor bestimmte Regel ein Auswählen eines off-screen befindlichen Tiles in der Richtung der letzten Scroll-Eingabe durch den Nutzer für ein Off-Screen-Rendern vor einem off-screen befindlichen Tile in der Richtung entgegengesetzt zu der Richtung der letzten Scroll-Eingabe durch den Nutzer.
- Es werden computer-implementierte Verfahren zum selektiven Vor-Rendern von Off-Screen-Inhalt zum Anzeigen, bevor der Inhalt auf den Bildschirm einer Vorrichtung bzw. on-screen gelangt, bereitgestellt. In einem Aspekt umfasst bzw. beinhaltet ein Verfahren ein Empfangen einer Anfrage zum Anzeigen von Inhalt auf einer Vorrichtung und ein Unterteilen des Inhalts in einen ersten anzeigbaren Teil, der auf einer Größe eines Viewports der Vorrichtung basiert, und einen zweiten anzeigbaren Teil, der außerhalb des Viewports liegt. Das Verfahren umfasst ebenso ein Rendern und Anzeigen des ersten anzeigbaren Teils des Inhalts innerhalb des Viewports und ein Auswählen einer Teilmenge des zweiten anzeigbaren Teils des Inhalts für ein Off-Screen-Rendern, basierend auf einer zuvor bestimmten Regel. Es werden ebenso Systeme, graphische Nutzer-Schnittstellen und maschinenlesbare Medien bereitgestellt.
Claims (23)
- Computersystem zum selektiven Vor-Rendern eines Off-Screen-Inhalts zum Anzeigen, bevor der Inhalt auf den Bildschirm einer Vorrichtung gelangt, wobei das System einen Prozessor umfasst, der konfiguriert ist für: ein Empfangen einer Anfrage zum Anzeigen eines Inhalts bzw. Contents auf einer Vorrichtung; ein Unterteilen des Inhalts in einen ersten anzeigbaren Teil bzw. Abschnitt, der auf einer Größe eines Viewports der Vorrichtung basiert, und einen zweiten anzeigbaren Teil, der außerhalb des Viewports liegt; ein Rendern und Anzeigen des ersten anzeigbaren Teils des Inhalts innerhalb des Viewports; und ein Auswählen einer Teilmenge bzw. eines Subsatzes des zweiten anzeigbaren Teils des Inhalts zum Off-Screen-Rendern basierend auf einer zuvor bestimmten Regel.
- System nach Anspruch 1, ferner umfassend ein Off-Screen-Rendern der ausgewählten Teilmenge des zweiten anzeigbaren Teils des Inhalts.
- System nach einem der vorangehenden Ansprüche, wobei die zuvor bestimmte Regel auf zumindest einem von dem Inhalt, einem Ansichtsverlauf eines Nutzers und einer Nähe der Teilmenge des zweiten anzeigbaren Teils zum Viewport basiert.
- System nach einem der vorangehenden Ansprüche, wobei der erste anzeigbare Teil und der zweite anzeigbare Teil jeweils in gleich große Tiles unterteilt sind.
- System nach einem der vorangehenden Ansprüche, wobei die zuvor bestimmte Regel ein Auswählen eines Tiles, das sich off-screen unter dem Viewport befindet, für ein Off-Screen-Rendern vor einem Auswählen eines Tiles, das sich off-screen über dem Viewport befindet, für ein Off-Screen-Rendern umfasst.
- System nach einem der vorangehenden Ansprüche, wobei die zuvor bestimmte Regel ein Auswählen eines Tiles, das sich off-screen rechts von dem Viewport befindet, für ein Off-Screen-Rendern vor einem Auswählen eines Tees, das sich off-screen links von dem Viewport befindet, für ein Off-Screen-Rendern umfasst.
- System nach einem der vorangehenden Ansprüche, wobei die zuvor bestimmte Regel ein Auswählen eines ersten off-screen befindlichen Tiles für ein Off-Screen-Rendern, das näher an dem Viewport liegt, vor einem Auswählen eines zweiten off-screen befindlichen Tiles für ein Off-Screen-Rendern, das weiter entfernt ist von dem Viewport als das erste Tile, umfasst.
- System nach einem der vorangehenden Ansprüche, wobei die zuvor bestimmte Regel ein Auswählen eines off-screen befindlichen Tiles in der Leserichtung des Inhalts für ein Off-Screen-Rendern vor einem off-screen befindlichen Tile in der Richtung entgegengesetzt zu der Leserichtung des Inhalts umfasst.
- System nach einem der vorangehenden Ansprüche, wobei die zuvor bestimmte Regel ein Auswählen eines off-screen befindlichen Tiles in der Richtung der letzten Scroll-Eingabe durch den Nutzer für Off-Screen-Rendern vor einem off-screen befindlichen Tile in der Richtung entgegengesetzt zu der Richtung der letzten Scroll-Eingabe durch den Nutzer umfasst.
- System zum selektiven Vor-Rendern eines Off-Screen-Inhalts zum Anzeigen, bevor der Inhalt auf den Bildschirm einer Vorrichtung gelangt, wobei das System umfasst: einen Speicher, der einen Inhalt zum Anzeigen umfasst; einen Prozessor, der so konfiguriert ist, dass er: eine Anfrage zum Anzeigen eines Inhalts auf einer Vorrichtung empfängt; den Inhalt in einen ersten anzeigbaren Teil bzw. Abschnitt, der auf einer Größe eines Viewports der Vorrichtung basiert, und einen zweiten anzeigbaren Teil, der außerhalb des Viewports liegt, unterteilt; den ersten anzeigbaren Teil des Inhalts rendert und innerhalb des Viewports anzeigt; und eine Teilmenge bzw. einen Subsatz des zweiten anzeigbaren Teils des Inhalts zum Off-Screen-Rendern basierend auf einer zuvor bestimmten Regel auswählt, wobei die zuvor bestimmte Regel auf zumindest einem von dem Inhalt, einem Ansichtsverlauf des Nutzers und einer Nähe der Teilmenge des zweiten anzeigbaren Teils zum Viewport basiert.
- System nach Anspruch 10, wobei der Prozessor ferner so konfiguriert ist, dass er die ausgewählte Teilmenge des zweiten anzeigbaren Teils des Inhalts off-screen rendert.
- System nach Anspruch 10 oder 11, wobei der Prozessor so konfiguriert ist, dass er den ersten anzeigbaren Teil und den zweiten anzeigbaren Teil in gleich große Tiles unterteilt.
- System nach einem der vorangehenden Ansprüche 10 bis 12, wobei die zuvor bestimmte Regel umfasst, dass der Prozessor ein Tile, das sich off-screen unter dem Viewport befindet, für ein Off-Screen-Rendern auswählt, bevor er ein Tile, das sich off-screen über dem Viewport befindet, für ein Off-Screen-Rendern auswählt.
- System nach einem der vorangehenden Ansprüche 10 bis 13, wobei die zuvor bestimmte Regel umfasst, dass der Prozessor ein Tile, das sich off-screen rechts vom Viewport befindet, für ein Off-Screen-Rendern auswählt, bevor er ein Tile, das sich off-screen links vom Viewport befindet, für ein Off-Screen-Rendern auswählt.
- System nach einem der vorangehenden Ansprüche 10 bis 14, wobei die zuvor bestimmte Regel umfasst, dass der Prozessor ein erstes off-screen befindliches Tile für ein Off-Screen-Rendern, das näher an dem Viewport liegt, auswählt, bevor er ein zweites off-screen befindliches Tile für ein Off-Screen-Rendern, das weiter entfernt ist von dem Viewport als das erste Tile, auswählt.
- System nach einem der vorangehenden Ansprüche 10 bis 15, wobei die zuvor bestimmte Regel umfasst, dass der Prozessor ein off-screen befindliches Tile in der Leserichtung des Inhalts für ein Off-Screen-Rendern auswählt, bevor er ein off-screen befindliches Tile in der Richtung entgegengesetzt zu der Leserichtung des Inhalts auswählt.
- System nach einem der vorangehenden Ansprüche 10 bis 16, wobei die zuvor bestimmte Regel umfasst, dass der Prozessor ein off-screen befindliches Tile in der Richtung der letzten Scroll-Eingabe durch den Nutzer für ein Off-Screen-Rendern auswählt, bevor er ein off-screen befindliches Tile in der Richtung entgegengesetzt zu der Richtung der letzten Scroll-Eingabe durch den Nutzer auswählt.
- Web-Browser-Produkt, das einen Off-Screen-Innalt zum Anzeigen selektiv vor-rendert, bevor der Inhalt auf den Bildschirm einer Vorrichtung gelangt, wobei das Web-Browser-Produkt umfasst: einen Anzeigebereich, basierend auf der Größe eines Viewports der Vorrichtung, der so konfiguriert ist, dass er den Inhalt auf der Vorrichtung anzeigt, wobei der Inhalt in einen ersten anzeigbaren Teil bzw. Abschnitt, der auf einer Größe des Anzeigebereichs basiert, und einen zweiten anzeigbaren Teil, der außerhalb des Anzeigebereichs liegt, unterteilt ist, wobei der erste anzeigbare Teil und der zweite anzeigbare Teil jeweils in gleich große Tiles unterteilt sind; wobei der erste anzeigbare Teil des Inhalts gerendert und innerhalb des Anzeigebereichs anzeigt wird, und wobei eine Teilmenge bzw. ein Subsatz des zweiten anzeigbaren Teils des Inhalts für ein Off-Screen-Rendern basierend auf einer zuvor bestimmten Regel ausgewählt wird, wobei die zuvor bestimmte Regel auf zumindest einem von dem Inhalt, einem Ansichtsverlauf des Nutzers und einer Nähe der Teilmenge des zweiten anzeigbaren Teils zum Viewport basiert.
- Web-Browser-Produkt nach Anspruch 18, wobei die ausgewählte Teilmenge des zweiten anzeigbaren Teils des Inhalts off-screen gerendert wird.
- Web-Browser-Produkt nach Anspruch 18 oder 19, wobei die zuvor bestimmte Regel umfasst: ein Auswählen eines Tiles, das sich off-screen unter dem Viewport befindet, für ein Off-Screen-Rendern vor einem Auswählen eines Tees, das sich off-screen über dem Viewport befindet, für ein Off-Screen-Rendern; ein Auswählen eines Tiles, das sich off-screen rechts vom Viewport befindet, für ein Off-Screen-Rendern vor einem Auswählen eines Tiles, das sich off-screen links vom Viewport befindet, für ein Off-Screen-Rendern; und ein Auswählen eines ersten off-screen befindlichen Tiles für ein Off-Screen-Rendern, das näher an dem Viewport liegt, vor einem Auswählen eines zweiten off-screen befindlichen Tiles für ein Off-Screen-Rendern, das weiter entfernt ist von dem Viewport als das erste Tile.
- Web-Browser-Produkt nach einem der vorangehenden Ansprüche 18 bis 20, wobei die zuvor bestimmte Regel ein Auswählen eines off-screen befindlichen Tiles in der Leserichtung des Inhalts für ein Off-Screen-Rendern vor einem off-screen befindlichen Tile in der Richtung entgegengesetzt zu der Leserichtung des Inhalts umfasst.
- Web-Browser-Produkt nach einem der vorangehenden Ansprüche 18 bis 21, wobei die zuvor bestimmte Regel ein Auswählen eines off-screen befindlichen Tiles in der Richtung der letzten Scroll-Eingabe durch den Nutzer für ein Off-Screen-Rendern vor einem off-screen befindlichen Tile in der Richtung entgegengesetzt zu der Richtung der letzten Scroll-Eingabe durch den Nutzer umfasst.
- Maschinenlesbares Speichermedium, umfassend maschinenlesbare Anweisungen, um einen Prozessor zu veranlassen, ein Verfahren zum selektiven Vor-Rendern eines Off-Screen-Inhalts zum Anzeigen auszuführen, bevor der Inhalt auf den Bildschirm einer Vorrichtung gelangt, wobei das Verfahren umfasst: ein Empfangen einer Anfrage zum Anzeigen eines Inhalts auf einer Vorrichtung; ein Unterteilen des Inhalts in gleich große Tiles; und ein Rendern und Anzeigen der Tiles, die sich in einem Viewport der Vorrichtung befinden; ein Auswählen einer Teilmenge bzw. eines Subsatzes der übrigen Tiles für ein Off-Screen-Rendern basierend auf zumindest einem von dem Inhalt eines Tiles, einem Ansichts- bzw. Betrachtungsverlauf des Nutzers und einer Nähe des Tiles zum Viewport.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/223,272 US8384726B1 (en) | 2011-08-31 | 2011-08-31 | Selective rendering of off-screen content |
US13/223,272 | 2011-08-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE202011108505U1 true DE202011108505U1 (de) | 2012-03-02 |
Family
ID=45841598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE202011108505U Expired - Lifetime DE202011108505U1 (de) | 2011-08-31 | 2011-11-30 | Computersystem zum selektiven Vor-Rendern eines Off-Screen-Inhalts |
Country Status (4)
Country | Link |
---|---|
US (2) | US8384726B1 (de) |
AU (1) | AU2011101579B4 (de) |
DE (1) | DE202011108505U1 (de) |
NL (1) | NL2008222C2 (de) |
Families Citing this family (103)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8225231B2 (en) | 2005-08-30 | 2012-07-17 | Microsoft Corporation | Aggregation of PC settings |
US20120159395A1 (en) | 2010-12-20 | 2012-06-21 | Microsoft Corporation | Application-launching interface for multiple modes |
US8689123B2 (en) | 2010-12-23 | 2014-04-01 | Microsoft Corporation | Application reporting in an application-selectable user interface |
US8612874B2 (en) | 2010-12-23 | 2013-12-17 | Microsoft Corporation | Presenting an application change through a tile |
US9423951B2 (en) | 2010-12-31 | 2016-08-23 | Microsoft Technology Licensing, Llc | Content-based snap point |
US9383917B2 (en) | 2011-03-28 | 2016-07-05 | Microsoft Technology Licensing, Llc | Predictive tiling |
US9104440B2 (en) | 2011-05-27 | 2015-08-11 | Microsoft Technology Licensing, Llc | Multi-application environment |
US9104307B2 (en) | 2011-05-27 | 2015-08-11 | Microsoft Technology Licensing, Llc | Multi-application environment |
US9158445B2 (en) | 2011-05-27 | 2015-10-13 | Microsoft Technology Licensing, Llc | Managing an immersive interface in a multi-application immersive environment |
US20120304132A1 (en) | 2011-05-27 | 2012-11-29 | Chaitanya Dev Sareen | Switching back to a previously-interacted-with application |
US9658766B2 (en) | 2011-05-27 | 2017-05-23 | Microsoft Technology Licensing, Llc | Edge gesture |
US8893033B2 (en) | 2011-05-27 | 2014-11-18 | Microsoft Corporation | Application notifications |
US9311426B2 (en) * | 2011-08-04 | 2016-04-12 | Blackberry Limited | Orientation-dependent processing of input files by an electronic device |
US20130057587A1 (en) | 2011-09-01 | 2013-03-07 | Microsoft Corporation | Arranging tiles |
US8922575B2 (en) | 2011-09-09 | 2014-12-30 | Microsoft Corporation | Tile cache |
US10353566B2 (en) | 2011-09-09 | 2019-07-16 | Microsoft Technology Licensing, Llc | Semantic zoom animations |
US9557909B2 (en) | 2011-09-09 | 2017-01-31 | Microsoft Technology Licensing, Llc | Semantic zoom linguistic helpers |
US9146670B2 (en) | 2011-09-10 | 2015-09-29 | Microsoft Technology Licensing, Llc | Progressively indicating new content in an application-selectable user interface |
US9244802B2 (en) | 2011-09-10 | 2016-01-26 | Microsoft Technology Licensing, Llc | Resource user interface |
US8933952B2 (en) * | 2011-09-10 | 2015-01-13 | Microsoft Corporation | Pre-rendering new content for an application-selectable user interface |
JP6065369B2 (ja) * | 2012-02-03 | 2017-01-25 | ソニー株式会社 | 情報処理装置、情報処理方法、及びプログラム |
US9384711B2 (en) * | 2012-02-15 | 2016-07-05 | Microsoft Technology Licensing, Llc | Speculative render ahead and caching in multiple passes |
US9235925B2 (en) | 2012-05-31 | 2016-01-12 | Microsoft Technology Licensing, Llc | Virtual surface rendering |
US9177533B2 (en) | 2012-05-31 | 2015-11-03 | Microsoft Technology Licensing, Llc | Virtual surface compaction |
US9286122B2 (en) | 2012-05-31 | 2016-03-15 | Microsoft Technology Licensing, Llc | Display techniques using virtual surface allocation |
US9230517B2 (en) | 2012-05-31 | 2016-01-05 | Microsoft Technology Licensing, Llc | Virtual surface gutters |
US9043722B1 (en) | 2012-06-19 | 2015-05-26 | Surfwax, Inc. | User interfaces for displaying relationships between cells in a grid |
US9123030B2 (en) | 2012-07-30 | 2015-09-01 | Sap Se | Indication of off-screen calendar objects |
US9483086B2 (en) | 2012-07-30 | 2016-11-01 | Sap Se | Business object detail display |
US9658672B2 (en) | 2012-07-30 | 2017-05-23 | Sap Se | Business object representations and detail boxes display |
US9262389B2 (en) * | 2012-08-02 | 2016-02-16 | International Business Machines Corporation | Resource-adaptive content delivery on client devices |
CN103631824B (zh) * | 2012-08-28 | 2016-03-30 | 腾讯科技(深圳)有限公司 | 一种网页显示方法及装置 |
US8832583B2 (en) | 2012-08-31 | 2014-09-09 | Sap Se | Visualizing entries in a calendar using the third dimension |
US9081466B2 (en) | 2012-09-10 | 2015-07-14 | Sap Se | Dynamic chart control that triggers dynamic contextual actions |
US9250781B2 (en) | 2012-10-17 | 2016-02-02 | Sap Se | Method and device for navigating time and timescale using movements |
US8972883B2 (en) | 2012-10-19 | 2015-03-03 | Sap Se | Method and device for display time and timescale reset |
US10095663B2 (en) | 2012-11-14 | 2018-10-09 | Amazon Technologies, Inc. | Delivery and display of page previews during page retrieval events |
US9575998B2 (en) | 2012-12-12 | 2017-02-21 | Adobe Systems Incorporated | Adaptive presentation of content based on user action |
US9569083B2 (en) * | 2012-12-12 | 2017-02-14 | Adobe Systems Incorporated | Predictive directional content queue |
US9367641B2 (en) * | 2012-12-27 | 2016-06-14 | Qualcomm Innovation Center, Inc. | Predictive web page rendering using a scroll vector |
WO2014192092A1 (ja) * | 2013-05-29 | 2014-12-04 | 楽天株式会社 | 情報処理装置、情報処理方法及び情報処理プログラム |
US9307007B2 (en) | 2013-06-14 | 2016-04-05 | Microsoft Technology Licensing, Llc | Content pre-render and pre-fetch techniques |
WO2015149347A1 (en) | 2014-04-04 | 2015-10-08 | Microsoft Technology Licensing, Llc | Expandable application representation |
EP3129846A4 (de) | 2014-04-10 | 2017-05-03 | Microsoft Technology Licensing, LLC | Gehäuse mit zusammenklappbarer hülle für eine rechnervorrichtung |
KR20160143784A (ko) | 2014-04-10 | 2016-12-14 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 컴퓨팅 디바이스용 슬라이더 커버 |
US9922007B1 (en) | 2014-05-22 | 2018-03-20 | Amazon Technologies, Inc. | Split browser architecture capable of determining whether to combine or split content layers based on the encoding of content within each layer |
US10042521B1 (en) | 2014-05-22 | 2018-08-07 | Amazon Technologies, Inc. | Emulation of control resources for use with converted content pages |
US9720888B1 (en) | 2014-05-22 | 2017-08-01 | Amazon Technologies, Inc. | Distributed browsing architecture for the delivery of graphics commands to user devices for assembling a plurality of layers of a content page |
US11169666B1 (en) | 2014-05-22 | 2021-11-09 | Amazon Technologies, Inc. | Distributed content browsing system using transferred hardware-independent graphics commands |
US9454515B1 (en) | 2014-06-17 | 2016-09-27 | Amazon Technologies, Inc. | Content browser system using graphics commands and native text intelligence |
US10402472B2 (en) * | 2014-07-30 | 2019-09-03 | Bluebeam, Inc. | Optimized rendering of shared documents on client devices with document raster representations |
US10678412B2 (en) | 2014-07-31 | 2020-06-09 | Microsoft Technology Licensing, Llc | Dynamic joint dividers for application windows |
US10254942B2 (en) | 2014-07-31 | 2019-04-09 | Microsoft Technology Licensing, Llc | Adaptive sizing and positioning of application windows |
US10592080B2 (en) | 2014-07-31 | 2020-03-17 | Microsoft Technology Licensing, Llc | Assisted presentation of application windows |
US10642365B2 (en) | 2014-09-09 | 2020-05-05 | Microsoft Technology Licensing, Llc | Parametric inertia and APIs |
WO2016065568A1 (en) | 2014-10-30 | 2016-05-06 | Microsoft Technology Licensing, Llc | Multi-configuration input device |
US10606859B2 (en) | 2014-11-24 | 2020-03-31 | Asana, Inc. | Client side system and method for search backed calendar user interface |
CN105701106A (zh) * | 2014-11-27 | 2016-06-22 | 广州市动景计算机科技有限公司 | 网页更新方法及装置 |
US10777164B2 (en) * | 2014-12-19 | 2020-09-15 | Qualcomm Incorporated | Power optimization by rendering low-resolution tiles during page load |
US10592070B2 (en) * | 2015-10-12 | 2020-03-17 | Microsoft Technology Licensing, Llc | User interface directional navigation using focus maps |
WO2017069551A1 (en) * | 2015-10-23 | 2017-04-27 | Samsung Electronics Co., Ltd. | Image displaying apparatus and method of operating the same |
US10685029B2 (en) * | 2015-11-23 | 2020-06-16 | Google Llc | Information ranking based on properties of a computing device |
WO2017192332A1 (en) * | 2016-05-05 | 2017-11-09 | Social Networking Technology, Inc. | Systems and methods for view-based advertisement selection |
US20180052943A1 (en) * | 2016-08-18 | 2018-02-22 | Qualcomm Incorporated | Systems and methods for controlling webpage pre-rendering |
WO2018058040A1 (en) * | 2016-09-26 | 2018-03-29 | Wp Company Llc | Method and system for delivering real-time content |
US10409565B2 (en) * | 2017-03-30 | 2019-09-10 | Ice Tea Group Llc | Pixel perfect real-time web application framework |
US10620815B2 (en) | 2017-04-12 | 2020-04-14 | Microsoft Technology Licensing, Llc | Continued selection during scrolling past screen edge thresholds |
US10977434B2 (en) | 2017-07-11 | 2021-04-13 | Asana, Inc. | Database model which provides management of custom fields and methods and apparatus therfor |
US10623359B1 (en) | 2018-02-28 | 2020-04-14 | Asana, Inc. | Systems and methods for generating tasks based on chat sessions between users of a collaboration environment |
US11138021B1 (en) | 2018-04-02 | 2021-10-05 | Asana, Inc. | Systems and methods to facilitate task-specific workspaces for a collaboration work management platform |
US10613735B1 (en) | 2018-04-04 | 2020-04-07 | Asana, Inc. | Systems and methods for preloading an amount of content based on user scrolling |
US10642441B2 (en) * | 2018-04-27 | 2020-05-05 | International Business Machines Corporation | Optimal window placement system |
US10785046B1 (en) | 2018-06-08 | 2020-09-22 | Asana, Inc. | Systems and methods for providing a collaboration work management platform that facilitates differentiation between users in an overarching group and one or more subsets of individual users |
US10616151B1 (en) | 2018-10-17 | 2020-04-07 | Asana, Inc. | Systems and methods for generating and presenting graphical user interfaces |
US10779014B2 (en) * | 2018-10-18 | 2020-09-15 | At&T Intellectual Property I, L.P. | Tile scheduler for viewport-adaptive panoramic video streaming |
US10956845B1 (en) | 2018-12-06 | 2021-03-23 | Asana, Inc. | Systems and methods for generating prioritization models and predicting workflow prioritizations |
US11113667B1 (en) | 2018-12-18 | 2021-09-07 | Asana, Inc. | Systems and methods for providing a dashboard for a collaboration work management platform |
US11568366B1 (en) | 2018-12-18 | 2023-01-31 | Asana, Inc. | Systems and methods for generating status requests for units of work |
US11782737B2 (en) | 2019-01-08 | 2023-10-10 | Asana, Inc. | Systems and methods for determining and presenting a graphical user interface including template metrics |
US10684870B1 (en) | 2019-01-08 | 2020-06-16 | Asana, Inc. | Systems and methods for determining and presenting a graphical user interface including template metrics |
US11204683B1 (en) | 2019-01-09 | 2021-12-21 | Asana, Inc. | Systems and methods for generating and tracking hardcoded communications in a collaboration management platform |
CN112347380A (zh) * | 2019-08-07 | 2021-02-09 | 腾讯科技(深圳)有限公司 | 一种窗口渲染方法及相关设备 |
US11341445B1 (en) | 2019-11-14 | 2022-05-24 | Asana, Inc. | Systems and methods to measure and visualize threshold of user workload |
US11783253B1 (en) | 2020-02-11 | 2023-10-10 | Asana, Inc. | Systems and methods to effectuate sets of automated actions outside and/or within a collaboration environment based on trigger events occurring outside and/or within the collaboration environment |
US11599855B1 (en) | 2020-02-14 | 2023-03-07 | Asana, Inc. | Systems and methods to attribute automated actions within a collaboration environment |
US11455601B1 (en) | 2020-06-29 | 2022-09-27 | Asana, Inc. | Systems and methods to measure and visualize workload for completing individual units of work |
US11449836B1 (en) | 2020-07-21 | 2022-09-20 | Asana, Inc. | Systems and methods to facilitate user engagement with units of work assigned within a collaboration environment |
US11568339B2 (en) | 2020-08-18 | 2023-01-31 | Asana, Inc. | Systems and methods to characterize units of work based on business objectives |
US11769115B1 (en) | 2020-11-23 | 2023-09-26 | Asana, Inc. | Systems and methods to provide measures of user workload when generating units of work based on chat sessions between users of a collaboration environment |
US11405435B1 (en) | 2020-12-02 | 2022-08-02 | Asana, Inc. | Systems and methods to present views of records in chat sessions between users of a collaboration environment |
US11694162B1 (en) | 2021-04-01 | 2023-07-04 | Asana, Inc. | Systems and methods to recommend templates for project-level graphical user interfaces within a collaboration environment |
US11676107B1 (en) | 2021-04-14 | 2023-06-13 | Asana, Inc. | Systems and methods to facilitate interaction with a collaboration environment based on assignment of project-level roles |
US11553045B1 (en) | 2021-04-29 | 2023-01-10 | Asana, Inc. | Systems and methods to automatically update status of projects within a collaboration environment |
US11803814B1 (en) | 2021-05-07 | 2023-10-31 | Asana, Inc. | Systems and methods to facilitate nesting of portfolios within a collaboration environment |
US11792028B1 (en) | 2021-05-13 | 2023-10-17 | Asana, Inc. | Systems and methods to link meetings with units of work of a collaboration environment |
US11809222B1 (en) | 2021-05-24 | 2023-11-07 | Asana, Inc. | Systems and methods to generate units of work within a collaboration environment based on selection of text |
US11756000B2 (en) | 2021-09-08 | 2023-09-12 | Asana, Inc. | Systems and methods to effectuate sets of automated actions within a collaboration environment including embedded third-party content based on trigger events |
US11635884B1 (en) | 2021-10-11 | 2023-04-25 | Asana, Inc. | Systems and methods to provide personalized graphical user interfaces within a collaboration environment |
US11997425B1 (en) | 2022-02-17 | 2024-05-28 | Asana, Inc. | Systems and methods to generate correspondences between portions of recorded audio content and records of a collaboration environment |
US11836681B1 (en) | 2022-02-17 | 2023-12-05 | Asana, Inc. | Systems and methods to generate records within a collaboration environment |
US12051045B1 (en) | 2022-04-28 | 2024-07-30 | Asana, Inc. | Systems and methods to characterize work unit records of a collaboration environment based on stages within a workflow |
US11863601B1 (en) | 2022-11-18 | 2024-01-02 | Asana, Inc. | Systems and methods to execute branching automation schemes in a collaboration environment |
CN115908674A (zh) * | 2022-11-30 | 2023-04-04 | 北京百度网讯科技有限公司 | 量子电路图渲染方法、装置、设备、存储介质及程序产品 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6842777B1 (en) * | 2000-10-03 | 2005-01-11 | Raja Singh Tuli | Methods and apparatuses for simultaneous access by multiple remote devices |
GB0303888D0 (en) * | 2003-02-19 | 2003-03-26 | Sec Dep Acting Through Ordnanc | Image streaming |
WO2007095184A2 (en) | 2006-02-13 | 2007-08-23 | Decarta, Inc. | Draggable maps |
WO2010124397A1 (en) * | 2009-04-29 | 2010-11-04 | Torch Mobile Inc. | Software-based asynchronous tiled backingstore |
-
2011
- 2011-08-31 US US13/223,272 patent/US8384726B1/en active Active
- 2011-09-26 US US13/245,667 patent/US8314809B1/en active Active
- 2011-11-30 DE DE202011108505U patent/DE202011108505U1/de not_active Expired - Lifetime
- 2011-11-30 AU AU2011101579A patent/AU2011101579B4/en not_active Expired
-
2012
- 2012-02-03 NL NL2008222A patent/NL2008222C2/en active
Also Published As
Publication number | Publication date |
---|---|
US8384726B1 (en) | 2013-02-26 |
NL2008222A (en) | 2013-03-04 |
US20130050249A1 (en) | 2013-02-28 |
AU2011101579A4 (en) | 2012-02-02 |
NL2008222C2 (en) | 2014-10-08 |
US8314809B1 (en) | 2012-11-20 |
AU2011101579B4 (en) | 2012-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE202011108505U1 (de) | Computersystem zum selektiven Vor-Rendern eines Off-Screen-Inhalts | |
US20230111594A1 (en) | Simplified website creation, configuration, and customization system | |
DE102016001467A1 (de) | Verfahren zum intelligenten Laden von Webreferenzen im Voraus basierend auf einer Vorhersage des Benutzerverhaltens | |
US9612715B2 (en) | Real-time preview of uniform resource identifier addressable dynamic content | |
DE202007019456U1 (de) | Mobile elektronische Vorrichtung mit Berührungseingabeeinrichtung | |
DE202011108541U1 (de) | Systeme zum Erzeugen und Anzeigen eines Vorschaubilds eines Inhaltsbereichs | |
DE202011108538U1 (de) | Zeitliche aufgabenbasierte Funktionsflächenverwaltung | |
DE112015003670T5 (de) | Navigationsschnittstellen für E-Books | |
DE202011110891U1 (de) | Scrollen in umfangreichen gehosteten Datenbestand | |
DE212012000266U1 (de) | System zum Bereitstellen einer Scrollkarte | |
DE202014010906U1 (de) | Vorrichtung für zweidimensionale Dokumentennavigation | |
US20150205761A1 (en) | Unloaded content placeholders | |
DE202016107451U1 (de) | Systeme zur interaktiven Darstellung eines sichtbaren Teils einer Rendering-Oberfläche auf einem Benutzergerät | |
CN101493837A (zh) | 多页面浏览器中的网络视频的播放方法及处理装置 | |
DE102013203526A1 (de) | Verfahren und System für die Verwendung von Einstellungs-Handles zur Erleichterung der dynamischen Layout-Editierung | |
DE10121791B4 (de) | Verfahren und Vorrichtung für dynamische Web-Seitenanordnung | |
DE202013012437U1 (de) | Ausblendbarer Texteingabekasten | |
DE202014010899U1 (de) | Unterstützung von Benutzerinteraktionen mit wiedergegebenen Grafikobjekten | |
DE112020004312T5 (de) | Übersetzung von eingebetteten mehrformatdateien | |
DE112016002223T5 (de) | Konvertieren von Flash-Inhalten zu HTML-Inhalten durch Erzeugen einer Instruktionen-Liste | |
DE112004002391T5 (de) | Räumlich-zeitliche Erzeugung einer Bewegungsunschärfe | |
US9824151B2 (en) | Providing a portion of requested data based upon historical user interaction with the data | |
EP2254031B1 (de) | Verfahren zum Anzeigen eines von einem Benutzer ausgewählten Teilbereichs einer Historiengrafik | |
DE102015104659A1 (de) | Informationsverarbeitungsverfahren und elektronisches Gerät hierfür | |
CN113688341A (zh) | 动态图片分解方法、装置、电子设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R207 | Utility model specification |
Effective date: 20120426 |
|
R150 | Utility model maintained after payment of first maintenance fee after three years | ||
R150 | Utility model maintained after payment of first maintenance fee after three years |
Effective date: 20141212 |
|
R082 | Change of representative |
Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE |
|
R151 | Utility model maintained after payment of second maintenance fee after six years | ||
R081 | Change of applicant/patentee |
Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US Free format text: FORMER OWNER: GOOGLE, INC., MOUNTAIN VIEW, CALIF., US |
|
R082 | Change of representative |
Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE |
|
R081 | Change of applicant/patentee |
Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US Free format text: FORMER OWNER: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUNTAIN VIEW, CALIF., US |
|
R082 | Change of representative |
Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE |
|
R152 | Utility model maintained after payment of third maintenance fee after eight years | ||
R071 | Expiry of right |