JP6427616B2 - ディスプレイ・オブジェクトの前生成 - Google Patents

ディスプレイ・オブジェクトの前生成 Download PDF

Info

Publication number
JP6427616B2
JP6427616B2 JP2017078681A JP2017078681A JP6427616B2 JP 6427616 B2 JP6427616 B2 JP 6427616B2 JP 2017078681 A JP2017078681 A JP 2017078681A JP 2017078681 A JP2017078681 A JP 2017078681A JP 6427616 B2 JP6427616 B2 JP 6427616B2
Authority
JP
Japan
Prior art keywords
generated
display object
content
user
elements
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.)
Active
Application number
JP2017078681A
Other languages
English (en)
Other versions
JP2017174436A (ja
Inventor
エム. カルドア、ジョナサン
エム. カルドア、ジョナサン
Original Assignee
フェイスブック,インク.
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 フェイスブック,インク. filed Critical フェイスブック,インク.
Publication of JP2017174436A publication Critical patent/JP2017174436A/ja
Application granted granted Critical
Publication of JP6427616B2 publication Critical patent/JP6427616B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4092Image resolution transcoding, e.g. by using client-server architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)
  • Information Transfer Between Computers (AREA)
  • Debugging And Monitoring (AREA)

Description

本開示は、オブジェクト・ライフサイクル管理に関する。
コンテンツが表示可能領域を越えて拡張する(コンテンツを視界に入れるためにユーザがコンテンツ・レイアウトをスクロールする必要がある)、特定のディスプレイ・スクリーンのためにコンテンツ・レイアウトをレンダリングする場合、ディスプレイ・オブジェクト(例えば、ANDROID(登録商標)のビュー・オブジェクト)およびそれらのディスプレイ・オブジェクトの要素は、ユーザがコンテンツをスクロールすると、これらが視界に入るように、専用UIスレッドによってリアル・タイムに生成される。表示可能領域を越えた位置から付加的なコンテンツを視界に入れる際に潜在的に重要な部分は、ディスプレイ・オブジェクトを生成するためのタスクのリアル・タイム実行、すなわち測定(ディスプレイ・オブジェクト、およびその要素の各々の面積要件の再帰的な測定)、レイアウト(ディスプレイ・オブジェクトへの、続いてその要素の各々への面積および位置の割り当て)、およびスクリーン上のディスプレイ・オブジェクトを引くためのコマンドの生成による。
これは、フレーム・バッファ充填のような他の重大なオペレーションを処理することに更にビジーであるUIスレッドにそのようなタスクを割り当てるシステムの作動において特に問題である。
特定の実施形態においては、UIスレッドが予め生成されるタスク(あるいはその論理チャンク)を間に置くためにアイドルとなる期間を利用することにより、ディスプレイ・オブジェクトを予め生成することが達成される。ディスプレイ・オブジェクトを予め生成することを促進するために、アプリケーションは、UIスレッドが最小のアイドル時間(例えば次のフレーム・バッファ充填の前に残された17ミリ秒)の間、アイドルとなる期間を識別するためにUIスレッドを監視し、1つ以上の予め生成されるタスクをUIスレッドのためのメッセージ・キューに付加し、完了させる(時間が十分である場合)ために、あるいは降伏点に到達し、残された利用可能時間が最小のアイドル時間未満となるまで、予め生成されるタスクを実行する。
ここに開示される実施形態は、ディスプレイ・オブジェクトのサブ要素により更に実施され、これらの要素のうちのいくつかは入れ子のディスプレイ・オブジェクトを含む。特定の実施形態は、ビュー・モデル・ビューのモデル・パターンに従う任意のプラットフォーム上で実施される。
ディスプレイ・オブジェクトを使用してレンダリングされるコンテンツ・レイアウトを示すワイヤフレーム。 図1Aの詳細なセクションを例示するワイヤフレーム。 アプリケーション・テイラード・オブジェクトを予め満たす方法を例示する図。 ソーシャル・ネットワーキング・システムに関連付けられたネットワーク環境を例示する図。 ソーシャル・グラフを例示する図。 コンピュータ・システムを例示する図。
コンテンツを意識してディスプレイ・オブジェクトを予め満たすことを促進するために、アプリケーションは、アプリケーション特有のポリシーを適用し、満たすためにもっともコスト高となるディスプレイ・オブジェクトおよび/またはディスプレイ・オブジェクトの要素のみを予め選択的に満たす方法を決定する。
表示されるコンテンツ・レイアウトの特定のセクションに対するリクエストを受け取るに先立って、アプリケーションは、コンテンツ・レイアウトの特定のセクションの要素を選択し、選択された要素を予め満たすか、あるいは満たし、リサイクラに予め満たされる要素を格納する。同じコンテンツ要素が再びリクエストされると、アプリケーションは、リサイクラからディスプレイ・オブジェクトを検索し、ラッパ・オブジェクトでラップし、ラップされたディスプレイ・オブジェクトを返す。ここに開示される実施形態は、ディスプレイ・オブジェクトの要素により更に実施され、これらの要素のうちのいくつかは入れ子のディスプレイ・オブジェクトを含む。
リサイクラを実行する方法に関して、特定の実施形態においては、2013年4月11日に出願され発明の名称が「アプリケーションに適合したオブジェクトの再利用」である米国特許出願第13/861250号明細書に開示される1つ以上のシステム、コンポーネント、要素、機能、方法、作動、あるいは工程が利用され、明細書はその全体がここに開示されたものとする。
図1Aは、複数のディスプレイ・オブジェクトに基づきタブレット・デバイス上のディスプレイのためにレンダリングされる、ソーシャル・ネットワーキング・システムのユーザのためのニュースフィード・ページを示すコンテンツ・レイアウト100を例示するワイヤフレームである。コンテンツ・レイアウト100の表示可能領域(点線によって示す)は、タブレット・デバイスのスクリーン面積の範囲内に適合する(スクロール不要視認可能領域(above the fold))コンテンツ・レイアウト100の部分を含む。
コンテンツ・レイアウト100は、ヘッダ領域110、メニューバー120、左側サイドバー130、右側サイドバー140、および主本体領域150を含む。領域はそれぞれそれ自身のディスプレイ・オブジェクトに関連付けられ、その各々は、制限ではなく、例として、1つ以上の画像、動画、テキスト、リンク、形式、および対話型の要素などの複数の要素を含む。これらの要素の各々は1つ以上の入れ子のディスプレイ・オブジェクトによって表される。
ヘッダ領域110に関連付けられるディスプレイ・オブジェクトは、ソーシャルネットワークのユーザの対話型のプロフィール画像112、ソーシャルネットワークのユーザによって選択されるテキスト・ブロック114、背景画像116、およびテーマ音楽を含む。対話型のプロフィール画像112は、マウスのようなポインティングデバイスがプロフィール画像上にとどまると現れるソーシャルネットワークのユーザのプロフィールの要約を表示するポップアップ・ウィンドウをレンダリングするために、画像、テキスト、リンク、およびJAVASCRIPT(登録商標)コードを含むディスプレイ・オブジェクトに基づきレンダリングされる。
メニューバー120に関連付けられるディスプレイ・オブジェクトは、5つのメニュー・オプション125A乃至125Fを含み、その各々は画像、テキスト、およびリンクを含む。
左側のサイドバー130に関連付けられるディスプレイ・オブジェクトは、推奨の混合(スポンサード・ストーリを含む)(135A乃至135Eのみを示すが、更に多くの推奨があってもよい)のためのコンテンツを含み、その各々はディスプレイ・オブジェクトに基づいてレンダリングされる。推奨のためのディスプレイ・オブジェクトの各々は、推奨に関係する更に詳細な情報を得るために、対話型の画像、タイトル、推奨のためのテキスト、およびリンクを含む。ニュースフィード・アイテムのためのディスプレイ・オブジェクトの各々は、更に1つ以上の画像あるいは1つの動画を含む。
右側のサイドバー140に関連付けられるディスプレイ・オブジェクトは、1つ以上の広告145のためのコンテンツを含み、その各々が、ディスプレイ・オブジェクトに基づいてレンダリングされる。図1Aに示す例において例示されるように、広告145Aはスクロール不要視認領域に現れるが、広告145Bはなお見えない。広告のコンテンツは、サードパーティ広告主によって少なくとも部分的に決定される。
主本体領域150に関連付けられるディスプレイ・オブジェクトは、複数のニュースフィード・アイテム(155A乃至155Eのみを示すが、より多くのニュースフィード・アイテムが設けられてもよい)を含み、その各々はユーザの友達(すなわち、ソーシャルグラフのつながり)に関係するアクティビティに関連付けられるディスプレイ・オブジェクトに基づいてレンダリングされる。
図1Bは、図1Aの詳細なセクションを例示するワイヤフレームであり、コンテンツ・レイアウト100の主本体領域150におけるニュースフィード・アイテム155B乃至155Eを示す。図1Aに示すように、コンテンツ・レイアウト100の表示可能領域(点線で示す)は、タブレット・デバイスのスクリーン上に適合するコンテンツ・レイアウト100の部分を含む。
ニュースフィード・アイテム155のためのディスプレイ・オブジェクトはそれぞれ、友達の対話型のプロフィール画像160、友達の名前165、ニュースフィード・アイテム用のテキスト170、時間依存情報175(例えば、リストを見たか、コメントしたか、「いいね!」した人の絶えず更新される数、リストを見たか、コメントしたか、「いいね!」したもっとも最近の1人か2人の人の短いリスト等)、ニュースフィード・アイテムを「いいね!」するためのリンク180、ニュースフィード・アイテムに関するコメントへのリンク185、およびニュースフィード・アイテムを「共有する」ためのリンク190を含む。ニュースフィード・アイテムのためのディスプレイ・オブジェクトの各々は、1つ以上の画像195あるいは1つのビデオを更に含む。
対話型のプロフィール画像160の各々は、マウスのようなポインティングデバイスがプロフィール画像上にとどまると現れるソーシャルネットワークのユーザのプロフィールの要約を表示するポップアップ・ウィンドウをレンダリングするために、画像、テキスト、リンク、およびJAVASCRIPT(登録商標)コードを含むディスプレイ・オブジェクトに基づいてレンダリングされる。
図2は、アプリケーションで制御された、ディスプレイ・オブジェクトの事前補充方法を例示する。工程210で、アプリケーションは、予め生成すべきディスプレイ・オブジェクトの部分を識別する。例えば、図1Aに例示するように、ディスプレイ・オブジェクトは、ニュースフィードのためのコンテンツ・レイアウト・オブジェクトを含み、図1Bに示すように、ニュースフィードは、ニュースフィード要素155の長いリストを含む。予め生成するために識別されるディスプレイ・オブジェクトの部分は、ユーザが「ページ・ダウン」ボタンを押すことにより下へスクロールする場合に表示可能領域を満たすニュースフィード要素155の次の組を含む。
工程220では、アプリケーションは、UIスレッドが最小の期間の間アイドルとなる場合における時間の次のウィンドウを識別するためにUIスレッドを監視する。例えば、アプリケーションが60Hz(あるいは60フレーム/秒)のスクリーン・リフレッシュレート・レートでモバイル・コンピューティング・デバイス用のオペレーティング・システム上で作動している場合、オペレーティング・システムは16.67ミリ秒ごとにフレーム・バッファの充填を完了する必要がある。コンピューティング・デバイスが12ミリ秒でフレーム・バッファの充填を完了すると、16.67ミリ秒ごとに(フレーム・バッファを満たすオペレーションの完了時に)発生する4.67ミリ秒のウィンドウが残される。最小の期間は、少なくともコンテンツ・レイアウトに基づいて発生する可能性の高い多くのタスクに使用される最も小さな有用な期間である。
工程230では、アプリケーションは、アイドル時間の次の期間の間にUIスレッドにより実行するために、1つ以上の予め生成されるタスクを選択してメッセージ・キューに付加する。特定の実施形態では、アプリケーションは、迅速に実行される複数のタスクをグループ化する。1つ以上の予め生成されるタスクのための実行時間の合計は、時間の次のウィンドウにおいて利用可能な時間未満である。任意の所定のタスクのために予期される実行時間は、予め定められる評価で設定されるか、あるいは、個別のユーザやユーザ群に基づく所与の十分な履歴データにより時間にわたって学習される。実行される次のタスクが時間の次のウィンドウにおいて利用可能である時間よりも長くかかる特定の実施形態においては、アプリケーションはタスクが降伏点でサスペンドされると予期して、タスクをメッセージ・キューに単純に付加する。
特定の実施形態では、アプリケーションは、表示可能領域の面積、利用可能なメモリ、およびアプリケーションに特有の規則に基づいて、予め生成するためにディスプレイ・オブジェクトの特定の要素を選択する。特定の実施形態では、特にリストベースやグリッドベースのコンテンツ・レイアウトに関して、アプリケーション特有の規則に従い、インクリメントが設定され、これにより要素が予め生成される。
インクリメントは、表示可能領域の面積の範囲内に適合するリストまたはグリッドのアイテムの数によって定義されるユニットの倍数である。例えば、図1Bに示すように、4つのニュースフィード・アイテムが、表示可能領域の縦の面積を満たし、コンテンツ・レイアウトが、縦の面積に延びる(が、水平の面積ではない)。この例において、アプリケーション特有の規則に従い、ユニットが4つのニュースフィード・アイテムを含むと判断され(表示可能領域を満たすものであるため)、要素を予め生成するためのインクリメントが3であると決定される。これらにより、アプリケーションがニュースフィード・アイテム155B乃至155Eを表示するためのリクエストに応じる場合、アプリケーションは次の12のニュースフィード・アイテムに選択される要素を更に予め満たす。特定の実施形態では、倍数はユーザに特有の使用法パターンに基づく。例えば、ユーザが通常ニュースフィードを相当緩慢にスクロールする場合、倍数はより小さな数となる。逆に、ユーザが通常ニュースフィードを相当迅速にスクロールする場合、倍数はより大きな数となる。特定の実施形態では、倍数は、リストまたはグリッド要素のためのコンテンツの属性に更に基づく。例えば、コンテンツが非常に豊富であるとともにユーザがブラウズするのに時間がかかる可能性が高いタイプのものである場合(例えば、ユーザが各々の上をマウス操作すると再生される動画のサムネール)、倍数は低減される。
特定の実施形態では、アプリケーション特有の規則に従い、生成がよりコスト高であるディスプレイ・オブジェクトの要素の選択に優先順位が付けられる。要素を生成するコストは、任意の適用可能な基準、例えば要素のサイズ、要素の複雑度(例えば、要素が入れ子のディスプレイ・オブジェクトか。)、要素の時間依存性、プラットフォームの性能および構成(例えば、装置はクライアント側スクリプトの実行をサポートしないか、禁止するか。これに代わるより単純なコンテンツを備えた代替物が必要であるか。)などに基づき決定される。
特定の実施形態では、アプリケーション特有の規則に従い、利用可能なメモリに基づきディスプレイ・オブジェクトの要素が選択される。例えば、利用可能なメモリがあまりない場合、アプリケーションは、最もコスト高な要素のみを予め生成することを選択するが、より多くの利用可能なメモリがある場合、アプリケーションは、付加的な要素(多少それほどコスト高でない要素)を予め生成する。別の例において、利用可能なメモリがあまりない場合、アプリケーションは頻繁に再使用される可能性が高い要素を予め生成することを選択する。例えば、次の10のニュースフィード・アイテムがすべて人気のあるオンライン記事への同じ複合リンク(これは画像、テキスト、リンク、および他の情報を含む)を投稿した人に関係する場合、複合リンクを表す要素は他の要素よりも上の優先順位を受け取る。
工程240では、アプリケーションは、メッセージ・キューにおけるスケジュールされたタスクを実行する。特定の実施形態では、スケジュールされたタスクは、ディスプレイ・オブジェクトの要素の測定、および/またはレイアウトに関する。実行される次のタスクが時間の次のウィンドウで利用可能な時間よりも長くかかる特定の状況において、アプリケーションは、UIスレッドが著しく遅延することなくそのキュー(例えば、次のフレーム・バッファ充填)の他の作業を処理できるように降伏点でタスクの実行をサスペンドする。
工程245では、降伏点においてタスクをサスペンドする必要がある場合、アプリケーションは、UIスレッドにおけるメッセージ・キューにサスペンドされたタスクを戻して付加する。これにより、タスクは利用可能な次のウィンドウを再度占める。これに代えて、実施される予め生成される付加的なタスクがある場合、アプリケーションは次の1つ以上のタスクをスケジュールするために工程220に戻る。
工程250では、これから実行されるいくつかの選択されたタスクがなお存在する場合、工程220に戻るが、あるいは可能であれば(工程255)、アプリケーションは、完了させるべく予め生成されるタスクを実行する(予め生成されたコンテンツ・レイアウトの部分のためのリクエストが受け取られる前に十分な時間がある場合)。
工程260では、アプリケーションは、アプリケーションに適合したリサイクラにディスプレイ・オブジェクトの予め生成される要素を格納する。コンテンツ・レイアウトの関連する部分が表示可能領域のためにリクエストされるまで、これらの格納される要素は、リサイクラに保持される。
工程265では、一旦ディスプレイ・オブジェクトが予め生成されたコンテンツ・レイアウトの部分のためのリクエストが受け取られると、アプリケーションはアプリケーションに適合したリサイクラからディスプレイ・オブジェクトの任意の予め生成される要素を検索する(工程270)。しかしながら、リサイクラが以前に使用されたディスプレイ・オブジェクトおよびその要素の他、予め生成されるディスプレイ・オブジェクトおよびその要素を含むため、特定の実施形態においては、アプリケーションに適合したリサイクル・ポリシーが適用され、リサイクラにおける予め生成されたものを含むいずれのディスプレイ・オブジェクトおよびその要素が再使用に適切であるかが識別される。
リサイクラにおけるディスプレイ・オブジェクトは、現在リクエストされているコンテンツと同じか同様であるコンテンツを含む場合、再使用に適切である。検索されるディスプレイ・オブジェクトを再度使用するために、必要に応じてディスプレイ・オブジェクトの特定の要素を更新することが必要である。予め生成されたディスプレイ・オブジェクトにおいてさえ、ユーザがスクロールするのにどのくらいの時間がかかったかに応じて、所定の時間依存要素を少なくとも更新する必要がある。
リサイクラにおけるディスプレイ・オブジェクトは、同じタイプのオブジェクトであるが異なるコンテンツを含む場合、再利用に適切である。この場合、アプリケーションは、リクエストされたコンテンツを有するディスプレイ・オブジェクトをゼロからリアル・タイムに生成し(これらは任意の予め生成されるディスプレイ・オブジェクトやその要素のためである必要はない)、これにより、ディスプレイ・オブジェクトにおける既存のコンテンツのほとんど、あるいはそうでない場合すべてを上書きする。
いずれのディスプレイ・オブジェクトが再使用、再利用に適切であるか、あるいは適切でないかの判断は、アプリケーション特有の、装置特有の、および/または、ユーザ特有のリサイクル・ポリシーに依存する。特定の実施形態では、アプリケーションは、アプリケーション要件、コンテンツのタイプ、装置属性(例えば、利用可能なメモリおよび/またはディスプレイ・スクリーンの面積。)、コンテンツ統計、使用パターンおよび選択、あるいは1つ以上の任意の他の適切な要因に従って、リサイクル・ポリシーを設定する。これらのポリシーにより、オブジェクトをリサイクラにいくつ保持するか、いかなるタイプのオブジェクトをリサイクラに格納するか、どのようにディスプレイ・オブジェクトが再使用および/または再利用に適切であるかを判断するか、ディスプレイ・オブジェクトをいつ再使用乃至再利用するかが管理される。
リサイクラがゼロ(null)を返すと、アプリケーションは、リクエストされたコンテンツを表示するために適切なタイプの新しいディスプレイ・オブジェクトを膨らませ、続いてリクエストされたコンテンツを有するディスプレイ・オブジェクトを生成する。新しいディスプレイ・オブジェクトを膨らませること、および空のディスプレイ・オブジェクトを生成することは、コスト高な作業であるため、これは最も高価なパスである。従って、アプリケーションは、リサイクラに格納される適切なディスプレイ・オブジェクトをいつ再利用するか、あるいは再利用を禁止するかを決定する場合、対立する優先順位の均衡を保つ必要がある。
工程280では、アプリケーションは、表示可能領域のために要求されるようなディスプレイ・オブジェクトを生成する処理を完了し、リクエストに応じてディスプレイ・オブジェクトを返す。
ここに開示される実施形態は、ディスプレイ・オブジェクトの要素に関して実施されるものとして記述されるが、特定の実施形態においては、ここに開示される技術は、ディスプレイ・オブジェクトの所定の要素(ディスプレイ・オブジェクトそのものであってもよい)に対して、これらの要素の一部あるいはすべてを予め満たすために、再帰的な方法で適用されてもよい。
ここに開示される実施形態は、アプリケーションによって実施されるものとして記述されるが、当業者に認識されるように、ここに開示される例示の方法200および他の実施形態の工程の多くは、1つ以上の抽象化層で作動する1つ以上のソフトウェアによって実施される。例えば、上述した例示の方法の工程は、アプリケーションとは個別に実行されるとともにアプリケーションとリサイクラとのインターフェースとなるソフトウェアによって実行される。
特定の実施形態においては、適切な場合、図2の方法の1つ以上の工程を繰り返す。本開示は特定の順序で生じるものとして図2の方法の特定の工程について記述し、例示しているが、本開示において任意の好適な順序で生じる図2の方法の任意の好適な工程も考えられる。更に、本開示は図2の方法の特定の工程を実施する特定のコンポーネント、装置、あるいはシステムについて開示し記述するが、本開示においては、図2の方法の任意の適切な工程を実施する任意の適切なコンポーネント、装置、あるいはシステムが考えられる。
図3は、ソーシャル・ネットワーキング・システムに関連付けられるネットワーク環境300を例示する。ネットワーク環境300は、ネットワーク310によって互いに接続されたユーザ301、クライアント・システム330、ソーシャル・ネットワーキング・システム360、およびサード・パーティ・システム370を含む。図3はユーザ301、クライアント・システム330、ソーシャル・ネットワーキング・システム360、サード・パーティ・システム(third−party system)370、およびネットワーク310の特定の構成を示すが、本開示は、ユーザ301、クライアント・システム330、ソーシャル・ネットワーキング・システム360、サード・パーティ・システム370、およびネットワーク310の任意の適切な構成を企図する。限定ではなく例として、ネットワーク310を迂回して、クライアント・システム330、ソーシャル・ネットワーキング・システム360、およびサード・パーティ・システム370のうちの2つ以上を互いに直接的に接続することができる。別の例として、クライアント・システム330、ソーシャル・ネットワーキング・システム360、およびサード・パーティ・システム370のうちの2つ以上を、物理的または論理的に、全体的または部分的に共に配置することができる。さらに、図3は特定の数のユーザ301、クライアント・システム330、ソーシャル・ネットワーキング・システム360、サード・パーティ・システム370、およびネットワーク310を示すが、本開示は、任意の適切な数のユーザ301、クライアント・システム330、ソーシャル・ネットワーキング・システム360、サード・パーティ・システム370、およびネットワーク310を企図する。限定ではなく例として、ネットワーク環境300は、複数のユーザ301、クライアント・システム330、ソーシャル・ネットワーキング・システム360、サード・パーティ・システム370、およびネットワーク310を含むことができる。
特定の実施形態では、ユーザ301は、ソーシャル・ネットワーキング・システム360と、またはソーシャル・ネットワーキング・システム360を介して対話または通信する個人(人間のユーザ)、エンティティ(例えば、企業、ビジネス、またはサード・パーティ・アプリケーション)、または(例えば、個人またはエンティティの)グループでよい。特定の実施形態では、ソーシャル・ネットワーキング・システム360は、オンライン・ソーシャル・ネットワークをホストするネットワーク・アドレス指定可能コンピューティング・システム(network−addressable computing system)でよい。ソーシャル・ネットワーキング・システム360は、例えば、ユーザ・プロファイル・データ、概念プロファイル・データ、ソーシャル・グラフ情報、またはオンライン・ソーシャル・ネットワークに関する他の適切なデータなどのソーシャル・ネットワーキング・データを生成、格納、受信、および送信することができる。ネットワーク環境300の他の構成要素により、直接的に、またはネットワーク310を介して、ソーシャル・ネットワーキング・システム360にアクセスすることができる。特定の実施形態では、ソーシャル・ネットワーキング・システム360は、例えば、適切なプライバシー設定を設定することなどにより、ユーザ301がそのアクションをソーシャル・ネットワーキング・システム360によって記録させること、または他のシステム(例えば、サード・パーティ・システム370)と共有させることを選択するか、または選択しないことを可能にする許可サーバ(あるいは他の適切な1つ以上の構成要素)を含むことができる。ユーザのプライバシー・セッティングにより、ユーザに関連付けられるどのような情報のログが記録されるか、どのようにユーザに関連付けられる情報のログが記録されるか、いつユーザに関連付けられる情報がログを記録されるか、誰がユーザに関連付けられる情報のログを記録するか、誰がユーザに関連付けられる情報を共有するか、いかなる目的でユーザに関連付けられる情報のログを記録するか、あるいは情報を共有するかが決定される。認証サーバは、好適にブロッキング、データ・ハッシング、匿名化、あるいは他の適切な技術を介してソーシャル・ネットワーキング・システム30のユーザの1つ以上のプライバシー・セッティングを強化するために使用される。ネットワーク環境300の他の構成要素により、直接的に、またはネットワーク310を介して、サード・パーティ・システム370にアクセスすることができる。特定の実施形態では、1人または複数のユーザ301は、1つまたは複数のクライアント・システム330を使用して、ソーシャル・ネットワーキング・システム360またはサード・パーティ・システム370にアクセスしてデータを送り、ソーシャル・ネットワーキング・システム360またはサード・パーティ・システム370からデータを受信することができる。クライアント・システム330は、直接的に、ネットワーク310を介して、またはサード・パーティ・システムを介して、ソーシャル・ネットワーキング・システム360またはサード・パーティ・システム370にアクセスすることができる。限定ではなく例として、クライアント・システム330は、ソーシャル・ネットワーキング・システム360を介してサード・パーティ・システム370にアクセスすることができる。クライアント・システム330は、例えば、パーソナル・コンピュータ、ラップトップ・コンピュータ、携帯電話、スマートフォン、またはタブレット・コンピュータなどの任意の適切なコンピューティング装置でよい。
本開示は任意の適切なネットワーク310を企図する。限定ではなく例として、ネットワーク310のうちの1つまたは複数の部分は、アドホック・ネットワーク(ad hoc network)、イントラネット、エクストラネット、仮想プライベート・ネットワーク(virtual private network:VPN)、ローカル・エリア・ネットワーク(local area network:LAN)、ワイヤレスLAN(wireless LAN:WLAN)、広域ネットワーク(wide area network:WAN)、ワイヤレスWAN(wireless WAN:WWAN)、大都市圏ネットワーク(metropolitan area network:MAN)、インターネットの一部、公衆交換電話網(Public Switched Telephone Network:PSTN)の一部、携帯電話網、またはこれらの2つ以上の組合せを含むことができる。ネットワーク310は1つまたは複数のネットワーク310を含むことができる。
リンク350は、クライアント・システム330、ソーシャル・ネットワーキング・システム360、およびサード・パーティ・システム370を通信ネットワーク310に接続するか、または互いに接続することができる。本開示は任意の適切なリンク350を企図する。特定の実施形態では、1つまたは複数のリンク350は、1つまたは複数のワイヤーライン(wireline)(例えば、デジタル加入者線(Digital Subscriber Line:DSL)またはData Over Cable Service Interface Specification(DOCSIS)など)、ワイヤレス(例えば、Wi−FiまたはWorldwide Interoperability for Microwave Access(WiMAX)など)、または光(例えば、同期光ネットワーク(Synchronous Optical Network:SONET)または同期デジタル階層(Synchronous Digital Hierarchy:SDH)など)リンクを含む。特定の実施形態では、1つまたは複数のリンク350はそれぞれ、アドホック・ネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部、PSTNの一部、セルラ技術ベースのネットワーク、衛星通信技術ベースのネットワーク、別のリンク350、または2つ以上のそのようなリンク350の組合せを含む。リンク350は、必ずしもネットワーク環境300全体を通じて同一である必要はない。1つまたは複数の第1のリンク350は、1つまたは複数の点で1つまたは複数の第2のリンク350と異なることがある。
図4は、例示的なソーシャル・グラフ400を示す。特定の実施形態では、ソーシャル・ネットワーキング・システム360は、1つまたは複数のデータ・ストア(data store)内に1つまたは複数のソーシャル・グラフ400を格納することができる。特定の実施形態では、ソーシャル・グラフ400は、複数のノード(これは複数のユーザ・ノード402または複数の概念ノード(concept node)404を含むことができる)と、ノードを接続する複数のエッジ(edge)406とを含むことができる。図4に示される例示的なソーシャル・グラフ400は、説明のために、2次元視覚マップ表現で示されている。特定の実施形態では、ソーシャル・ネットワーキング・システム360、クライアント・システム330、またはサード・パーティ・システム370は、ソーシャル・グラフ400および適切なアプリケーションについての関連するソーシャル・グラフ情報にアクセスすることができる。ソーシャル・グラフ400のノードおよびエッジを、データ・オブジェクトとして、例えばデータ・ストア(ソーシャル・グラフ・データベースなど)内に格納することができる。そのようなデータ・ストアは、ソーシャル・グラフ400のノードまたはエッジの1つまたは複数の検索可能または照会可能な索引を含むことができる。
特定の実施形態では、ユーザ・ノード402は、ソーシャル・ネットワーキング・システム360のユーザに対応することができる。限定ではなく例として、ユーザは、ソーシャル・ネットワーキング・システム360と、またはソーシャル・ネットワーキング・システム360を介して対話または通信する個人(人間のユーザ)、エンティティ(例えば、企業、ビジネス、またはサード・パーティ・アプリケーション)、または(例えば、個人またはエンティティの)グループでよい。特定の実施形態では、ユーザがソーシャル・ネットワーキング・システム360にアカウントを登録するとき、ソーシャル・ネットワーキング・システム360は、ユーザに対応するユーザ・ノード402を作成し、1つまたは複数のデータ・ストア内にユーザ・ノード402を格納することができる。本明細書で説明するユーザおよびユーザ・ノード402は、適切な場合、登録されたユーザおよび登録されたユーザに関連するユーザ・ノード402を指す。追加または代替として、本明細書で説明するユーザおよびユーザ・ノード402は、適切な場合、ソーシャル・ネットワーキング・システム360に登録していないユーザを指す。特定の実施形態では、ユーザによって提供される情報、またはソーシャル・ネットワーキング・システム360を含む様々なシステムによって収集される情報に、ユーザ・ノード402を関連付けることができる。限定ではなく例として、ユーザは、ユーザの名前、プロファイル写真、連絡先情報、誕生日、性別、結婚状況、家族状況、職業、学歴、好み、関心、または他の人口統計情報を提供することができる。特定の実施形態では、ユーザに関連する情報に対応する1つまたは複数のデータ・オブジェクトにユーザ・ノード402を関連付けることができる。特定の実施形態では、ユーザ・ノード402は、1つまたは複数のウェブ・ページに対応することができる。
特定の実施形態では、概念ノード404は概念(concept)に対応することができる。限定ではなく例として、概念は、場所(例えば、映画館、レストラン、ランドマーク、または都市など)、ウェブサイト(例えば、ソーシャル・ネットワーク・システム360に関連するウェブサイトまたはウェブ・アプリケーション・サーバに関連するサード・パーティ・ウェブサイトなど)、エンティティ(例えば、人、会社、グループ、スポーツ・チーム、または有名人など)、ソーシャル・ネットワーキング・システム360内またはウェブ・アプリケーション・サーバなどの外部サーバ上に位置することのできるリソース(例えば、オーディオ・ファイル、ビデオ・ファイル、デジタル・フォト、テキスト・ファイル、構造化された文書、またはアプリケーションなど)、物的または知的財産(例えば、彫刻、絵画、映画、ゲーム、歌、アイデア、写真、または著作物など)、ゲーム、活動、アイデアまたは理論、他の適切な概念、あるいは2つ以上のそのような概念に対応することができる。ユーザによって提供される概念の情報、またはソーシャル・ネットワーキング・システム360を含む様々なシステムによって収集される情報に概念ノード404を関連付けることができる。限定ではなく例として、概念の情報は、名前またはタイトル、1つまたは複数のイメージ(例えば、本のカバー・ページのイメージ)、位置(例えば、住所または地理的位置)、ウェブサイト(それをURLに関連付けることができる)、連絡先情報(例えば、電話番号またはeメール・アドレス)、他の適切な概念情報、またはそのような情報の任意の適切な組合せを含むことができる。特定の実施形態では、概念ノード404に関連する情報に対応する1つまたは複数のデータ・オブジェクトに概念ノード404を関連付けることができる。特定の実施形態では、概念ノード404は1つまたは複数のウェブ・ページに対応することができる。
特定の実施形態では、ソーシャル・グラフ400内のノードは、ウェブ・ページ(「プロファイル・ページ」と呼ばれることがある)を表すこと、またはウェブ・ページによって表すことができる。プロファイル・ページは、ソーシャル・ネットワーキング・システム360によってホストすること、またはソーシャル・ネットワーキング・システム360にとってアクセス可能にすることができる。プロファイル・ページはまた、サード・パーティ・サーバ370に関連するサード・パーティ・ウェブサイト上でホストすることもできる。限定ではなく例として、特定の外部ウェブ・ページに対応するプロファイル・ページは、特定の外部ウェブ・ページでよく、プロファイル・ページは、特定の概念ノード404に対応することができる。プロファイル・ページは、他のユーザのすべてまたは選択された一部分によって閲覧可能とすることができる。限定ではなく例として、ユーザ・ノード402は、対応するユーザがその中でコンテンツを追加し、宣言を行い、あるいはユーザ自身を表現することのできる、対応するユーザ・プロファイル・ページを有することができる。限定ではなく別の例として、概念ノード404は、特に概念ノード404に対応する概念に関連して、1人または複数のユーザがその中でコンテンツを追加し、宣言を行い、またはユーザ自身を表現することのできる、対応する概念プロファイル・ページを有することができる。
特定の実施形態では、概念ノード404は、サード・パーティ・システム370によってホストされるサード・パーティ・ウェブページまたはリソースを表すことができる。サード・パーティ・ウェブページまたはリソースは、他の要素において、コンテンツ、選択可能な、もしくは他のアイコン、またはアクションもしくは活動を表す(例えば、JAVA(登録商標)Script、AJAX、またはPHPコードで実装することのできる)他の対話型オブジェクトを含むことができる。限定ではなく例として、サード・パーティ・ウェブページは、「いいね」、「チェックイン(check in)」、「食べる(eat)」、「レコメンド(recommend)」、または別の適切なアクションもしくは活動などの、選択可能なアイコンを含むことができる。サード・パーティ・ウェブページを閲覧するユーザは、アイコンのうちの1つ(例えば、「食べる」)を選択し、クライアント・システム330に、ユーザのアクションを示すメッセージをソーシャル・ネットワーキング・システム360に送信させることによってアクションを実施することができる。メッセージに応答して、ソーシャル・ネットワーキング・システム360は、ユーザに対応するユーザ・ノード402と、サード・パーティ・ウェブページまたはリソースに対応する概念ノード404との間のエッジ(例えば、「食べる」エッジ)を作成し、1つまたは複数のデータ・ストア内にエッジ406を格納することができる。
特定の実施形態では、1つまたは複数のエッジ406によってソーシャル・グラフ400内の1対のノードを互いに接続することができる。1対のノードを接続するエッジ406は、その1対のノード間の関係を表すことができる。特定の実施形態では、エッジ406は、1対のノード間の関係に対応する1つまたは複数のデータ・オブジェクトまたは属性を含むか、または表すことができる。限定ではなく例として、第1のユーザは、第2のユーザが第1のユーザの「友人」であることを示すことができる。この表示に応答して、ソーシャル・ネットワーキング・システム360は、第2のユーザに「友人要求」を送信することができる。第2のユーザが「友人要求」を確認した場合、ソーシャル・ネットワーキング・システム360は、第1のユーザのユーザ・ノード402をソーシャル・グラフ400内の第2のユーザのユーザ・ノード402に接続するエッジ406を作成し、1つまたは複数のデータ・ストア364のうちのエッジ406をソーシャル・グラフ情報として格納することができる。図4の例では、ソーシャル・グラフ400は、ユーザ「A」とユーザ「B」のユーザ・ノード402間の友人関係を示すエッジ406と、ユーザ「C」とユーザ「B」のユーザ・ノード402間の友人関係を示すエッジとを含む。本開示は、特定のユーザ・ノード402を接続する特定の属性を有する特定のエッジ406を説明するかまたは図示するが、本開示は、ユーザ・ノード402を接続する任意の適切な属性を有する任意の適切なエッジ406を企図する。限定ではなく例として、エッジ406は、友人関係、家族関係、ビジネスまたは雇用関係、ファン関係(fan relationship)、フォロワ関係、ビジター関係(visitor relationship)、加入者関係、上位/従属関係、相互関係、非相互関係、別の適切なタイプの関係、または2つ以上のそのような関係を表すことができる。さらに、本開示は一般にノードが接続されているものとして説明するが、本開示はまた、ユーザまたは概念が接続されているものとして説明する。本明細書では、接続されているユーザまたは概念に対する参照は、適切な場合、1つまたは複数のエッジ406によってソーシャル・グラフ400内で接続されているユーザまたは概念に対応するノードを指すことがある。
特定の実施形態では、ユーザ・ノード402と概念ノード404との間のエッジ406は、概念ノード404に関連する概念に対する、ユーザ・ノード402に関連するユーザによって実施される特定のアクションまたは活動を表すことができる。限定ではなく例として、図4に示されるように、ユーザは、概念に対して「いいね」を表明し、概念に「出席し」、概念を「再生し」、概念を「聴取し」、概念を「調理し」、概念に「取り組み」、または概念を「視聴する」ことができ、そのそれぞれは、エッジ・タイプまたはサブタイプに対応することができる。概念ノード404に対応する概念プロファイル・ページは、例えば、選択可能な「チェックイン」アイコン(例えば、クリッカブル(clickable)「チェックイン」アイコンなど)または選択可能な「お気に入りに追加」アイコンを含むことができる。同様に、ユーザがこれらのアイコンをクリックした後、ソーシャル・ネットワーキング・システム360は、それぞれのアクションに対応するユーザのアクションに応答して、「お気に入り」エッジまたは「チェックイン」エッジを作成することができる。限定ではなく別の例として、ユーザ(ユーザ「C」)が、特定のアプリケーション(オンライン音楽アプリケーションであるSPOTIFY)を使用して、特定の歌を聴取することができる(「Ramble On」)。この場合、ソーシャル・ネットワーキング・システム360は、(図4に示すように)ユーザに対応するユーザ・ノード402と、歌およびアプリケーションに対応する概念ノード404との間の「聴取済み(listened)」エッジ406および「使用済み(used)」エッジを作成し、ユーザが歌を聴取し、アプリケーションを使用したことを示すことができる。さらに、ソーシャル・ネットワーキング・システム360は、(図4に示すように)歌およびアプリケーションに対応する概念ノード404間の「再生済み(played)」エッジ406を作成し、特定の歌が特定のアプリケーションによって再生されたことを示すことができる。この場合、「再生済み」エッジ406は、外部アプリケーション(SPOTIFY)によって外部オーディオ・ファイル(歌「イマジン」)に対して実施されたアクションに対応する。本開示は、ユーザ・ノード402および概念ノード404を接続する特定の属性を有する特定のエッジ406を説明するが、本開示は、ユーザ・ノード402および概念ノード404を接続する任意の適切な属性を有する任意の適切なエッジ406を企図する。さらに、本開示は単一の関係を表すユーザ・ノード402と概念ノード404との間のエッジを説明するが、本開示は、1つまたは複数の関係を表すユーザ・ノード402と概念ノード404との間のエッジを企図する。限定ではなく例として、エッジ406は、ユーザが特定の概念を好むこと、および特定の概念を使用したことの両方を表すことができる。あるいは、別のエッジ406は、(図4の、ユーザ「E」に関するユーザ・ノード402と、「SPOTIFY」に関する概念ノード404との間で示されるように)ユーザ・ノード402と概念ノード404との間の各タイプの関係(または複数の単一の関係)を表すことができる。
特定の実施形態では、ソーシャル・ネットワーキング・システム360は、ソーシャル・グラフ400内のユーザ・ノード402と概念ノード404との間のエッジ406を作成することができる。限定ではなく例として、(例えば、ユーザのクライアント・システム330によってホストされるウェブ・ブラウザまたは専用アプリケーションを使用することによって)概念プロファイル・ページを閲覧するユーザは、「いいね」アイコンをクリックまたは選択することにより、ユーザが概念ノード404によって表される概念を好むことを示すことができ、それによって、ユーザのクライアント・システム330に、ユーザが概念プロファイル・ページに関連する概念を好むことを示すメッセージをソーシャル・ネットワーキング・システム360に送信させることができる。メッセージに応答して、ソーシャル・ネットワーキング・システム360は、ユーザと概念ノード404との間の「いいね」エッジ406で示されるように、ユーザに関連するユーザ・ノード402と、概念ノード404との間のエッジ406を作成することができる。特定の実施形態では、ソーシャル・ネットワーキング・システム360は、1つまたは複数のデータ・ストア内にエッジ406を格納することができる。特定の実施形態では、特定のユーザ・アクションに応答して、エッジ406をソーシャル・ネットワーキング・システム360によって自動的に形成することができる。限定ではなく例として、第1のユーザが写真をアップロードし、映画を視聴し、または歌を聴取する場合、第1のユーザに対応するユーザ・ノード402と、これらの概念に対応する概念ノード404との間のエッジ406を形成することができる。本開示は、特定の方式で特定のエッジ406を形成することを説明するが、本開示は、任意の適切な方式で任意の適切なエッジ406を形成することを企図する。
特定の実施形態では、広告は、テキスト(HTMLリンクされる)、1つ以上の画像(HTMLリンクされる)、1つ以上の動画、オーディオ、1つ以上のADOBE FLASHファイル、これらの適切な組み合わせ、あるいは1つ以上のウェブ・ページ上に、1つ以上の電子メールに、あるいはユーザによって要求された検索結果に関して示される任意の適切なデジタル形式の任意の他の適切な広告である。付加的に、あるいはこれに代えて、広告は、1つ以上のスンポンサード・ストーリ(例えばソーシャル・ネットワーキング・システム360上のニュースフィードあるいはティッカー・アイテム)である。スポンサード・ストーリは、ユーザによるソーシャル・アクションである(例えば、ページを「いいね!」し、ページで「いいね!」するかコメントし、ページに関連付けられたイベントに回答を促し(RSVPing)、ページに投稿された質問に投票し、場所にチェックインし、アプリケーションを使用するか、ゲームをプレイし、あるいはウェブサイトを「いいね!」するか共有する)。広告主は、例えば、ユーザのプロフィール・ページあるいは他のページの予め定められた領域内で示されたソーシャル・アクションを、広告主に関連付けられた付加的な情報とともに示し、他のユーザのニュースフィードやティッカー内で立体表示するか強調表示し、あるいは他の方法で促進することにより促進する。広告主はソーシャル・アクションを促進するために支払いをする。限定ではなく、例として、広告は、検索結果ページの検索結果の間に含まれ、スポンサード・コンテンツは、非スポンサード・コンテンツに対して促進される。
特定の実施形態においては、広告は、ソーシャル・ネットワーキング・システムのウェブ・ページ、サードパーティのウェブ・ページ、あるいは他のページ内で表示されるように要求される。広告は、例えばページのトップのバナー領域に、ページの側部の欄に、ページのGUIに、ポップアップ・ウィンドウに、ドロップダウン・メニューに、ページの入力フィールドに、ページのコンテンツのトップ上に、あるいはページに対する他の位置などの、ページの専用部分に表示される。付加的に、あるいはこれに代えて、広告はアプリケーション内に表示されてもよい。広告は、専用ページ内に表示され、ユーザがページにアクセスするかアプリケーションを利用するに先だって、広告と対話するか広告を見ることをユーザに要求する。ユーザは、例えばウェブ・ブラウザを介して広告を見る。
図5は、例示的なコンピュータ・システム500を示す。特定の実施形態では、1つまたは複数のコンピュータ・システム500は、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実施する。特定の実施形態では、1つまたは複数のコンピュータ・システム500は、本明細書で説明または図示される機能を提供する。特定の実施形態では、1つまたは複数のコンピュータ・システム500上で実行中のソフトウェアが、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実施しまたは本明細書で説明または図示される機能を提供する。特定の実施形態は、1つまたは複数のコンピュータ・システム500の1つまたは複数の部分を含む。本明細書では、適切な場合、コンピュータ・システムに対する参照はコンピューティング装置を包含し、逆も同様である。さらに、適切な場合、コンピュータ・システムに対する参照は、1つまたは複数のコンピュータ・システムを包含する。
本開示は、任意の適切な数のコンピュータ・システム500を企図する。本開示は、任意の適切な物理的形態を取るコンピュータ・システム500を企図する。限定ではなく例として、コンピュータ・システム500は、組込みコンピュータ・システム、システム・オン・チップ(SOC)、シングル・ボード・コンピュータ・システム(SBC)(例えば、コンピュータ・オン・モジュール(COM)やシステム・オン・モジュール(SOM)など)、デスクトップ・コンピュータ・システム、ラップトップもしくはノートブック・コンピュータ・システム、対話型キオスク、メインフレーム、コンピュータ・システムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、タブレット・コンピュータ・システム、またはこれらの2つ以上の組合せでよい。適切な場合、コンピュータ・システム500は、1つまたは複数のコンピュータ・システム500を含むことができ、一体型または分散型でよく、複数の場所にわたるものでよく、複数のマシンにわたるものでよく、複数のデータセンタにわたるものでよく、またはクラウド内に常駐することができ、クラウドは、1つまたは複数のネットワーク内の1つまたは複数のクラウド構成要素を含むことができる。適切な場合、1つまたは複数のコンピュータ・システム500は、実質的な空間的または時間的な限定なしに、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実施することができる。限定ではなく例として、1つまたは複数のコンピュータ・システム500は、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップをリアル・タイムに、またはバッチ・モードで実施することができる。適切な場合、1つまたは複数のコンピュータ・システム500は、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを異なる時刻または異なる場所で実施することができる。
特定の実施形態では、コンピュータ・システム500は、プロセッサ502、メモリ504、ストレージ506、入力/出力(I/O)インターフェース508、通信インターフェース510、およびバス512を含む。本開示は、特定の構成の、特定の数の特定の構成要素を有する特定のコンピュータ・システムを説明および図示するが、本開示は、任意の適切な構成の、任意の適切な数の任意の適切な構成要素を有する任意の適切なコンピュータ・システムを企図する。
特定の実施形態では、プロセッサ502は、コンピュータ・プログラムを構成するような命令を実行するハードウェアを含む。限定ではなく例として、命令を実行するために、プロセッサ502は、内部レジスタ、内部キャッシュ、メモリ504、またはストレージ506から命令を取り出し(またはフェッチし)、その命令を復号化および実行し、次いで内部レジスタ、内部キャッシュ、メモリ504、またはストレージ506に1つまたは複数の結果を書き込むことができる。特定の実施形態では、プロセッサ502は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含むことができる。本開示は、適切な場合、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ502を企図する。限定ではなく例として、プロセッサ502は、1つまたは複数の命令キャッシュ、1つまたは複数のデータ・キャッシュ、および1つまたは複数の変換ルックアサイド・バッファ(translation lookaside buffer:TLB)を含むことができる。命令キャッシュ内の命令は、メモリ504またはストレージ506内の命令のコピーでよく、命令キャッシュは、プロセッサ502によるそうした命令の検索を加速することができる。データ・キャッシュ内のデータは、プロセッサ502で実行中の命令が演算するためのメモリ504またはストレージ506内のデータ、プロセッサ502で実行中の後続の命令によるアクセスのために、またはメモリ504もしくはストレージ506に書き込むために、プロセッサ502で実行された以前の命令の結果、あるいは他の適切なデータのコピーでもよい。データ・キャッシュは、プロセッサ502による読取りまたは書込み演算を加速することができる。TLBはプロセッサ502のための仮想アドレス変換(virtual−address translation)を加速することができる。特定の実施形態では、プロセッサ502は、データ、命令、またはアドレス用の1つまたは複数の内部レジスタを含むことができる。本開示は、適切な場合、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ502を企図する。適切な場合、プロセッサ502は、1つまたは複数の演算論理装置(arithmetic logic unit:ALU)を含むことができ、マルチコア・プロセッサでよく、または1つまたは複数のプロセッサ502を含むことができる。本開示は特定のプロセッサを説明および図示するが、本開示は任意の適切なプロセッサを企図する。
特定の実施形態では、メモリ504は、プロセッサ502が実行するための命令、またはプロセッサ502が演算するためのデータを格納するメイン・メモリを含む。限定ではなく例として、コンピュータ・システム500は、ストレージ506または別のソース(例えば、別のコンピュータ・システム500など)からメモリ504に命令をロードすることができる。次いでプロセッサ502は、メモリ504から内部レジスタまたは内部キャッシュに命令をロードすることができる。命令を実行するために、プロセッサ502は、内部レジスタまたは内部キャッシュから命令を取り出し、その命令を復号化することができる。命令の実行中または実行後に、プロセッサ502は、1つまたは複数の結果(これは中間結果または最終結果でよい)を内部レジスタまたは内部キャッシュに書き込むことができる。次いでプロセッサ502は、そうした結果の1つまたは複数をメモリ504に書き込むことができる。特定の実施形態では、プロセッサ502は、(ストレージ506または他の場所ではなく)1つまたは複数の内部レジスタもしくは内部キャッシュ内、またはメモリ504内の命令のみを実行し、(ストレージ506または他の場所ではなく)1つまたは複数の内部レジスタもしくは内部キャッシュ内、またはメモリ504内のデータのみに対して演算する。1つまたは複数のメモリ・バス(これはそれぞれアドレス・バスおよびデータ・バスを含むことができる)が、プロセッサ502をメモリ504に結合することができる。バス512は、以下で説明するように、1つまたは複数のメモリ・バスを含むことができる。特定の実施形態では、1つまたは複数のメモリ管理ユニット(memory management unit:MMU)が、プロセッサ502とメモリ504との間に常駐し、プロセッサ502によって要求されたメモリ504へのアクセスを可能にする。特定の実施形態では、メモリ504はランダム・アクセス・メモリ(RAM)を含む。適切な場合、このRAMは揮発性メモリでよい。適切な場合、このRAMはダイナミックRAM(DRAM)またはスタティックRAM(SRAM)でよい。さらに、適切な場合、このRAMは、単一ポートまたはマルチポートRAMでよい。本開示は任意の適切なRAMを企図する。適切な場合、メモリ504は、1つまたは複数のメモリ504を含むことができる。本開示は特定のメモリを説明および図示するが、本開示は任意の適切なメモリを企図する。
特定の実施形態では、ストレージ506は、データまたは命令用のマス・ストレージを含む。限定ではなく例として、ストレージ506は、ハード・ディスク・ドライブ(HDD)、フロッピー(登録商標)・ディスク・ドライブ、フラッシュ・メモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサル・シリアル・バス(USB)ドライブ、あるいはこれらのうちの2つ以上の組合せを含むことができる。ストレージ506は、適切な場合、取外し可能または取外し不能(または固定)媒体を含むことができる。ストレージ506は、適切な場合、コンピュータ・システム500の内部または外部でよい。特定の実施形態では、ストレージ506は不揮発性固体メモリである。特定の実施形態では、ストレージ506は読取り専用メモリ(ROM)を含む。適切な場合、このROMは、マスクプログラムされたROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気消去可能PROM(EEPROM)、電気書換え可能ROM(EAROM)、またはフラッシュ・メモリ、あるいはこれらのうちの2つ以上の組合せでよい。本開示は、任意の適切な物理的形態を有するマス・ストレージ506を企図する。適切な場合、ストレージ506は、プロセッサ502とストレージ506との間の通信を可能にする1つまたは複数のストレージ制御ユニットを含むことができる。適切な場合、ストレージ506は、1つまたは複数のストレージ506を含むことができる。本開示は特定のストレージを説明および図示するが、本開示は任意の適切なストレージを企図する。
特定の実施形態では、I/Oインターフェース508は、コンピュータ・システム500と1つまたは複数のI/O装置との間の通信のための1つまたは複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータ・システム500は、適切な場合、これらのI/O装置のうちの1つまたは複数を含むことができる。これらのI/O装置のうちの1つまたは複数は、人とコンピュータ・システム500との間の通信を可能にすることができる。限定ではなく例として、I/O装置は、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチル・カメラ、スタイラス、タブレット、タッチ・スクリーン、トラックボール、ビデオ・カメラ、別の適切なI/O装置、またはこれらのうちの2つ以上の組合せを含むことができる。I/O装置は1つまたは複数のセンサを含むことができる。本開示は、任意の適切なI/O装置およびそのための任意の適切なI/Oインターフェース508を企図する。適切な場合、I/Oインターフェース508は、プロセッサ502がこれらのI/O装置のうちの1つまたは複数を駆動することを可能にする1つまたは複数のデバイス・ドライバまたはソフトウェア・ドライバを含むことができる。I/Oインターフェース508は、適切な場合、1つまたは複数のI/Oインターフェース508を含むことができる。本開示は特定のI/Oインターフェースを説明および図示するが、本開示は任意の適切なI/Oインターフェースを企図する。
特定の実施形態では、通信インターフェース510は、コンピュータ・システム500と、1つまたは複数の別のコンピュータ・システム500あるいは1つまたは複数のネットワークとの間の通信(例えば、パケット・ベースの通信など)用の1つまたは複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく例として、通信インターフェース510は、イーサネット(登録商標)または他のワイヤ・ベースのネットワークと通信するネットワーク・インターフェース・コントローラ(network interface controller:NIC)またはネットワーク・アダプタ、あるいはWi−Fiネットワークなどのワイヤレス・ネットワークと通信するワイヤレスNIC(wire−based network or a wireless:WNIC)またはワイヤレス・アダプタを含むことができる。本開示は、任意の適切なネットワークおよびそのための任意の適切な通信インターフェース510を企図する。限定ではなく例として、コンピュータ・システム500は、アドホック・ネットワーク、パーソナル・エリア・ネットワーク(PAN)、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、大都市圏ネットワーク(metropolitan area network:MAN)、またはインターネットの1つもしくは複数の部分、あるいはこれらのうちの2つ以上の組合せと通信することができる。これらのネットワークのうちの1つまたは複数の1つまたは複数の部分は、ワイヤードまたはワイヤレスでよい。1例を挙げると、コンピュータ・システム500は、ワイヤレスPAN(WPAN)(例えば、BLUETOOTH(登録商標) WPANなど)、Wi−Fiネットワーク、WI−MAXネットワーク、携帯電話網(例えば、Global System for Mobile Communication(GSM(登録商標))ネットワークなど)、または他の適切なワイヤレス・ネットワーク、あるいはこれらのうちの2つ以上の組合せと通信することができる。コンピュータ・システム500は、適切な場合、これらのネットワークのいずれかに関する任意の適切な通信インターフェース510を含むことができる。通信インターフェース510は、適切な場合、1つまたは複数の通信インターフェース510を含むことができる。本開示は特定の通信インターフェースを説明および図示するが、本開示は任意の適切な通信インターフェースを企図する。
特定の実施形態では、バス512は、コンピュータ・システム500の構成要素を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく例として、バス512は、アクセラレーテッド・グラフィックス・ポート(Accelerated Graphics Port:AGP)または他のグラフィックス・バス、Enhanced Industry Standard Architecture(EISA)バス、フロント・サイド・バス(FSB)、HYPERTRANSPORT(HT)相互接続、Industry Standard Architecture(ISA)バス、INFINIBAND相互接続、低ピン・カウント(low−pin−count:LPC)バス、メモリ・バス、Micro Channel Architecture(MCA)バス、Peripheral Component Interconnect(PCI)バス、PCI−Express(PCIe)バス、serial advanced technology attachment(SATA)バス、Video
Electronics Standards Association local(VLB)バス、または別の適切なバス、あるいはこれらのうちの2つ以上の組合せを含むことができる。バス512は、適切な場合、1つまたは複数のバス512を含むことができる。本開示は特定のバスを説明および図示するが、本開示は、任意の適切なバスまたは相互接続を企図する。
本明細書では、コンピュータ可読非一時的記憶媒体は、適切な場合、1つまたは複数の半導体ベースの、または他の集積回路(IC)(例えば、フィールド・プログラマブル・ゲート・アレイ(FPGA)または特定用途向けIC(ASIC)など)、ハード・ディスク・ドライブ(HDD)、ハイブリッド・ハード・ドライブ(HHD)、光ディスク、光ディスク・ドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピー(登録商標)・ディスケット、フロッピー(登録商標)・ディスク・ドライブ(FDD)、磁気テープ、固体ドライブ(SSD)、RAMドライブ、セキュア・デジタル・カードもしくはドライブ、任意の他の適切なコンピュータ可読非一時的記憶媒体、またはこれらの2つ以上の適切な組合せを含むことができる。コンピュータ可読非一時的記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性の組合せでよい。
本明細書では、別段に明記されていない限り、または文脈によって示されていない限り、「または」は排他的ではなく包含的である。したがって、本明細書では、別段に明記されていない限り、または文脈によって示されていない限り、「AまたはB」は「A、B、またはその両方」を意味する。さらに、別段に明記されていない限り、または文脈によって示されていない限り、「および」は協同および個々の両方である。したがって、本明細書では、別段に明記されていない限り、または文脈によって示されていない限り、「AおよびB」は、「AおよびBが一緒に、または個別に」を意味する。
本開示の範囲は、当業者なら理解するはずである、本明細書で説明または図示される例示的実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書で説明または図示される例示的実施形態に限定されない。さらに、本開示は、本明細書のそれぞれの実施形態が特定の構成要素、要素、機能、動作、またはステップを含むものとして説明および図示するが、これらの実施形態のいずれも、当業者なら理解するはずである、本明細書のどこかで説明または図示される構成要素、要素、機能、動作、またはステップのいずれかの任意の組合せまたは置換を含むことができる。さらに、特定の機能を実施するように適合され、配置され、実施することが可能であり、実施するように構成され、実施することが可能にされ、実施するように動作可能である装置またはシステムあるいは装置またはシステムの構成要素に対する添付の特許請求の範囲での参照は、その装置、システム、または構成要素がそのように適合され、配置され、可能であり、構成され、可能にされ、動作可能にされる限り、その装置、システム、構成要素またはその特定の機能が活動化され、オンにされ、またはロック解除されるか否かに関わらず、その装置、システム、構成要素を包含する。

