DE202011108505U1 - Computersystem zum selektiven Vor-Rendern eines Off-Screen-Inhalts - Google Patents

Computersystem zum selektiven Vor-Rendern eines Off-Screen-Inhalts Download PDF

Info

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
Application number
DE202011108505U
Other languages
English (en)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of DE202011108505U1 publication Critical patent/DE202011108505U1/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/14Solving problems related to the presentation of information to be displayed
    • G09G2340/145Solving problems related to the presentation of information to be displayed related to small screens
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/34Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling
    • G09G5/346Control 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory

Abstract

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.

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 von 1 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 von 2.
  • ist 4 eine exemplarische Darstellung in Verbindung mit dem exemplarischen Prozess von 3, 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 von 2 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 Aufbau 100 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 Architektur 100 umfasst Server 130 und Clients 110, die über ein Netzwerk 150 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 Clients 130, die mobil oder nicht mobil sind, läuft. Die Clients 110 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 Clients 110, die mobile Vorrichtungen sind oder die ansonsten langsamere Verarbeitungsgeschwindigkeiten aufweisen.
  • Der Web-Browser kann über das Netzwerk 150 von einem der vielen Server 130 heruntergeladen werden. Zum Zwecke eines Lastausgleichs können auch mehrere Server 130 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 Server 130 und eine anschließende Installation verfügbar, was davon abhängig ist, ob der Client 130 eine mobile Vorrichtung oder nicht mobile Vorrichtung ist. Nachdem der Web-Browser auf einem Client 130 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 Server 130 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 Netzwerk 150 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 Netzwerk 150 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 Client 130 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 Clients 130 oder außerhalb des Viewports des Clients 130 (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 Blockdiagramm 200, das einen exemplarischen Server 130 und Client 110 in dem Aufbau 100 von 1 gemäß bestimmten Aspekten der Offenbarung veranschaulicht. Der Client und der Server 130 sind über das Netzwerk 150 durch jeweilige Kommunikationsmodule 218 und 238 miteinander verbunden. Die Kommunikationsmodule 218 und 238 sind so konfiguriert, dass sie eine Schnittstelle mit dem Netzwerk 150 zum Senden und Empfangen von Information wie Daten, Anfragen, Antworten und Befehle an andere Vorrichtungen auf dem Netzwerk bilden. Die Kommunikationsmodule 218 und 238 können beispielsweise Modems oder Ethernet-Cards sein.
  • Der Client 110 umfasst einen Prozessor 212, das Kommunikationsmodul 218 und einen Speicher 220, der einen Web-Browser 222 und eine Client-Kopie einer Internetseite 224b (oder einen anderen anzeigbaren Inhalt bzw. Content) zum Anzeigen in dem Web-Browser 222 unter Verwendung der Ausgabevorrichtung 214 (z. B. einem Display bzw. Bildschirm) des Clients 110 umfasst. Die Client-Kopie der Internetseite 224b wird von dem Server 130 über das Netzwerk 150 unter Verwendung der jeweiligen Kommunikationsmodule 218 und 238 des Clients 110 und Servers 130 empfangen. Spezifisch stellt der Server 130 als Antwort auf eine Anfrage von dem Client 110 eine Kopie einer Internetseite 224a in dem Speicher 232 dem Client 110 bereit. Der Client 110 umfasst ebenso eine Eingabevorrichtung 216, wie eine Tastatur, einen Touchscreen oder eine Maus, um Scroll-/Ansicht-Eingaben des Nutzers zu empfangen.
  • Der Prozessor 212 des Clients 110 ist so konfiguriert, dass er Anweisungen ausführt, wie Instruktionen bzw. Anweisungen, die physikalisch in den Prozessor 212 codiert wurden, Anweisungen, die von Software in dem Speicher 240 empfangen wurden, oder eine Kombination aus beiden. Beispielsweise führt der Prozessor 212 des Clients 110 Anweisungen von dem Web-Browser 222 so aus, dass eine Anfrage zum Anzeigen von Inhalt, wie der Internetseite 224b, empfangen und der Inhalt in einen ersten anzeigbaren Teil, der auf einer Größe eines Viewports des Clients 110 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 Prozessor 212 rendert (z. B. vorbereitet zum Anzeigen) den ersten anzeigbaren Teil der Internetseite 224b und zeigt ihn innerhalb des Viewports an.
  • Der Prozessor 212 ist ebenso so konfiguriert, dass er eine Teilmenge des zweiten anzeigbaren Teils der Internetseite 224b, d. h. den anzeigbaren Teil der Internetseite 224b, 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 Internetseite 224b, 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 Internetseite 224b eher nach rechts als nach links und nach unten als nach oben scrollen wird. In bestimmten Aspekten kann der Prozessor 212 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 Prozessor 212 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 Prozessor 212 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 Prozessor 212 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 Prozess 300 unter Verwendung des exemplarischen Clients 110 von 2 zum selektiven Vor-Rendern von Off-Screen-Inhalt zum Anzeigen, bevor der Inhalt auf den Bildschirm bzw. on-screen kommt. Der Prozess 300 beginnt mit einer Durchführung von Schritt 301, wenn ein Nutzer eine Anwendung, wie einen Web-Browser 222 auf den Client 110 herunterlädt, die Inhalt, wie eine heruntergeladene Internetseite 224b enthält, die für eine Anzeige verfügbar ist. In Schritt 302 wird eine Anfrage zum Anzeigen des Inhalts auf dem Client 110 empfangen. In Schritt 303 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 Schritt 304 gerendert und innerhalb des Viewports angezeigt, und in Schritt 305 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 Schritt 306 die ausgewählte Teilmenge des zweiten anzeigbaren Teils des Inhalts off-screen gerendert, und der Prozess 300 endet in Schritt 307.
  • 3 stellt einen exemplarischen Prozess 300 zum selektiven Vor-Rendern von Off-Screen-Inhalt zum Anzeigen, bevor der Inhalt auf den Bildschirm kommt, unter Verwendung des exemplarischen Clients 110 von 2 dar. Nunmehr wird ein Beispiel unter Verwendung des exemplarischen Prozesses 300 von 3, eines Smartphone-Clients 110 mit einem kleinen Viewport, eines mobilen Web-Browsers 222 und einer Client-Kopie einer Internetseite 224b beschrieben.
  • Der Prozess 300 beginnt mit einer Durchführung von Schritt 301, wenn ein Nutzer einen mobilen Web-Browser 222 auf das Smartphone 110 des Nutzers herunterlädt. Der mobile Web-Browser 222 hat eine Internetseite 224b heruntergeladen, die der Nutzer ansehen möchte. In Schritt 302 fragt der Nutzer ein Anzeigen der Internetseite 224b in dem mobilen Web-Browser 222 an. In Schritt 303 unterteilt der mobile Web-Browser 222 die Internetseite 224b in einen ersten anzeigbaren Teil, der auf einer Größe eines Viewports des Smartphones 110 basiert, und einen zweiten anzeigbaren Teil, der außerhalb des Viewports des Smartphones 110 liegt. Genauer gesagt, werden der erste und zweite anzeigbare Teil jeweils in gleich große Tiles unterteilt, wie in 4, einer exemplarischen Darstellung der Internetseite 224b, veranschaulicht. In Schritt 304 werden die Tiles aus dem ersten anzeigbaren Teil des Inhalts, nämlich die Tiles 404, 406, 408, 410, 412 und 414, gerendert und innerhalb des Viewports 402 angezeigt.
  • In Schritt 305 wird eine Teilmenge des zweiten anzeigbaren Teils des Inhalts gemäß den folgenden Bedingungen bzw. Beschränkungen ausgewählt. Tiles der Internetseite 224b, die sich off-screen unter dem Viewport 402 befinden, nämlich die Tiles 420 und 422, werden zum Off-Screen-Rendern ausgewählt, bevor Tiles, die sich off-screen über dem Viewport 402 befinden, nämlich die Tiles 416 und 418, zum Off-Screen-Rendern ausgewählt werden. Als nächstes werden Tiles, die sich off-screen rechts vom Viewport 402 befinden, nämlich die Tiles 424, 426 und 428, zum Off-Screen-Rendern ausgewählt, bevor Tiles, die sich off-screen links vom Viewport 402 befinden, nämlich 430, 432 und 434, 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 Viewport 402, nämlich die Tiles 436 und 438, zum Off-Screen-Rendern ausgewählt. Schließlich wird in Schritt 306 die ausgewählte Teilmenge an Tiles, nämlich die Tiles 416 bis 438, off-screen gerendert, und der Prozess 300 endet in Schritt 307.
  • 5 ist ein Blockdiagramm, das ein exemplarisches Computersystem 500 veranschaulicht, mit dem der Client 110 und der Server 130 aus 2 implementiert werden können. In bestimmten Aspekten kann das Computersystem 500 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 Client 110 und der Server 130) umfasst einen Bus 508 oder einen anderen Kommunikationsmechanismus zur Übertragung von Information, und einen Prozessor 502 (z. B. den Prozessor 212 und 236), der mit dem Bus 508 zur Verarbeitung von Information gekoppelt ist. Zum Beispiel kann das Computersystem 500 mit einem oder mehreren Prozessor(en) 502 implementiert sein bzw. werden. Der Prozessor 502 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 Speicher 504 (z. B. den Speichern 220 und 232), 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 Prozessor 502 ausgeführt werden sollen, mit dem Bus 508 gekoppelt ist. Der Prozessor 502 und der Speicher 504 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 Computersystem 500 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 Speicher 504 kann während einer Ausführung der Anweisungen, die durch den Prozessor 502 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 Datenspeichervorrichtung 506, wie eine Magnetplatte oder eine optische Platte, die zum Speichern von Information und Anweisungen mit dem Bus 508 gekoppelt ist. Das Computersystem 500 kann über ein Eingabe-/Ausgabemodul 510 an verschiedene Vorrichtungen gekoppelt sein bzw. werden. Das Eingabe-/Ausgabemodul 510 kann irgendein Eingabe-/Ausgabemodul sein. Exemplarische Eingabe-/Ausgabemodule 510 umfassen Datenports, wie USB-Ports. Das Eingabe-/Ausgabemodul 510 ist so konfiguriert, dass es mit einem Kommunikationsmodul 512 verbunden werden kann. Exemplarische Kommunikationsmodule 512 (z. B. die Kommunikationsmodule 218 und 238) umfassen Netzwerk-Schnittstellenkarten, wie Ethernet-Karten und Modems. In bestimmten Aspekten ist das Eingabe-/Ausgabemodul 510 so konfiguriert, dass es mit mehreren Vorrichtungen, wie einer Eingabevorrichtung 514 (z. B. der Eingabevorrichtung 216) und/oder einer Ausgabevorrichtung 516 (z. B. der Ausgabevorrichtung 214) verbunden ist. Exemplarische Eingabevorrichtungen 514 umfassen eine Tastatur und ein Zeigegerät, z. B. eine Maus oder einen Track-Ball, durch welche ein Nutzer eine Eingabe in das Computersystem 500 zur Verfügung stellen kann. Andere Arten von Eingabevorrichtungen 514 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 Ausgabevorrichtungen 516 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 Server 130 unter Verwendung eines Computersystems 500 als Antwort auf den Prozessor 502 implementiert werden, der eine oder mehrere Sequenz(en) einer oder mehrerer Anweisung(en) ausführt, die in dem Speicher 504 enthalten sind. Derartige Anweisungen können von einem anderen maschinenlesbaren Medium, wie der Datenspeichervorrichtung 506, in den Speicher 504 eingelesen werden. Eine Ausführung der Sequenzen von Anweisungen, die in dem Hauptspeicher 504 enthalten sind, veranlasst den Prozessor 502 zur Durchführung der hierin beschriebenen Prozessschritte. Zur Ausführung der Anweisungssequenzen, die in dem Speicher 504 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 Computersystem 500 kann beispielsweise und ohne Einschränkung ein Desktop-Computer, ein Laptop-Computer oder ein Tablet-Computer sein. Das Computersystem 500 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 Datenspeichervorrichtung 506. Nicht-permanente Medien umfassen einen dynamischen Speicher, wie den Speicher 504. Übertragungsmedien umfassen Koaxialkabel, Kupferdraht und Faseroptik, einschließlich der Drähte, die der Bus 508 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)

  1. 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.
  2. System nach Anspruch 1, ferner umfassend ein Off-Screen-Rendern der ausgewählten Teilmenge des zweiten anzeigbaren Teils des Inhalts.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. 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.
  13. 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.
  14. 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.
  15. 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.
  16. 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.
  17. 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.
  18. 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.
  19. Web-Browser-Produkt nach Anspruch 18, wobei die ausgewählte Teilmenge des zweiten anzeigbaren Teils des Inhalts off-screen gerendert wird.
  20. 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.
  21. 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.
  22. 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.
  23. 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.