Claims (13)

  1. コンピューティング・デバイスによって、ディスプレイ・オブジェクトをアプリケーションに適合したリサイクラに格納する工程であって、前記ディスプレイ・オブジェクトは、第1の予め生成された要素と、時間依存の第2の予め生成された要素とを含み、前記第1の予め生成された要素はコンテンツを含み、前記第2の予め生成された要素は、前記コンテンツに関するユーザの意見又はコメントの現在の状態に関連する情報を含む、前記工程と、
    前記コンピューティング・デバイスによって、前記ディスプレイ・オブジェクトが予め生成されたコンテンツ・レイアウトの一部に対する要求を受信する工程と、
    前記コンピューティング・デバイスによって、前記コンテンツ・レイアウトの前記一部に対する要求に応じて、前記ディスプレイ・オブジェクトが前記アプリケーションに特有のリサイクル・ポリシーに基づき再利用に適切であることを判定する工程と、
    前記コンピューティング・デバイスによって、前記コンテンツ・レイアウトの前記一部に対する前記要求に応じて、前記アプリケーションに適合した前記リサイクラから前記第1の予め生成された要素と前記第2の予め生成された要素とを検索する工程と、
    前記コンピューティング・デバイスによって、ユーザが前記コンテンツ・レイアウトの前記一部までスクロールするのに要する時間に応じて、時間依存の前記第2の予め生成された要素を更新する工程と、
    前記コンピューティング・デバイスによって、前記要求に応じて前記コンテンツ・レイアウトの前記一部に表示されるべき前記ディスプレイ・オブジェクトを返す工程であって、前記返されるディスプレイ・オブジェクトは前記第1の予め生成された要素と前記更新された第2の予め生成された要素とを含む、前記工程とを含むことを特徴とする方法。
  2. 前記コンテンツ・レイアウトの前記一部に対する必要に応じて前記ディスプレイ・オブジェクトの他の要素を更新する工程をさらに含むことを特徴とする請求項1に記載の方法。
  3. 前記ディスプレイ・オブジェクトは、表示可能領域の外側にある前記コンテンツ・レイアウトの一部に関連付けられることを特徴とする請求項1に記載の方法。
  4. 前記第1の予め生成された要素及び前記第2の予め生成された要素は、スクリーンの面積、前記スクリーンのアスペクト比、レンダリングされるコンテンツのタイプ、アプリケーション特有の要因、ユーザ構成の設定、あるいはユーザの選択に基づいて予め生成するために選択されることを特徴とする請求項1に記載の方法。
  5. 予め生成するべきディスプレイ・オブジェクトの一部を識別する工程と、
    アイドル時間の次のウィンドウを識別するためにスレッドを監視する工程であって、アイドル時間の前記次のウィンドウは、前記スレッドが最小時間アイドルになる際の次の機会を含む、スレッドを監視する工程と、
    アイドル時間の前記次のウィンドウの間に前記スレッドによって実行するために、1つまたは複数の選択された予め生成されたタスクをメッセージ・キューに追加する工程と、
    アイドル時間の前記次のウィンドウの間に、コンテンツ・レイアウトの一部におけるコンテンツを備えるディスプレイ・オブジェクトの少なくとも1つの選択される要素を予め生成することにより、前記メッセージ・キューにおける1つ以上の選択される予め生成されるタスクを実行する工程であって、前記ディスプレイ・オブジェクトの前記少なくとも1つの選択される要素は、前記第1の予め生成された要素と前記第2の予め生成された要素とを含む、前記工程とを含むことを特徴とする請求項1に記載の方法。
  6. 異なるコンテンツを含むためにリサイクルに適切であるとして前記ディスプレイ・オブジェクトを識別する工程をさらに備えることを特徴とする請求項に記載の方法。
  7. 前記異なるコンテンツで前記ディスプレイ・オブジェクト内の既存のコンテンツを上書きすることを特徴とする請求項に記載の方法。
  8. ソフトウェアを具現化する1つまたは複数の非一時的コンピュータ可読記憶媒体であって、該ソフトウェアはコンピューティング・デバイスによる実行時に、
    アプリケーションに適合したリサイクラにディスプレイ・オブジェクトを格納することであって、前記ディスプレイ・オブジェクトは、第1の予め生成された要素と、時間依存の第2の予め生成された要素とを含み、前記第1の予め生成された要素はコンテンツを含み、前記第2の予め生成された要素は、前記コンテンツに関するユーザの意見又はコメントの現在の状態に関連する情報を含むこと
    前記ディスプレイ・オブジェクトが予め生成されたコンテンツ・レイアウトの一部に対する要求を受信すること
    前記コンテンツ・レイアウトの前記一部に対する要求に応じて、前記ディスプレイ・オブジェクトが前記アプリケーションに特有のリサイクル・ポリシーに基づき再利用に適切であることを判定すること、
    前記コンテンツ・レイアウトの前記一部に対する要求に応じて、前記アプリケーションに適合した前記リサイクラから前記第1の予め生成された要素と前記第2の予め生成された要素とを検索すること
    ユーザが前記コンテンツ・レイアウトの前記一部までスクロールするのに要する時間に応じて、時間依存の前記第2の予め生成された要素を更新すること、及び
    前記要求に応じて前記コンテンツ・レイアウトの前記一部に表示されるべき前記ディスプレイ・オブジェクトを返すことであって、前記返されるディスプレイ・オブジェクトは前記第1の予め生成された要素と前記更新された第2の予め生成された要素とを含むこと、を実行するように作動可能であることを特徴とする非一時的コンピュータ可読記憶媒体。
  9. 前記コンテンツ・レイアウトの前記一部に対する必要に応じて前記ディスプレイ・オブジェクトの他の要素を更新することをさらに含むことを特徴とする請求項に記載の媒体。
  10. 前記第1の予め生成された要素及び前記第2の予め生成された要素は、スクリーンの面積、前記スクリーンのアスペクト比、レンダリングされるコンテンツのタイプ、アプリケーション特有の要因、ユーザ構成の設定、あるいはユーザの選択に基づいて予め生成するために選択されることを特徴とする請求項に記載の媒体。
  11. コンピューティング・デバイスであって、
    1つまたは複数のプロセッサと、
    前記プロセッサに結合されるとともに前記プロセッサによって実行可能な命令を含むメモリとを備え、前記プロセッサは、前記命令の実行時に、
    アプリケーションに適合したリサイクラにディスプレイ・オブジェクトを格納することであって、前記ディスプレイ・オブジェクトは、第1の予め生成された要素と、時間依存の第2の予め生成された要素とを含み、前記第1の予め生成された要素はコンテンツを含み、前記第2の予め生成された要素は、前記コンテンツに関するユーザの意見又はコメントの現在の状態に関連する情報を含むこと
    前記ディスプレイ・オブジェクトが予め生成されたコンテンツ・レイアウトの一部に対する要求を受信すること
    前記コンテンツ・レイアウトの前記一部に対する要求に応じて、前記ディスプレイ・オブジェクトが前記アプリケーションに特有のリサイクル・ポリシーに基づき再利用に適切であることを判定すること、
    前記コンテンツ・レイアウトの前記一部に対する要求に応じて、前記アプリケーションに適合した前記リサイクラから前記第1の予め生成された要素と前記第2の予め生成された要素とを検索すること
    ユーザが前記コンテンツ・レイアウトの前記一部までスクロールするのに要する時間に応じて、時間依存の前記第2の予め生成された要素を更新すること、及び
    前記要求に応じて前記コンテンツ・レイアウトの前記一部に表示されるべき前記ディスプレイ・オブジェクトを返すことであって、前記返されるディスプレイ・オブジェクトは前記第1の予め生成された要素と前記更新された第2の予め生成された要素とを含むこと、を実行するように作動可能であることを特徴とするコンピューティング・デバイス。
  12. 前記コンテンツ・レイアウトの前記一部に対する必要に応じて前記ディスプレイ・オブジェクトの他の要素を更新することをさらに含むことを特徴とする請求項11に記載のデバイス。
  13. 前記第1の予め生成された要素及び前記第2の予め生成された要素は、スクリーンの面積、前記スクリーンのアスペクト比、レンダリングされるコンテンツのタイプ、アプリケーション特有の要因、ユーザ構成の設定、あるいはユーザの選択に基づいて予め生成するために選択されることを特徴とする請求項11に記載のデバイス。
JP2017078681A 2013-04-11 2017-04-12 ディスプレイ・オブジェクトの前生成 Active JP6427616B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/861,303 2013-04-11
US13/861,303 US9207986B2 (en) 2013-04-11 2013-04-11 Identifying a next window of idle time to perform pre-generation tasks of content portions outside of the displayable region stored in a message queue

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016507566A Division JP6130049B2 (ja) 2013-04-11 2014-04-03 ディスプレイ・オブジェクトの前生成

Publications (2)

Publication Number Publication Date
JP2017174436A JP2017174436A (ja) 2017-09-28
JP6427616B2 true JP6427616B2 (ja) 2018-11-21

Family

ID=51687714

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016507566A Active JP6130049B2 (ja) 2013-04-11 2014-04-03 ディスプレイ・オブジェクトの前生成
JP2017078681A Active JP6427616B2 (ja) 2013-04-11 2017-04-12 ディスプレイ・オブジェクトの前生成

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2016507566A Active JP6130049B2 (ja) 2013-04-11 2014-04-03 ディスプレイ・オブジェクトの前生成

Country Status (11)

Country Link
US (3) US9207986B2 (ja)
EP (2) EP2984564B1 (ja)
JP (2) JP6130049B2 (ja)
KR (2) KR101663178B1 (ja)
CN (2) CN105283845B (ja)
AU (3) AU2014251233B2 (ja)
BR (1) BR112015025695A2 (ja)
CA (2) CA2908310C (ja)
IL (2) IL241921A (ja)
MX (1) MX346848B (ja)
WO (1) WO2014168807A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9207986B2 (en) 2013-04-11 2015-12-08 Facebook, Inc. Identifying a next window of idle time to perform pre-generation tasks of content portions outside of the displayable region stored in a message queue
US8930819B1 (en) * 2013-12-13 2015-01-06 Linkedin Corporation Visualization of the reach of a post by a member of an on-line social networking system
US9703615B2 (en) * 2014-07-18 2017-07-11 Facebook, Inc. Stepped sizing of code execution
US9753785B2 (en) * 2014-07-24 2017-09-05 Home Box Office, Inc. Asynchronous dispatcher for application framework
US20160241766A1 (en) * 2015-02-12 2016-08-18 International Business Machines Corporation Method of disabling transmission and capture of visual content on a device to protect from inappropriate content
US11188988B2 (en) 2015-08-31 2021-11-30 Ebay Inc. Image generation for social media contact engagement
US10666760B2 (en) * 2015-08-31 2020-05-26 Ebay Inc. Passive social media contact engagement
JP6095815B1 (ja) * 2016-02-16 2017-03-15 ヤフー株式会社 情報表示プログラム、情報表示装置、情報表示方法および配信装置
CN105955766B (zh) * 2016-04-22 2019-08-30 北京小米移动软件有限公司 应用预加载方法及装置
US20180373653A1 (en) * 2017-06-21 2018-12-27 Hewlett Packard Enterprise Development Lp Commitment of acknowledged data in response to request to commit
US10908804B2 (en) * 2017-08-30 2021-02-02 Facebook, Inc. Incremental mount framework
US11126677B2 (en) 2018-03-23 2021-09-21 Kindra Connect, Inc. Multimedia digital collage profile using themes for searching and matching of a person, place or idea
KR102192934B1 (ko) * 2018-08-08 2020-12-18 엔에이치엔 주식회사 사용자 단말기에 웹 페이지를 제공하는 네트워크 서버 및 방법
US10969929B2 (en) * 2018-10-19 2021-04-06 Oracle Financial Services Software Limited Dependency graph-controlled object and compute pipeline migration
CN111339455B (zh) 2018-12-18 2024-02-23 阿里巴巴集团控股有限公司 浏览器应用加载页面首屏的方法和装置
CN110502294B (zh) * 2019-07-20 2021-08-20 华为技术有限公司 数据处理的方法、装置及电子设备
CN115631258B (zh) * 2020-07-31 2023-10-20 荣耀终端有限公司 一种图像处理方法及电子设备
US11936656B2 (en) * 2020-09-14 2024-03-19 Box, Inc. Prioritizing operations over content objects of a content management system
US11645107B2 (en) * 2021-01-13 2023-05-09 Adobe Inc. Processing multi-frame tasks in a multi-threaded digital design system
CN114003177B (zh) * 2021-11-05 2024-02-06 青岛海信日立空调系统有限公司 一种空调器、控制系统和控制方法