DE202011108505U 2011-08-31 2011-11-30 Computersystem zum selektiven Vor-Rendern eines Off-Screen-Inhalts Expired - Lifetime DE202011108505U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/223,272 2011-08-31
US13/223,272 US8384726B1 (en) 2011-08-31 2011-08-31 Selective rendering of off-screen content

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 (100)

* Cited by examiner, † Cited by third party
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
US8612874B2 (en) 2010-12-23 2013-12-17 Microsoft Corporation Presenting an application change through a tile
US8689123B2 (en) 2010-12-23 2014-04-01 Microsoft Corporation Application reporting in an application-selectable user interface
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
US9158445B2 (en) 2011-05-27 2015-10-13 Microsoft Technology Licensing, Llc Managing an immersive interface in a multi-application immersive environment
US9104440B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US20120304132A1 (en) 2011-05-27 2012-11-29 Chaitanya Dev Sareen Switching back to a previously-interacted-with application
US9104307B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US8893033B2 (en) 2011-05-27 2014-11-18 Microsoft Corporation Application notifications
US9658766B2 (en) 2011-05-27 2017-05-23 Microsoft Technology Licensing, Llc Edge gesture
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
US9557909B2 (en) 2011-09-09 2017-01-31 Microsoft Technology Licensing, Llc Semantic zoom linguistic helpers
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
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
US9177533B2 (en) 2012-05-31 2015-11-03 Microsoft Technology Licensing, Llc Virtual surface compaction
US9230517B2 (en) 2012-05-31 2016-01-05 Microsoft Technology Licensing, Llc Virtual surface gutters
US9286122B2 (en) 2012-05-31 2016-03-15 Microsoft Technology Licensing, Llc Display techniques using virtual surface allocation
US9235925B2 (en) 2012-05-31 2016-01-12 Microsoft Technology Licensing, Llc Virtual surface rendering
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
JP5453577B1 (ja) * 2013-05-29 2014-03-26 楽天株式会社 情報処理装置、情報処理方法及び情報処理プログラム
US9307007B2 (en) 2013-06-14 2016-04-05 Microsoft Technology Licensing, Llc Content pre-render and pre-fetch techniques
EP3126969A4 (de) 2014-04-04 2017-04-12 Microsoft Technology Licensing, LLC Erweiterbare anwendungsdarstellung
EP3129847A4 (de) 2014-04-10 2017-04-19 Microsoft Technology Licensing, LLC Schiebeabdeckung für computervorrichtung
CN105378582B (zh) 2014-04-10 2019-07-23 微软技术许可有限责任公司 计算设备的可折叠壳盖
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
US11169666B1 (en) 2014-05-22 2021-11-09 Amazon Technologies, Inc. Distributed content browsing system using transferred hardware-independent graphics commands
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
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
US10592080B2 (en) 2014-07-31 2020-03-17 Microsoft Technology Licensing, Llc Assisted presentation of application windows
US10254942B2 (en) 2014-07-31 2019-04-09 Microsoft Technology Licensing, Llc Adaptive sizing and positioning of application windows
US10642365B2 (en) 2014-09-09 2020-05-05 Microsoft Technology Licensing, Llc Parametric inertia and APIs
US9674335B2 (en) 2014-10-30 2017-06-06 Microsoft Technology Licensing, Llc Multi-configuration input device
US9405810B2 (en) 2014-11-24 2016-08-02 Asana, Inc. Server 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
US11568366B1 (en) 2018-12-18 2023-01-31 Asana, Inc. Systems and methods for generating status requests for units of work
US11113667B1 (en) 2018-12-18 2021-09-07 Asana, Inc. Systems and methods for providing a dashboard for a collaboration work management platform
US10684870B1 (en) 2019-01-08 2020-06-16 Asana, Inc. Systems and methods for determining and presenting a graphical user interface including template metrics
US11782737B2 (en) 2019-01-08 2023-10-10 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
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
US11836681B1 (en) 2022-02-17 2023-12-05 Asana, Inc. Systems and methods to generate records within a collaboration environment
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)

* Cited by examiner, † Cited by third party
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
US9412199B2 (en) 2006-02-13 2016-08-09 Uber Technologies, Inc. Draggable maps
EP2304543A1 (de) * 2009-04-29 2011-04-06 Torch Mobile Inc. Asynchroner mosaikzusatzspeicher auf softwarebasis

Also Published As

Publication number Publication date
AU2011101579B4 (en) 2012-10-04
US8384726B1 (en) 2013-02-26
AU2011101579A4 (en) 2012-02-02
NL2008222A (en) 2013-03-04
US8314809B1 (en) 2012-11-20
US20130050249A1 (en) 2013-02-28
NL2008222C2 (en) 2014-10-08

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
DE102013009054A1 (de) Organisieren von grafischen Darstellungen auf Computervorrichtungen
US9612715B2 (en) Real-time preview of uniform resource identifier addressable dynamic content
DE202011108539U1 (de) Vorrichtung zum Scrollen eines in einem Browserfenster angezeigten Dokuments
DE202011108541U1 (de) Systeme zum Erzeugen und Anzeigen eines Vorschaubilds eines Inhaltsbereichs
DE202011108538U1 (de) Zeitliche aufgabenbasierte Funktionsflächenverwaltung
DE202011110891U1 (de) Scrollen in umfangreichen gehosteten Datenbestand
DE112015003670T5 (de) Navigationsschnittstellen für E-Books
US20130152010A1 (en) Multiple tab stack user interface
DE212012000266U1 (de) System zum Bereitstellen einer Scrollkarte
US20150205761A1 (en) Unloaded content placeholders
CN101493837A (zh) 多页面浏览器中的网络视频的播放方法及处理装置
DE10121791B4 (de) Verfahren und Vorrichtung für dynamische Web-Seitenanordnung
DE202016107451U1 (de) Systeme zur interaktiven Darstellung eines sichtbaren Teils einer Rendering-Oberfläche auf einem Benutzergerät
DE102013203526A1 (de) Verfahren und System für die Verwendung von Einstellungs-Handles zur Erleichterung der dynamischen Layout-Editierung
DE202013012437U1 (de) Ausblendbarer Texteingabekasten
DE202014010899U1 (de) Unterstützung von Benutzerinteraktionen mit wiedergegebenen Grafikobjekten
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
DE112020004312T5 (de) Übersetzung von eingebetteten mehrformatdateien
DE112016002223T5 (de) Konvertieren von Flash-Inhalten zu HTML-Inhalten durch Erzeugen einer Instruktionen-Liste
CN113688341B (zh) 动态图片分解方法、装置、电子设备及可读存储介质
EP2254031B1 (de) Verfahren zum Anzeigen eines von einem Benutzer ausgewählten Teilbereichs einer Historiengrafik

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