Family Cites Families (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07219738A (ja) 1994-02-03 1995-08-18 Matsushita Electric Ind Co Ltd 情報処理装置
US5608909A (en) 1994-04-15 1997-03-04 Microsoft Corporation Method and system for caching presentation data of a source object in a presentation cache
JP2964926B2 (ja) 1995-08-29 1999-10-18 富士ゼロックス株式会社 データベース管理装置及び方法
US5794016A (en) * 1995-12-11 1998-08-11 Dynamic Pictures, Inc. Parallel-processor graphics architecture
US6085226A (en) 1998-01-15 2000-07-04 Microsoft Corporation Method and apparatus for utility-directed prefetching of web pages into local cache using continual computation and user models
US6182133B1 (en) * 1998-02-06 2001-01-30 Microsoft Corporation Method and apparatus for display of information prefetching and cache status having variable visual indication based on a period of time since prefetching
US6173316B1 (en) 1998-04-08 2001-01-09 Geoworks Corporation Wireless communication device with markup language based man-machine interface
US7392308B2 (en) 1999-09-10 2008-06-24 Ianywhere Solutions, Inc. System, method, and computer program product for placement of channels on a mobile device
US20010047394A1 (en) 1999-09-10 2001-11-29 Kloba David D. System, method, and computer program product for executing scripts on mobile devices
JP4344898B2 (ja) 1999-10-05 2009-10-14 富士ゼロックス株式会社 画像処理装置、画像処理方法、画像形成装置
JP4032641B2 (ja) 2000-12-08 2008-01-16 富士ゼロックス株式会社 Gui装置およびgui画面表示プログラムを記録したコンピュータ読み取り可能な記憶媒体
JP3948911B2 (ja) 2001-05-30 2007-07-25 富士通株式会社 視野データに従う仮想空間におけるリンクされた複数の情報オブジェクトの表示
US6912533B1 (en) * 2001-07-31 2005-06-28 Oracle International Corporation Data mining agents for efficient hardware utilization
US7146617B2 (en) 2001-09-29 2006-12-05 Siebel Systems, Inc. Method, apparatus, and system for implementing view caching in a framework to support web-based applications
JP2003230121A (ja) * 2001-11-30 2003-08-15 Fujitsu Ltd コンテンツ配信方法、コンテンツ視聴方法、サーバ装置、および端末装置
US20040205514A1 (en) 2002-06-28 2004-10-14 Microsoft Corporation Hyperlink preview utility and method
US7418494B2 (en) * 2002-07-25 2008-08-26 Intellectual Ventures Holding 40 Llc Method and system for background replication of data objects
US7548795B2 (en) 2003-03-17 2009-06-16 Mitsubishi Denki Kabushiki Kaisha Numerical control system
GB2418509A (en) 2003-06-03 2006-03-29 Forbes Holton Norris Iii Flexible, dynamic menu-based web-page architecture
US7870100B2 (en) 2003-06-10 2011-01-11 International Business Machines Corporation Methods and systems for publishing electronic documents with automatic fragment detection
US20050010877A1 (en) * 2003-07-11 2005-01-13 Arthur Udler System and method for dynamic generation of a graphical user interface
US9098475B2 (en) 2003-08-20 2015-08-04 Xerox Corporation Apparatus and method for generating reusable composite components during dynamic document construction
US8103742B1 (en) * 2003-11-24 2012-01-24 Amazon Technologies, Inc. Deferred and off-loaded rendering of selected portions of web pages to incorporate late-arriving service data
WO2005089397A2 (en) * 2004-03-16 2005-09-29 Advanced Tracking Technologies, Inc. Geographic information data base engine
WO2006055751A2 (en) 2004-11-16 2006-05-26 Compography, Inc. Display/layout methods and apparatuses including content items and display containers
JP4151977B2 (ja) * 2005-03-16 2008-09-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 先読み装置、先読み方法、および先読みプログラム
US7975019B1 (en) * 2005-07-15 2011-07-05 Amazon Technologies, Inc. Dynamic supplementation of rendered web pages with content supplied by a separate source
JP2007058755A (ja) * 2005-08-26 2007-03-08 Dainippon Screen Mfg Co Ltd 電子掲示板システム、電子掲示板システムのサーバー、電子掲示板システムのクライアントにおけるスレッド表示処理方法、およびプログラム
US8402094B2 (en) 2006-08-11 2013-03-19 Facebook, Inc. Providing a newsfeed based on user affinity for entities and monitored actions in a social network environment
US20070297560A1 (en) 2006-03-03 2007-12-27 Telesecurity Sciences, Inc. Method and system for electronic unpacking of baggage and cargo
US8102398B2 (en) * 2006-03-03 2012-01-24 Ati Technologies Ulc Dynamically controlled power reduction method and circuit for a graphics processor
JP4947407B2 (ja) 2006-03-29 2012-06-06 日本電気株式会社 高効率キャッシュシステム、高効率キャッシュ格納方法、及び高効率キャッシュ操作プログラム
JP2007286745A (ja) 2006-04-13 2007-11-01 Canon Inc 画像形成装置、画像形成方法及びプログラム
WO2007132746A1 (ja) * 2006-05-11 2007-11-22 Panasonic Corporation 処理装置
WO2008118613A1 (en) * 2007-03-01 2008-10-02 Microsoft Corporation Executing tasks through multiple processors consistently with dynamic assignments
US20080212690A1 (en) * 2007-03-01 2008-09-04 Qualcomm Incorporated Transcoder media time conversion
US7818194B2 (en) 2007-04-13 2010-10-19 Salesforce.Com, Inc. Method and system for posting ideas to a reconfigurable website
US20080270890A1 (en) * 2007-04-24 2008-10-30 Stern Donald S Formatting and compression of content data
US8832650B2 (en) 2007-09-26 2014-09-09 Ncr Corporation Automated code generation for an automated teller machine
US20090182618A1 (en) 2008-01-16 2009-07-16 Yahoo! Inc. System and Method for Word-of-Mouth Advertising
WO2010001324A2 (en) 2008-06-30 2010-01-07 Mominis Ltd Method of generating and distributing a computer application
US20100023690A1 (en) 2008-07-22 2010-01-28 International Business Machines Corporation Caching dynamic contents and using a replacement operation to reduce the creation/deletion time associated with html elements
CN101436131A (zh) 2008-12-15 2009-05-20 北大方正集团有限公司 一种交互操作软件中实现重复操作的方法及系统
JP5236564B2 (ja) 2009-04-20 2013-07-17 株式会社日立製作所 ソフトウェア再利用支援方法及び装置
US20100281224A1 (en) 2009-05-01 2010-11-04 International Buisness Machines Corporation Prefetching content from incoming messages
US9015619B2 (en) 2009-06-17 2015-04-21 Oracle International Corporation Pop-up panel for multiple messages
KR100990114B1 (ko) * 2009-07-07 2010-10-29 엘지전자 주식회사 인터커넥터를 구비한 태양 전지 모듈 및 이의 제조 방법
US8024374B2 (en) 2009-07-24 2011-09-20 Oracle International Corporation Computer object conversion using an intermediate object
US8364611B2 (en) * 2009-08-13 2013-01-29 Yahoo! Inc. System and method for precaching information on a mobile device
US20110055683A1 (en) * 2009-09-02 2011-03-03 Facebook Inc. Page caching for rendering dynamic web pages
US8826141B2 (en) 2010-02-12 2014-09-02 Blackberry Limited Image-based and predictive browsing
US20120018258A1 (en) * 2010-07-21 2012-01-26 Nevio Design Inc. Rim brake
CN101937461A (zh) * 2010-09-01 2011-01-05 百度在线网络技术(北京)有限公司 一种基于翻页操作优化网页浏览的方法与设备
US10304066B2 (en) 2010-12-22 2019-05-28 Facebook, Inc. Providing relevant notifications for a user based on location and social information
US20120166532A1 (en) 2010-12-23 2012-06-28 Yun-Fang Juan Contextually Relevant Affinity Prediction in a Social Networking System
JP2012148429A (ja) * 2011-01-17 2012-08-09 Canon Inc 印刷データ処理装置、キャッシュ処理方法及びプログラム
US8880592B2 (en) 2011-03-31 2014-11-04 Cloudera, Inc. User interface implementation for partial display update
US9152616B2 (en) 2011-04-28 2015-10-06 Flipboard, Inc. Template-based page layout for web content
US20120284662A1 (en) 2011-05-04 2012-11-08 Microsoft Corporation Virtualized caching of user interface controls
CN102222086B (zh) * 2011-05-18 2014-11-26 广州市动景计算机科技有限公司 基于移动终端的网页阅读方法、网页阅读装置及移动终端
JP5276145B2 (ja) 2011-06-13 2013-08-28 株式会社ソニー・コンピュータエンタテインメント リスト表示装置
KR101799978B1 (ko) * 2011-06-17 2017-11-22 삼성전자주식회사 타일 근접성을 사용하는 타일 기반 렌더링 방법 및 장치
JP5250667B2 (ja) * 2011-06-29 2013-07-31 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
JP6096773B2 (ja) * 2011-07-26 2017-03-15 ゴゴロ インク 電池などの電力貯蔵装置の認証、セキュリティ、及び制御用の装置、方法、及び物品
US9852054B2 (en) 2012-04-30 2017-12-26 Vmware, Inc. Elastic caching for Java virtual machines
US9654591B2 (en) 2012-10-01 2017-05-16 Facebook, Inc. Mobile device-related measures of affinity
US9575998B2 (en) * 2012-12-12 2017-02-21 Adobe Systems Incorporated Adaptive presentation of content based on user action
US20140280890A1 (en) * 2013-03-15 2014-09-18 Yahoo! Inc. Method and system for measuring user engagement using scroll dwell time
KR20140122292A (ko) 2013-03-28 2014-10-20 삼성전자주식회사 디스플레이 장치의 디스플레이 방법 및 디스플레이 장치
US9760964B2 (en) 2013-04-11 2017-09-12 Facebook, Inc. Application-tailored object re-use and recycling
US9207986B2 (en) 2013-04-11 2015-12-08 Facebook, Inc. Identifying a next window of idle time to perform pre-generation tasks of content portions outside of the displayable region stored in a message queue

Also Published As

Publication number Publication date
US9207986B2 (en) 2015-12-08
MX346848B (es) 2017-04-03
CA2908310A1 (en) 2014-10-16
JP6130049B2 (ja) 2017-05-17
US20140310713A1 (en) 2014-10-16
US10896484B2 (en) 2021-01-19
US10354363B2 (en) 2019-07-16
AU2014251233A1 (en) 2015-11-26
AU2016201606A1 (en) 2016-03-31
EP3220264A3 (en) 2017-10-11
US20160078602A1 (en) 2016-03-17
AU2017210529A1 (en) 2017-08-17
KR101663178B1 (ko) 2016-10-06
KR20150133293A (ko) 2015-11-27
AU2017210529B2 (en) 2019-03-07
AU2014251233B2 (en) 2015-12-24
BR112015025695A2 (pt) 2017-07-18
EP3220264A2 (en) 2017-09-20
IL248442A0 (en) 2016-12-29
CN105283845A (zh) 2016-01-27
JP2017174436A (ja) 2017-09-28
JP2016519823A (ja) 2016-07-07
IL241921A (en) 2016-12-29
US20180047136A1 (en) 2018-02-15
CA2908310C (en) 2016-05-24
EP2984564A4 (en) 2016-10-12
AU2016201606B2 (en) 2017-06-29
WO2014168807A1 (en) 2014-10-16
EP2984564A1 (en) 2016-02-17
EP2984564B1 (en) 2017-05-17
CN105283845B (zh) 2017-09-19
CN107577526A (zh) 2018-01-12
MX2015014300A (es) 2016-04-20
KR20160116061A (ko) 2016-10-06
CA2923183A1 (en) 2014-10-16

Similar Documents

Publication Publication Date Title
JP6427616B2 (ja) ディスプレイ・オブジェクトの前生成
KR102196595B1 (ko) 오프라인 컨텐츠의 생성
US20170228347A1 (en) Progressive rendering of data sets
JP2015535122A (ja) 一連のコンテンツ・アイテムのスクロール
JP6412109B2 (ja) アプリケーションに適合したオブジェクトのプレインフレート
KR101851254B1 (ko) 애플리케이션-맞춤형 객체 재-사용 및 리사이클링
JP6449843B2 (ja) スクロール時における重い動作の延期
JP7242669B2 (ja) 複数のデバイスにわたるコンテンツを提供すること

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180808

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181009

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181029

R150 Certificate of patent or registration of utility model

Ref document number: 6427616

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250