JP5863214B2 - Domベースの同形によるウェブブラウジング計算の記憶 - Google Patents

Domベースの同形によるウェブブラウジング計算の記憶 Download PDF

Info

Publication number
JP5863214B2
JP5863214B2 JP2014506462A JP2014506462A JP5863214B2 JP 5863214 B2 JP5863214 B2 JP 5863214B2 JP 2014506462 A JP2014506462 A JP 2014506462A JP 2014506462 A JP2014506462 A JP 2014506462A JP 5863214 B2 JP5863214 B2 JP 5863214B2
Authority
JP
Japan
Prior art keywords
dom tree
memory
stored
dom
isomorphic
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 - Fee Related
Application number
JP2014506462A
Other languages
English (en)
Other versions
JP2014519073A (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 JP2014519073A publication Critical patent/JP2014519073A/ja
Application granted granted Critical
Publication of JP5863214B2 publication Critical patent/JP5863214B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/154Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Digital Computer Display Output (AREA)

Description

関連出願
本出願は、すべて本出願の譲受人に譲渡され、全体が参照により本明細書に組み込まれる、2009年10月6日に出願された「Apparatus and Methods of Rendering a Page」という名称の米国仮出願第61/248,909号、および2009年3月31日に出願された「Method and Apparatus for Facilitating Efficient Local Caching」という名称の米国仮出願第61/165,238号の優先権の利益を主張する、2010年3月24日に出願された「Apparatus and Methods for Rendering a Page」という名称の米国特許出願第12/730,967号の一部継続出願である。
以下の説明は、一般に、コンピューティングデバイスの通信に関し、より詳細には、ページのレンダリングの装置および方法に関する。
コンピューティングデバイス上でのウェブページなどのページのレンダリングは、ページのドキュメントオブジェクトモデル(DOM)ツリーによって影響を受ける。DOMツリーは、それぞれのDOMノードの特性および/または属性、ならびにそのスタイル属性を含めて、親子関係で1つまたは複数のノードを定義する。ページが開始されると、その.htmlファイルがキャッシュから読み取られ、解析され、DOMツリーが構築され、次いで埋め込まれる、または外部のカスケーディングスタイルシート(css)が適用される。ページがロードされるたびに、これらの操作が実行され、これは、かなりの量の時間がかかり、それによって、ユーザエクスペリエンスが満足とは言えないものになる。
さらに、この時間量は、非モバイルコンピューティングデバイスと比較して、たとえば携帯電話、携帯情報端末(PDA)、または比較的限られた処理機能、メモリ、および/もしくは通信スループットを有する他の比較的小さいポータブルデバイスなど、モバイルコンピューティングデバイスでなど、リソースが制限された環境において悪化する。したがって、ユーザエクスペリエンスは、モバイルコンピューティングデバイスでなお一層悪くなる。
したがって、ページのレンダリングの向上が望まれる。
以下で、1つまたは複数の態様の基本的理解を与えるために、そのような態様の簡略化された概要を提示する。この概要は、すべての企図された態様の包括的な概観ではなく、すべての態様の主要または重要な要素を識別するものでも、いずれかまたはすべての態様の範囲を定めるものでもない。その唯一の目的は、後で提示するより詳細な説明の導入として、1つまたは複数の態様のいくつかの概念を簡略化された形で提示することである。
一態様は、コンピュータデバイス上でページをレンダリングするための方法に関する。この方法は、コンピュータデバイスで、ページの要求されたインスタンスの要求を受信するステップを含み得る。さらに、方法は、ページの要求されたインスタンスが、メモリに記憶されたページのドキュメントオブジェクトモデル(DOM)に対応するかどうかを決定するステップを含み得る。メモリに記憶されたDOMは、ページの記憶されたインスタンスに対応し、ページの記憶されたインスタンスと要求されたインスタンスの両方について同じである静的部分を備える。さらに、方法は、ページの要求されたインスタンスがメモリに記憶されたDOMに対応する場合、要求されたインスタンスに対応するDOMの動的部分を取り出すステップも含み得る。動的部分は、ページの要求されたインスタンスに固有である。さらに、方法は、ページの要求されたインスタンスに対応するDOMの動的部分を、DOMの静的部分との関係で記憶するステップを含み得る。
別の態様は、コンピュータデバイス上でページをレンダリングするように構成された少なくとも1つのプロセッサに関する。このプロセッサは、コンピュータデバイスで、ページの要求されたインスタンスの要求を受信するための第1のモジュールを含み得る。プロセッサは、ページの要求されたインスタンスがメモリに記憶されたページのドキュメントオブジェクトモデル(DOM)に対応するかどうかを決定するための第2のモジュールも含み得る。メモリに記憶されたDOMは、ページの記憶されたインスタンスに対応し、ページの記憶されたインスタンスと要求されたインスタンスの両方について同じである静的部分を備える。さらに、プロセッサは、ページの要求されたインスタンスがメモリに記憶されたDOMに対応する場合、要求されたインスタンスに対応するDOMの動的部分を取り出すための第3のモジュールを含み得る。動的部分は、ページの要求されたインスタンスに固有である。プロセッサは、ページの要求されたインスタンスに対応するDOMの動的部分を、DOMの静的部分との関係で記憶するための第4のモジュールも含み得る。
さらに別の態様は、コンピュータデバイス上でページをレンダリングするためのコンピュータプログラム製品に関する。このコンピュータプログラム製品は、コンピュータに、コンピュータデバイスで、ページの要求されたインスタンスの要求を受信させるための少なくとも1つの命令を含むコンピュータ可読媒体を含み得る。コンピュータ可読媒体は、コンピュータに、ページの要求されたインスタンスがメモリに記憶されたページのドキュメントオブジェクトモデル(DOM)に対応するかどうかを決定させるための少なくとも1つの命令も含み得る。メモリに記憶されたDOMは、ページの記憶されたインスタンスに対応し、ページの記憶されたインスタンスと要求されたインスタンスの両方について同じである静的部分を備える。コンピュータ可読媒体は、ページの要求されたインスタンスがメモリに記憶されたDOMに対応する場合、コンピュータに、要求されたインスタンスに対応するDOMの動的部分を取り出させるための少なくとも1つの命令をさらに含み得る。動的部分は、ページの要求されたインスタンスに固有である。さらに、コンピュータ可読媒体は、コンピュータに、ページの要求されたインスタンスに対応するDOMの動的部分を、DOMの静的部分との関係で記憶させるための少なくとも1つの命令も含み得る。
別の態様は、装置に関する。この装置は、コンピュータデバイスで、ページの要求されたインスタンスの要求を受信するための手段を含み得る。さらに、装置は、ページの要求されたインスタンスがメモリに記憶されたページのドキュメントオブジェクトモデル(DOM)に対応するかどうかを決定するための手段を含み得る。メモリに記憶されたDOMは、ページの記憶されたインスタンスに対応し、ページの記憶されたインスタンスと要求されたインスタンスの両方について同じである静的部分を備える。装置は、ページの要求されたインスタンスがメモリに記憶されたDOMに対応する場合、要求されたインスタンスに対応するDOMの動的部分を取り出すための手段も含み得る。動的部分は、ページの要求されたインスタンスに固有である。装置は、ページの要求されたインスタンスに対応するDOMの動的部分を、DOMの静的部分との関係で記憶するための手段もさらに含み得る。
さらに別の態様は、コンピュータデバイス上でページをレンダリングするための装置に関する。この装置は、ページの要求されたインスタンスの要求を受信するように構成されたポータル構成要素を含み得る。装置は、ページの要求されたインスタンスがメモリに記憶されたページのドキュメントオブジェクトモデル(DOM)に対応するかどうかを決定するように構成されたウェブ構成要素も含み得る。メモリに記憶されたDOMは、ページの記憶されたインスタンスに対応し、ページの記憶されたインスタンスと要求されたインスタンスの両方について同じである静的部分を備える。さらに、装置は、ページの要求されたインスタンスがメモリに記憶されたDOMに対応する場合、要求されたインスタンスに対応するDOMの動的部分を取り出すように構成されたウェブ構成要素を含み得る。動的部分は、ページの要求されたインスタンスに固有である。装置は、ページの要求されたインスタンスに対応するDOMの動的部分を、DOMの静的部分との関係で記憶するように構成されたウェブ構成要素をさらに含み得る。
説明する態様は、コンピュータデバイス上でページをレンダリングするための方法、装置、またはコンピュータプログラム製品に関し、コンピュータデバイスで、ページの要求されたインスタンスの要求を受信することと、ページの要求されたインスタンスがメモリに記憶されたページのドキュメントオブジェクトモデル(DOM)に対応するかどうかを決定することであって、メモリに記憶されたDOMが、ページの記憶されたインスタンスに対応し、ページの記憶されたインスタンスと要求されたインスタンスの両方について同じである静的部分を備えることと、ページの要求されたインスタンスがメモリに記憶されたDOMに対応する場合、要求されたインスタンスに対応するDOMの動的部分を取り出すことであって、動的部分が、ページの要求されたインスタンスに固有であることと、ページの要求されたインスタンスに対応するDOMの動的部分を、DOMの静的部分との関係で記憶することと、随意に、ページの要求されたインスタンスに対応するDOMの静的部分およびDOMの動的部分に従って、ページの要求されたインスタンスをレンダリングすることとを行うためのアクション、手段、または命令を備える。
他の態様は、記憶されたページのレンダリング計算をDOMツリー構造と関連付けることによって、ウェブブラウザの計算を再利用し、レンダリングされるページのDOMツリーの少なくとも一部分と一致する記憶されたDOMツリーパターンを認識することによって、再利用可能な計算を識別することに関する。これらの態様は、HTMLデータの従来のキャッシングに加えて、保存された計算のページのURLがレンダリングされる現在のページと同じではないときでも、将来のページをレンダリングするとき、HTML処理計算を再利用することができるように、HTML処理計算の再利用を可能にすることによって、ブラウザの性能を向上させる。そのような態様では、コンピューティングデバイス上でページをレンダリングするための方法は、コンピューティングデバイスのプロセッサにおいて、ウェブページを表示するよう求める要求を受信するステップと、要求されたウェブページに対応するHTMLコードを受信するステップと、ドキュメントオブジェクトモデル(DOM)ツリーを生成するために受信されたHTMLコードを解析するステップと、生成されたDOMツリーの一部分がメモリに記憶されたDOMツリーの1つまたは複数の部分と同形であるかどうかを決定するステップと、生成されたDOMツリーの一部分がメモリに記憶されたDOMツリーの1つまたは複数の部分と同形であることが決定されたとき、DOMツリーの同形の部分に関連付けられた以前記憶された計算をメモリから取り出すステップと、取り出された計算を使用して、要求されたウェブページを構成するステップと、コンピューティングデバイスの電子ディスプレイに要求されたウェブページを表示するステップとを含み得る。そのような方法では、生成されたDOMツリーの一部分がメモリに記憶されたDOMツリーの1つまたは複数の部分と同形であるかどうかを決定するステップは、ツリー同形比較アルゴリズム(tree isomorphism comparison algorithm)を使用して、生成されたDOMツリーをメモリに記憶されたDOMツリー構造と比較するステップと、生成されたDOMツリーの一部分がメモリに記憶されたDOMツリーの1つまたは複数の部分と同一である構造を有するかどうかを決定するステップと、生成されたDOMツリーの一部分がメモリに記憶されたD
OMツリーの1つまたは複数の部分と構造的に類似しているかどうかを決定するステップとを含み得る。一態様では、DOMツリーの同形の部分に関連付けられた以前記憶された計算をメモリから取り出すステップは、DOMツリーの部分に対応するDOMサブツリー構造に基づいて計算されたハッシュ値によってDOMツリーの部分の計算結果にインデックスが付けられるようにDOMツリーの部分の計算結果を記憶するキャッシュ機構にアクセスするステップを含み得る。
一態様では、方法は、メモリ内のDOMツリーの計算結果を作成するために使用されるキー値および入力値が生成されたDOMツリーのキー値および入力値に等しいかどうかを決定するステップをさらに含み得、 その場合、メモリ内のDOMツリーの計算結果を作成するために使用されるキー値および入力値が生成されたDOMツリーのキー値および入力値に等しいことが決定されたときのみ、DOMツリーの同形の部分に関連付けられた以前記憶された計算をメモリから取り出すステップが実行され得る。また、方法は、生成されたDOMツリーがメモリに記憶されたDOMツリーの1つまたは複数の部分のいずれとも同形ではないことが決定されたとき、生成されたDOMツリーのHTMLコードの計算を完了するステップと、生成されたDOMツリーでインデックスが付けられたHTML計算の結果をメモリに記憶するステップとをさらに含み得る。そのような態様では、生成されたDOMツリーを記憶するステップは、生成されたDOMツリーの少なくとも一部分を、対応するHTML計算結果に関連してDOMツリー要素が記憶されるキー値データ構造で記憶するステップを含み得、その場合、ハッシュマップデータ構造を使用して構造化キャッシュが実施され得、キー値データ構造は、ハッシュマップデータ構造を含み得る。そのような態様では、以前記憶された計算をメモリから取り出すステップは、生成されたDOMツリーの一部分と同形である記憶されたDOMツリーのノードに関連付けられたハッシュキーを評価するステップを含み得る。
他の態様は、上記の方法の操作を実行するためのプロセッサ実行可能命令によって構成されるプロセッサを備えるコンピューティングデバイスに関する。さらなる態様は、上記の方法の機能を達成するための手段を備えるコンピューティングデバイスに関する。また別の態様は、上記の方法の操作をコンピューティングデバイスのプロセッサに実行させるように構成される、プロセッサ実行可能命令を記憶した、非一時的コンピュータ可読記憶媒体に関する。
上記のおよび関連の目的の達成のために、1つまたは複数の態様は、以下で十分に説明し、特許請求の範囲で具体的に指摘する特徴を含む。以下の説明および添付の図面は、1つまたは複数の態様のいくつかの例示的な特徴を詳細に説明する。しかしながら、これらの特徴は、様々な態様の原理が使用され得る様々な方法のうちのほんのいくつかしか示しておらず、この説明は、そのようなすべての態様およびそれらの均等物を含むものとする。
本明細書に組み込まれ、本明細書の一部を構成する添付の図面は、本発明の例示的な態様を示す。上記の概略的な説明および下記の詳細な説明とともに、図面は、開示した態様を限定するのではなく、本発明の特徴を説明するのに役立つ。
ページをレンダリングするためのシステムの一態様の概略図である。 共有DOMの一態様の概略図である。 図1のコンピュータデバイスの一態様の概略図である。 ページをレンダリングするための方法の一態様のフローチャートである。 ページの第1のインスタンスをレンダリングする一態様のフローチャートである。 ページの第2のインスタンスをレンダリングする一態様のフローチャートである。 一態様による効率的なローカルキャッシングを容易にするための例示的な方法である。 一態様によるキャッシュへの記憶の前の処理命令によるコンテンツの変更を容易にするための例示的な方法である。 一態様によるキャッシュへの構造化ストレージを容易にするための例示的な方法である。 一態様による例示的なメインページの概略図である。 一態様による例示的なカタログページの概略図である。 一態様による商品詳細ページの一例の概略図である。 一態様による商品詳細ページの別の例の概略図である。 ページをレンダリングするための装置の一態様の概略図である。 要求されたウェブページのブラウザ解析HTMLコードによって生成されるサンプルDOMツリーの概略図である。 ノードごとに計算値を記憶したサンプルDOMツリーの概略図である。 ブラウザの最初の実行および/または未確認のDOM構造を有するウェブページの最初の出現時にDOMツリーを作成し、処理し、記憶するための一態様方法のフローチャートである。 ブラウザの次の実行時にDOMツリーの部分を作成し、処理し、記憶し、および/または取り出すための一態様方法のフローチャートである。 ブラウザの次の実行時にDOMツリーの部分を作成し、処理し、記憶し、および/または取り出すための別の態様方法のフローチャートである。 様々な実施形態とともに使用するのに好適な、例示的な受信機デバイスの構成要素ブロック図である。 様々な実施形態とともに使用するのに好適な、例示的なサーバの構成要素ブロック図である。
次に、図面を参照しながら様々な態様について説明する。以下の記述では、説明の目的で、1つまたは複数の態様の完全な理解を与えるために多数の具体的な詳細を記載する。ただし、そのような態様をこれらの具体的な詳細なしに実施できることは明白であり得る。
説明する態様は、ウェブリソースおよびデータ項目を有するウェブページなどのページをフェッチし、レンダリングすることに関する。さらに、説明する態様は、たとえば、ユーザがウェブページの間で前方および後方に移動するためのリンクを提供するなど、ウェブページの間で移行する仮想効果を提供する。ウェブページは、構成要素、相対的な構造、およびページを定義するそれぞれの構成要素の挙動を定義する対応するドキュメントオブジェクトモデル(DOM)に従ってレンダリングされる。同じページの異なるインスタンスは、ページのあるインスタンスを次のインスタンスに対して区別する他の固有の部分を有しながら、DOMのいくつかの共通の部分を共有し得る。
1つまたは複数の態様によれば、ページをレンダリングする装置および方法は、ページの2つ以上のインスタンスによって使用され得る共有DOMを作成するように動作可能なウェブエンジンまたは他の構成要素を提供する。共有DOMは、ページの異なるインスタンスに共通である静的DOM部分、およびページのそれぞれの1つまたは複数のインスタンスに固有の1つまたは複数の動的DOM部分を含む。したがって、説明する態様は、同じページの以前処理された異なるインスタンスに基づき得る、記憶されたまたはキャッシュされたDOMに対応するページの新しいインスタンスをレンダリングする際に静的DOM部分を再利用することによってページのレンダリングの効率を向上させ、それによって、ページのインスタンスごとに完全に新しいDOMを作成する必要を回避する。
たとえば、これらの態様は、携帯電話によって実行されるモバイルショッピングアプリケーションなどの使用事例を参照しながら説明され得る。しかしながら、この例示的な使用事例は説明のためのものにすぎず、多くの他の使用事例が存在することを理解されたい。モバイルショッピングアプリケーションの例では、モバイルショッピングアプリケーションに対応するウェブページは、カタログリストを有するメインページ、商品リストおよび/もしくは他のカタログリストを有する1つまたは複数のカタログページ、ならびに他の商品詳細ページ、および/または価格設定ページまたは購入ページなど追加の詳細ページにリンクすることもできる1つまたは複数の商品詳細ページなど、異なるタイプのページのツリーまたは階層を含み得る。第1のゲームの商品詳細ページ、および第2のゲームの商品詳細ページなど、同じページの異なるインスタンスは、類似の構造、および場合によってはいくつかの類似のデータを共有することができるが、それらは各々、それぞれのゲームの名前など、固有のデータも有し得る。したがって、一般的に、各商品詳細ページは、異なる対応するDOMを有する。しかしながら、本態様では、商品詳細ページは、代わりに、ページの異なるインスタンス間の共通のDOM要素に対応する静的DOM部分、および固有のデータ項目をページのそれぞれのインスタンスと関連付ける1つまたは複数の動的DOM部分を含む共有DOMを有する。たとえば、この場合、静的DOM部分は、第1のゲームの商品詳細ページおよび第2のゲームの商品詳細ページの同じレイアウトを備え得、一方、第1のゲーム名および第2のゲーム名など、動的なデータ項目は、動的DOM部分によって表される。
言い換えれば、一態様では、(たとえば、「itemdetail」ページなど)ページの固有のインスタンスがコンピュータデバイスにおいてフェッチまたはキャッシュされたことがなく、ページのそのインスタンスが要求されたとき、説明する態様は、(たとえば、ハイパーテキストマークアップ言語(html)または拡張可能html(xhtml)、カスケーディングシートスタイル(css)、およびjavascript(js)を含む)ページデータをフェッチし、xhtmlおよびcssからドキュメントオブジェクトモデル(DOM)の静的部分を作成することになる挙動を提供する。DOMのこの静的部分は、キャッシュに記憶され、再利用することができる。そのページについて、次いで、jsが実行され、結果として1つまたは複数のデータ要求(たとえば、XMLHttpRequest(XHR))が得られる。最初のjsおよび1つまたは複数の応答の各々の処理によって、ページのそのインスタンスについてのDOMの1つまたは複数の動的部分が作成される。次いで、ページの第2のインスタンスが要求されると、静的DOM部分を再利用することができ、ページの第2のインスタンスに対応する要求の新しいクエリストリングについて、jsが実行され、結果として1つまたは複数の新しいデータ要求が得られ、ページの新しいインスタンスについてのDOMの1つまたは複数の動的部分が作成される。その結果、共有DOMは、少なくとも1つの静的部分および1つまたは複数の動的部分を含み、DOMは、ページの異なるインスタンスをレンダリングする際に使用するために共有DOMを定義することができる。
したがって、一態様では、DOMの初期もしくは静的状態または部分の再利用は、ページ移行時間を低減する。1つまたは複数の態様では、状態またはDOMの部分の再利用は、DOMの静的状態および動的状態または部分に対応する別々のまたは代わりに統合されたデータ構造を維持することによって達成され得る。
さらに、1つまたは複数の態様では、1つまたは複数の利点には、特性の表が1つのみコピーされるのでメモリオーバーヘッドがない、または少ない、HTMLの解析およびCSSルールの適用が1回行われるだけなのでページのロードが速い、同じページの異なるインスタンスについて、異なるDOMを作成する必要がないので、他の実装に比べてコードがよりクリーンであまり複雑ではない、レンダリングは静的DOM部分が変わらないことを考慮して、動的DOM部分を更新することに集中することができるので、DOMツリーの余分なウォークスルーが行われない、動的な特性がページのロードの要求時に作成され、ページのインスタンスに戻る際、DOMの既存のウォークスルー時に削除されることがあり得る。
随意に、いくつかの態様では、DOMおよび対応するページコンテンツがキャッシュされ得、キャッシュは、派生キャッシュまたは構造化キャッシュを含み得る。派生キャッシュは、受信されたコンテンツから導出されたコンテンツを記憶し得る。たとえば、一態様では、限定はしないが、xhtml、カスケーディングシートスタイル、またはjavascript(登録商標)など、未加工コンテンツを受信すると、コンピュータデバイスは、派生コンテンツを生成するために、未加工コンテンツをさらに処理することができる。たとえば、一態様では、派生コンテンツは、DOMの静的部分を含み得、たとえば、DOMの静的部分は、受信されたxhtmlおよびcssから作成され、および/または導出され得ることを諒解されたい。派生コンテンツを生成するために費やされたリソースが比較的高価であるので、たとえば、派生キャッシュに派生コンテンツを記憶することが決定され得る。一態様では、派生コンテンツのこのキャッシングは、コンテンツが頻繁に使用される場合など、このあらかじめ作成された派生コンテンツを使用することによってキャッシュされたコンテンツの次の使用を効率的に容易にするのを支援することができる。
派生コンテンツの別の例は、動作されるプログラムがキャッシュから取り出されるときに、コンピュータデバイスがプログラムをフェッチすることを含み得る。コンピュータデバイスがキャッシュからプログラムを取り出すたびにフェッチされたプログラムをコンパイルするのではなく、コンピュータデバイスは、プログラムをコンパイルすることができる。コンパイルされたプログラムまたは派生コンテンツは、後の使用に備えて、派生キャッシュに記憶され得る。さらに、派生コンテンツは、受信されたソースに関連付けられ得る。
別の態様では、コンピュータデバイスキャッシュは、構造化キャッシュをさらに含み得る。構造化キャッシュは、プログラムなどを取り出すことが、取出しのためにキャッシュされたコンテンツの有用な部分を選択的に選択することができるような方法で、コンテンツの記憶を可能にする。たとえば、現在の装置および方法がなければ、キャッシュされたコンテンツは、セマンティック不明確コンテンツとして現れ得、それによって、キャッシュされたコンテンツの部分の選択的な取出しが禁止される。一態様では、構造化キャッシュは、コンテンツ項目全体の取出しを必要とせずに、構造化キャッシュに記憶されたコンテンツ項目の選択された既知の部分を取り出すことができるような方法で編成することができる。
たとえば、Javascript(登録商標)オブジェクト表記法(JSON)コンテンツなど、周知の構造を有するコンテンツが構造化キャッシュに記憶されると仮定する。さらに、プログラムなどが、製造業者、タイトルなどに関連付けられたコンテンツなど、JSONコンテンツのほんの一部しか使用できないと仮定する。構造化キャッシュは、プログラムにとって有用なコンテンツの部分のみの選択的除去を可能にし、それによって、必要とされ得た任意の中間処理が低減される。
別の例では、コンテンツプロバイダは、コンピュータデバイスに送信されるコンテンツとともに、オリジンサーバ生成のエントリポイントを導入し得る。したがって、オリジンサーバ生成のエントリポイントを有するコンテンツが構造化キャッシュに記憶されると、エントリポイントによって定義された部分のその後の除去が容易になり得る。
随意に、いくつかの態様では、説明される装置および方法は、そのページの要求の受信の前にページをフェッチし、処理するために実行することができるプリフェッチ操作をさらに含み得る。
随意に、いくつかの態様では、説明される装置および方法は、そのページの要求の受信の前にウェブページをDOMに解析し、対応するDOMをキャッシュするために実行することができる事前導出操作をさらに含み得る。
随意に、いくつかの態様では、説明される装置および方法は、プリフェッチと事前導出の両方の操作をさらに含み得る。
プリフェッチ操作および/または事前導出操作は、ページのインスタンスをレンダリングする際の速度をさらに上げることができ、それによって、あるページから別のページに移行するとき、ユーザエクスペリエンスを向上させる。
さらなる態様では、ブラウザによるウェブページのレンダリングを加速するための方法およびデバイスは、レンダリングされたページのドキュメントオブジェクトモデル(DOM)ツリー構造および計算を記憶し、レンダリングされるページのDOMツリーの部分を比較して、DOMツリー構造の部分が一致するかどうかを決定する。レンダリングされるウェブページのDOMツリーがメモリに記憶されたDOMツリーと一致する場合、一致するDOMツリーに関連付けられた計算は、メモリから呼び戻すことができ、ページをレンダリングするために計算を実行する必要がなくなる。レンダリングされるウェブページのDOMツリーと一致するメモリに記憶されたDOMツリーを認識するために、ツリー同形アルゴリズムを使用することができる。上記で説明した、レンダリング計算を再利用することによって、ウェブページをレンダリングするために必要な時間およびリソースがかなり低減され得る。DOMツリー同形に基づいた計算結果の再利用可能な部分を識別することによって、ブラウザは、URLが一致しないときでも、記憶されたウェブページのレンダリング計算を再利用することができ、それによって、ブラウザによって再利用することができるレンダリング計算の量が増加する。
したがって、本態様は、DOMの静的部分を再利用することによってページの異なるインスタンスを効率的にレンダリングすることができ、それによって、処理リソースもしくは通信リソースまたは両方ともが節約される。
本出願で使用される場合、「構成要素」、「モジュール」、「システム」などの用語は、限定はしないが、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアなど、コンピュータ関連のエンティティを含むものとする。たとえば、構成要素は、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであり得るが、これらに限定されない。例として、コンピューティングデバイス上で実行されるアプリケーションと、そのコンピューティングデバイスの両方が、構成要素であり得る。1つまたは複数の構成要素が、プロセスおよび/または実行スレッド内に常駐することができ、1つの構成要素が、1つのコンピュータ上に局在されてよく、かつ/または2つ以上のコンピュータ間に分散されてよい。さらに、これらの構成要素は、様々なデータ構造を記憶している様々なコンピュータ可読媒体から実行することができる。これらの構成要素は、信号によって、ローカルシステム、分散システム内の別の構成要素と対話し、かつ/またはインターネットなどのネットワークを介して他のシステムと対話する1つの構成要素からのデータのような1つまたは複数のデータパケットを有する信号に従うことなどによって、ローカルプロセスおよび/またはリモートプロセスによって通信し得る。
さらに、本明細書では、ワイヤード端末またはワイヤレス端末であり得る端末に関する様々な態様について説明する。端末は、システム、デバイス、加入者ユニット、加入者局、移動局、モバイル、モバイルデバイス、遠隔局、遠隔端末、アクセス端末、ユーザ端末、端末、通信デバイス、ユーザエージェント、ユーザデバイス、またはユーザ機器(UE)と呼ばれることもある。ワイヤレス端末は、セルラー電話、衛星電話、コードレス電話、セッション開始プロトコル(SIP)電話、ワイヤレスローカルループ(WLL)局、携帯情報端末(PDA)、ワイヤレス接続機能を有するハンドヘルドデバイス、コンピューティングデバイス、またはワイヤレスモデムに接続された他の処理デバイスであり得る。その上、様々な態様が、基地局に関連して、本明細書で説明される。基地局は、ワイヤレス端末と通信するために使用されてもよく、アクセスポイント、ノードB、またはある他の用語で呼ばれることもあり得る。
さらに、「例示的」という単語は、「例、実例、または例示として機能すること」を意味するために本明細書で使用される。「例示的」として本明細書で説明するいかなる態様または設計も、必ずしも他の態様または設計よりも好ましいまたは有利なものと解釈すべきではない。むしろ、例示的という単語の使用は、概念を具体的な形で提示するものである。その上、「または」という用語は、排他的な「または」ではなく、包括的な「または」を意味するものとする。すなわち、別段の規定がない限り、または文脈から明白でない限り、「XはAまたはBを使用する」という語句は、自然な包括的置換のいずれかを意味するものとする。すなわち、「XはAまたはBを使用する」という語句は、以下の例のいずれかによって成立する。XはAを使用する。XはBを使用する。またはXはAとBの両方を使用する。さらに、本出願および添付の特許請求の範囲で使用する冠詞「a」および「an」は、別段の規定がない限り、または単数形を示すことが文脈から明白でない限り、概して「1つまたは複数」を意味するものと解釈すべきである。
本明細書で説明する技法は、CDMA、TDMA、FDMA、OFDMA、SC-FDMAおよび他のシステムなど、様々なワイヤレス通信システムに使用され得る。「システム」および「ネットワーク」という用語は、しばしば互換的に使用される。CDMAシステムは、Universal Terrestrial Radio Access(UTRA)、cdma2000などの無線技術を実装することができる。UTRAは、Wideband-CDMA(WCDMA(登録商標))およびCDMAの他の変形形態を含む。さらに、cdma2000は、IS-2000規格、IS-95規格、およびIS-856規格を対象とする。TDMAシステムは、Global System for Mobile Communications(GSM(登録商標))などの無線技術を実装することができる。OFDMAシステムは、Evolved UTRA(E-UTRA)、Ultra Mobile Broadband(UMB)、IEEE802.11(Wi-Fi)、IEEE802.16(WiMAX)、IEEE802.20、Flash-OFDM(登録商標)などの無線技術を実装し得る。UTRAおよびE-UTRAは、Universal Mobile Telecommunication System(UMTS)の一部である。3GPP Long Term Evolution(LTE)は、ダウンリンク上ではOFDMAを採用し、アップリンク上ではSC-FDMAを採用するE-UTRAを使用するUMTSのリリースである。UTRA、E-UTRA、UMTS、LTEおよびGSM(登録商標)は、「3rd Generation Partnership Project」(3GPP)と称する組織からの文書に記載されている。さらに、cdma2000およびUMBは、「3rd Generation Partnership Project 2」(3GPP2)と称する組織からの文書に記載されている。さらに、そのようなワイヤレス通信システムは、不対無認可スペクトル、802.xxワイヤレスLAN、BLUETOOTH(登録商標)および任意の他の短距離または長距離ワイヤレス通信技法をしばしば使用するピアツーピア(たとえば、モバイルツーモバイル)アドホックネットワークシステムをさらに含み得る。
いくつかのデバイス、構成要素、モジュールなどを含み得るシステムに関して、様々な態様または特徴が提示される。様々なシステムが、追加のデバイス、構成要素、モジュールなどを含んでもよく、かつ/または各図に関連して論じられるデバイス、構成要素、モジュールなどのすべてを含むとは限らないことを、理解および諒解されたい。これらの手法の組合せも使用され得る。
図1を参照すると、一態様では、ウェブページなどのページをレンダリングするための装置および方法は、ディスプレイ15におけるウェブページなどのページ13の1つまたは複数のインスタンスの提示を可能にするために、ウェブエンジン14と対話するポータル構成要素12を有するコンピュータデバイス10を含む。たとえば、表示されたページ13は、ウェブサーバ16およびデータサーバ18から通信ネットワーク17を介して取得され得る。別々の構成要素でもよく、または統合された構成要素でもよいウェブサーバ16およびデータサーバ18は、第1のページインスタンス28および第2のページインスタンス30をそれぞれ定義するウェブリソース20および22ならびにデータ項目24および26をそれぞれ記憶する。たとえば、ウェブリソース20および22は、たとえばデータで満たすことができる空のページテンプレートなど、ページの静的部分を構築するために必要などんなものでも含むことができ、一方、データ項目24および26は、たとえばページの1つまたは複数の動的部分など、ページを満たすために使用される任意のコンテンツを含むことができる。したがって、ウェブリソース20および22のすべてまたは一部の部分は、第1のページインスタンス28と第2のページインスタンス30の両方に共通であり、一方、データ項目24および26のすべてまたは一部の部分は、それぞれのページインスタンスに固有である。
より詳細には、ポータル構成要素12は、たとえばユーザ入力、またはポータル構成要素12の開始に基づいて、ページの要求されたインスタンス34を識別する受信された要求32をウェブエンジン14に通信する。たとえば、受信された要求32は、ユニバーサルリソースロケータ(URL)などのウェブリソースを定義する第1の部分、ならびにクエリストリングなど、フェッチする特定のデータを定義する第2の部分を含み得る。ウェブエンジン14は、要求32によって識別されるように、ページの要求されたインスタンス34がページの記憶されたドキュメントオブジェクトモデル(DOM)38に対応するかどうかを決定するために実行する一致決定器36を含む。DOM38は、ページのレンダリングを可能にする、それぞれのDOMノードの特性および/または属性、ならびにそのスタイル属性を含めて、親子関係で1つまたは複数のノードのツリーまたは階層を定義する。ページの要求されたインスタンス34が記憶されたDOM38に対応する場合、反復器構成要素40は、ページの要求されたインスタンス34と、ページの1つまたは複数の記憶されたインスタンス44の両方に共通であるDOM38の1つまたは複数の静的部分42を識別する。随意に、DOM38がページの1つまたは複数の記憶されたインスタンス44の各々に固有の1つまたは複数の動的部分46をさらに含むことができることに留意されたい。たとえば、ページの記憶されたインスタンス44は、第1のページインスタンス28に対応し得、一方、ページの要求されたインスタンス34は、第2のページインスタンス30に対応し得る。さらに、要求32に基づいて、反復器構成要素40は、ページの要求されたインスタンス34に固有の1つまたは複数の動的部分48を識別し、作成し、記憶する。したがって、DOM38は、ページの異なるインスタンスと、各ページインスタンスに固有の、およびさらに、ページの複数のインスタンスによって共有される1つまたは複数の静的DOM部分に対応する1つまたは複数のそれぞれの対応する動的DOM部分との間の関係を定義する。したがって、DOM38は、ページの記憶されたインスタンス44とページの要求されたインスタンス34の両方について同じである静的DOM部分を含むので、共有DOMと呼ばれ得る。
代わりに、ページの要求されたインスタンス34が記憶されたDOMに一致しない、または任意の記憶されたDOMに関係しないことを一致決定器36が決定した場合、一致決定器36は、そのページのための新しいDOM39を作成し、記憶するように動作する。次いで、共有DOM38と類似の構造を有し得る新しいDOM39は、ページのインスタンスのその後の要求との一致を決定するために、一致決定器36によって後で参照され得る。
これらの態様では、ウェブエンジン14はすでに記憶されているDOMに対応するページの新しいインスタンスについてのDOM構造全体を再構築する必要はないので、共有DOM38は、ページの要求されたインスタンス34のより速いレンダリングを可能にし得る。代わりに、ウェブエンジン14は、静的DOM部分42を再利用することができ、ページの要求されたインスタンス34に対応する1つまたは複数の動的DOM部分48に関係する処理を実行するだけでよい。
さらに、コンピュータデバイス10は、スクリプト機能を実行するように動作可能なスクリプトエンジン50を含むことができる。たとえば、ウェブエンジン14は、スクリプトエンジン50と対話して、ページに対応するスクリプトをロードし、スクリプトエンジン50がそれを実行して、対応するスクリプト機能を登録する。ウェブエンジン14から受信されたロードイベントに応答して、スクリプトエンジン50は、ページスクリプトをさらに実行し、ウェブページのインスタンスについての対応する動的なデータのフェッチを開始するために、送信呼を生成する。さらに、動的なデータを受信した後、スクリプトエンジン50は、たとえばDOMアプリケーションプログラムインターフェース(API)を介して、データを適用し、対応するDOMにデータに書き込むように動作可能である。したがって、ページのそれぞれのインスタンスについての書き込まれた動的なデータに基づいて、ウェブエンジン14は、1つまたは複数の動的DOM部分を作成し、それぞれのページインスタンスとの関連で記憶する。
さらに、コンピュータデバイス10は、ウェブエンジン14と対話するレンダリングエンジン52を含む。たとえば、ウェブエンジン14からの要求に応答して、レンダリングエンジン52は、ページのそれぞれのインスタンスについての1つまたは複数の静的DOM部分に対応する、および/または1つまたは複数の動的DOM部分に対応するそれぞれのページの1つまたは複数の部分をペイントするように動作可能である。さらに、レンダリングエンジン52は、ページのペイントされた部分を提示するためにディスプレイ15と対話し、それによって、ページのそれぞれのインスタンスを提示する。
したがって、共有の静的部分を有するDOMを提供することによって、説明する態様は、ページの各新しいインスタンスに対応するウェブリソースをフェッチする際の通信リソースを節約することができ、または、説明する態様は、静的DOM部分を再利用することによってDOMの部分を作成する際の処理リソースを節約することができ、またはその両方が可能である。
図2を参照すると、一態様では、共有DOM38は、ノード62、64、66、68、70、および72など複数のノードによって定義され、第1のページインスタンス28、第2のページインスタンス30、および第3のページインスタンス74など、ページの異なるインスタンスをさらに表す、テンプレート構造60を表すものとしてさらに説明され得る。各ページインスタンス、たとえば28、30および74は、ノード62、64、66、68および70など、1つまたは複数の共通ノードを共有する。しかしながら、各ページインスタンスの各ノードにそれぞれ関連付けられたページデータは異なり得る。たとえば、ページデータ82、84、86、88および90は、第1のページインスタンス28のノード62、64、66、68および70にそれぞれ対応し、一方、ページデータ92、94、96、98および100は、第2のページインスタンス30のノード62、64、66、68および70にそれぞれ対応し、一方、ページデータ102、104、106、108および110は、第3のページインスタンス74のノード62、64、66、68および70にそれぞれ対応する。さらに、いくつかのページインスタンスが他のページインスタンスよりも多いまたはより少ないノードを有し得ることに留意されたい。たとえば、図2で、第3のページインスタンス74は、それぞれのページデータ112を有する追加のノード72を含み、これは、任意の他のページインスタンスには見つからない。
共有DOM38は、異なるページインスタンスを識別し、構築するための簡単で効率的な機構を提供するノード、ページデータ、およびページインスタンスの間の関係を定義する。たとえば、共有DOM38は、共有ノード62、64、66、68および70を含むそれぞれのページインスタンス28、30および74のすべてのノード、それらのそれぞれの互いの関係、ならびにノード72など任意のインスタンスに固有の任意のノードを識別する。さらに、共有DOM38は、たとえば各ノードに対応する共通部分など、静的DOM部分122、124、126、128および130、ならびにノード62についてのインスタンス28、30および74にそれぞれ対応する動的データ82、92および102、ノード64についてのインスタンス28、30および74にそれぞれ対応する動的データ84、94および104、ノード66についてのインスタンス28、30および74にそれぞれ対応する動的データ86、96および106、ノード68についてのインスタンス28、30および74にそれぞれ対応する動的データ88、98および108、ならびにノード70についてのインスタンス28、30および74にそれぞれ対応する動的データ90、100および110など、各ノードに対応する動的DOM部分または動的ページデータを含む。さらに、共有DOM38は、ノード72についての第3のページインスタンス74に対応する動的データ112など、固有のノードの動的DOM部分を含む。
図3を参照すると、一態様では、モバイルまたはセルラー電話などのコンピュータデバイス10は、本明細書で説明する構成要素および機能のうちの1つまたは複数に関連付けられた処理機能を実行するためのプロセッサ150を含み得る。プロセッサ150は、単一の組もしくは複数の組のプロセッサまたはマルチコアプロセッサを含み得る。その上、プロセッサ150は、統合処理システムおよび/または分散処理システムとして実装されてもよい。
コンピュータデバイス10は、たとえばプロセッサ150によって実行されているローカルバージョンのアプリケーションを記憶するため、ならびに/または、プロセッサ150によって現在実行または利用されていないデータ、命令、および/もしくはアプリケーションの長期記憶のためのメモリ152をさらに含み得る。一態様では、メモリ152は、派生キャッシュ155をさらに備え得る。キャッシュの対象とするコンテンツを受信すると、コンピュータデバイス10は、導出されたコンテンツを生成し、派生コンテンツ157を派生キャッシュ155に記憶するために、受信されたコンテンツをさらに処理することができる。一態様では、この処理は、しばしば使用される派生コンテンツ157の前準備によってキャッシュされたコンテンツの次の使用を効率的に容易にすることを支援することができる。別の態様では、メモリ152は、構造化キャッシュ159を含み得る。構造化キャッシュ159は、取り出すためにコンテンツの選択された既知の部分を選択することによって、取出しが選択的に行われ得ることができるような方式で、コンテンツの記憶を可能にすることができる。一態様では、構造化キャッシュ159は、コンテンツ項目全体の取出しを必要とせずに、構造化キャッシュ159に記憶されたコンテンツ項目の選択された既知の部分を取り出すことができるような方法で編成される。メモリ152は、(たとえば、性能ベース、容量ベースなど)チャネルを推定し、および/または使用することに関連付けられたプロトコルおよび/またはアルゴリズムをさらに記憶することができる。一態様では、メモリ152は、未加工コンテンツのストレージ151をさらに備え得る。未加工コンテンツのストレージ151によって、受信された未加工コンテンツの記憶が可能になり得る。
本明細書で説明するデータストア(たとえば、メモリ152)は、揮発性メモリもしくは不揮発性メモリのいずれかとすることができる、または揮発性と不揮発性の両方のメモリを含むことができることは諒解されよう。一態様では、第1の層がファイルシステムベースの不揮発性メモリであり、第2の層がヒープ構造の揮発性メモリであるデュアルメモリモデルが使用され得る。そのような態様では、未加工の受信されたコンテンツは、第1の層に記憶され、派生コンテンツは、第2の層に記憶され得る。さらに、そのような態様では、第2の層は、第1の層よりも迅速にアクセスされ得る。限定ではなく例として、不揮発性メモリには、読取り専用メモリ(ROM)、プログラマブルROM(PROM)、電気的プログラマブルROM(EPROM)、電気的消去可能PROM(EEPROM)、またはフラッシュメモリがあり得る。揮発性メモリは、ランダムアクセスメモリ(RAM)を含むことができ、これは外部キャッシュメモリとして働く。限定ではなく例として、RAMは、同期RAM(SRAM)、ダイナミックRAM(DRAM)、同期DRAM(SDRAM)、ダブルデータレートSDRAM(DDR SDRAM)、拡張SDRAM(ESDRAM)、シンクリンクDRAM(SLDRAM)、およびダイレクトRambus RAM(DRRAM)など、多くの形で使用可能である。対象のシステムおよび方法のメモリ152は、それだけに限定されないが、これらおよび任意の他の適切なタイプのメモリを含み得る。
さらに、コンピュータデバイス10は、本明細書で説明するように、ハードウェア、ソフトウェア、およびサービスを利用して、1つまたは複数のエンティティとの通信を確立し、維持することを行う通信構成要素154を含み得る。通信構成要素154は、コンピュータデバイス10上の構成要素間の通信、ならびに、コンピュータデバイス10と、通信ネットワーク上に位置するデバイス、および/またはコンピュータデバイス10に直列またはローカルに接続されたデバイスなどの外部デバイスとの間の通信を、伝え得る。たとえば、通信構成要素154は、1つまたは複数のバスを含んでもよく、外部デバイスとのインターフェースをとるように動作可能な1つまたは複数の送信機および送信チェーン構成要素、ならびに1つまたは複数の受信機および受信チェーン構成要素をさらに含んでもよい。たとえば、そのような送信機と受信機は、1つまたは複数の技術またはプロトコルに従ってワイヤードまたはワイヤレス通信を可能にすることができる。
コンピュータデバイス10は、さらに、コンピュータデバイス10のユーザから入力158を受信するように動作可能でありユーザへの提示のための出力160を生成するようにさらに動作可能な、ユーザインターフェース構成要素156を含み得る。ユーザインターフェース構成要素156は、限定はしないが、キーボード、ナンバーパッド、マウス、タッチセンシティブディスプレイ、ナビゲーションキー、ファンクションキー、マイクロフォン、音声認識構成要素、ユーザからの入力を受信することが可能な任意の他の機構、またはそれらの任意の組合せを含む1つまたは複数の入力デバイスを含み得る。さらに、ユーザインターフェース構成要素156は、限定はしないが、ディスプレイ、スピーカー、触覚フィードバック機構、プリンタ、ユーザに出力を提示することが可能な任意の他の機構、またはそれらの任意の組合せを含む1つまたは複数の出力デバイスを含み得る。
さらに、上記のように、コンピュータデバイス10は、ウェブブラウザ、ウィジェットもしくはモバイルウィジェット、またはウェブアプリケーションのうちの1つまたは任意の組合せとすることができるポータル構成要素12を含むことができる。ポータル構成要素12は、ウェブページのレンダリングを可能にするために、コンピュータデバイス10のユーザ、ならびにコンピュータデバイス10の他の構成要素とインターフェースするように動作可能である。
ウェブエンジン14は、上記で説明したように、DOMについての一致の決定、およびDOMの作成および記憶を管理する。随意に、いくつかの態様では、ウェブエンジン14は、フェッチ操作のタイミングおよび性能を管理するためにフェッチマネージャ162を含み得る。たとえば、フェッチマネージャ162は、照会しているページからちょうどクリックされたリンクを有するページのコンテンツのプリフェッチを可能にすることができ、照会しているページは、プリフェッチを実行するためのURLを含む。一態様では、たとえば、フェッチマネージャ162は、照会しているページのjavascript(登録商標)でプリフェッチ発見呼を実行することができる。別の態様では、たとえば、フェッチマネージャ162は、ページ上でフェッチすべきURLにタグ付けする、または順序付けることができ、したがって、これらのタグまたはURLは、それぞれのページの要求を受信する前にページレンダリングにおいて処理することができる。たとえば、フェッチマネージャ162は、プリフェッチすべきもの、およびプリフェッチすべきときを決定するために、たとえば、リスト内の隣接するページ、階層における隣接するページなど、ページ間の関係を決定するためのアルゴリズムまたは機能を含むことができる。他の態様では、説明する装置および方法は、既知のURLのマニフェストを現在のページのHTMLヘッドに含み得、これは、プリフェッチのためにフェッチマネージャ162によって解析される。別の態様では、説明する装置および方法は、到達可能なページごとにURLの構造化マニフェストを照会しているページのHTMLヘッドに含み得、これは、到達可能なページごとにプリフェッチを実行するために、フェッチマネージャ162によって解析される。本態様のさらなる導出では、説明する装置および方法は、ページメタデータからローカルの「次ページ」のマニフェストを分離することができ、GRSに対するgetPageManifest()の呼としてこれを中に挿入する。これによって、サーバは、ページのxhtmlページを更新する必要なしに、プリフェッチ順を調整することができる。これは別のURLであるので、expiryおよびifmodified-sinceは、この「キャッシュメタデータ」リソースのキャッシングを制御することができる。別
の態様では、説明する装置および方法は、より広いプリフェッチポリシー呼でこのメタデータを取り出すステップを含み得る。そのようなポリシー更新は、テンプレートセット全体のすべてのプリフェッチ順序付けを含み得る。プリフェッチ順序付けは、鍵が付けられ、ブートストラップマニフェストで最初にフェッチされ得る。
随意に、いくつかの態様では、ウェブエンジン14は、ページのそれぞれのインスタンスの要求の前にDOMまたはDOMの部分を事前導出するための導出マネージャ164を含み得る。たとえば、レンダリング遅延の大部分は、ウェブドキュメントをDOMに解析させ、レンダリングの用意をさせることに関係する。導出マネージャ164は、DOMへのウェブページの導出を管理し、そのページが必要となるときの前にDOMをキャッシュする際に層を提供するアルゴリズムまたは機能を含む。導出マネージャ164は、スマートな方法でそのような導出が行われることを可能にし、おそらく、マニフェストからの指示を介して最初にダウンロードされるときでなく、代わりに、ウェブエンジン14が相対的に未使用であり、それぞれのページが必要である確率が高いとき、導出およびキャッシングが行われ得る。たとえば、導出マネージャ164のアルゴリズムまたは機能は、事前導出すべきもの、および1つまたは複数のページを事前導出すべきときを決定するために、たとえば、リスト内の隣接するページ、階層における隣接するページなど、ページ間の関係を決定することができる。
フェッチマネージャ162および導出マネージャ164は、セッションにおいてページの最初の実行での性能を向上させるために、同じコンピュータデバイス10に組み込まれ得ることに留意されたい。
コンピュータデバイス10は、キャッシュの前にコンテンツの処理を支援するために、コンテンツハンドラ166をさらに備え得る。一態様では、コンテンツハンドラ166によって、コンピュータデバイス102は、受信された未加工コンテンツ151から派生コンテンツ157を生成すべきかどうかを決定することができる。さらに、コンテンツハンドラ166は、通信ネットワークから処理命令168を受信することができる。そのような態様では、通信ネットワークは、コンピュータデバイス102で記憶されるコンテンツとともに、処理命令168を提供することができる。一態様では、処理命令168は、処理命令168なしの場合よりも効率的であり得る方法で、コンピュータデバイス102で、未加工コンテンツ151に変換などを実行するために、たとえば通信ネットワークによる、コンピュータデバイス102に渡すいくつかのサーバ側制御を可能にすることができる。一態様では、処理命令168は、効率的な次の取出しを可能にするように、派生コンテンツ157を受信された未加工コンテンツ151と関連付けることを容易にすることができる。たとえば、処理命令168は、画像とともに送信することができ、画像画素を再マッピングするための命令を提供することができる。したがって、処理命令によって転送されるコンテンツのサイズは、小さくてもよい。そして、小型の未加工コンテンツおよび処理命令がコンピュータデバイス102によっていったん受信されると、処理命令168は、コンテンツをよりリッチな画像またはよりリッチなコンテンツの組に拡張するのを容易にする。コンテンツハンドラ166は、受信されたコンテンツの処理を支援するために、構造参照169をさらに含むことができる。構造参照169は、構造キャッシュ159への構造化ストレージを容易にするために、受信されたコンテンツを処理することができる。
javascript(登録商標)エンジンなどのスクリプトエンジン50は、スクリプト機能の登録、およびページの所与のインスタンスのスクリプトの実行を管理する。レンダリングエンジン52は、ページの所与のインスタンスのすべてまたは部分を生成またはペイントし、ディスプレイ15(図1)に提示される表示されたページインスタンス13など、ユーザインターフェース156の構成要素に結果を通信する。
次に図4を参照すると、動作時、一態様では、ページをレンダリングする方法170は、コンピュータデバイスで、ページの要求されたインスタンスの要求を受信するステップを含む(ブロック172)。
方法は、さらに、ページの要求されたインスタンスがメモリに記憶されたページのドキュメントオブジェクトモデル(DOM)に対応するかどうかを決定するステップを含む。メモリに記憶されたDOMは、ページの記憶されたインスタンスに対応し、ページの記憶されたインスタンスと要求されたインスタンスの両方について同じである静的部分を備える(ブロック174)。
さらに、方法は、ページの要求されたインスタンスがメモリに記憶されたDOMに対応する場合、要求されたインスタンスに対応するDOMの動的部分を参照するステップを含む。動的部分は、ページの要求されたインスタンスに固有である(ブロック176)。
方法は、ページの要求されたインスタンスに対応するDOMの動的部分を、DOMの静的部分との関係で記憶するステップも含む(ブロック178)。随意に、方法は、ページの要求されたインスタンスに対応するDOMの静的部分およびDOMの動的部分に従って、ページの要求されたインスタンスをレンダリングするステップをさらに含む(ブロック180)。
図5および図6を参照すると、一態様では、ページのそれぞれの第1および第2のインスタンスをレンダリングする方法は、たとえばユーザ入力またはポータルアプリケーションの開始に基づいて、ページの第1のインスタンスを要求するステップ(202、204、302、304)を含む。方法は、ページのインスタンスがメモリまたはキャッシュに記憶されたDOMに対応するかどうかを、ウェブエンジンが決定するステップ(206、306)をさらに含む。207で、ページのインスタンスがメモリまたはキャッシュ、たとえば事前導出されたDOMに記憶されたDOMに対応する場合、方法は、ペイントプロセスに進む(218)。しかしながら、ページのインスタンスがメモリまたはキャッシュに記憶されたDOMに対応しない場合、対応するGETおよび応答は、それぞれウェブサーバに送信されて、そこから受信される(208、210)。応答は、たとえば、xhtml、cssおよびjavascript(登録商標)を含む。
いくつかの態様では、211で、たとえば、派生コンテンツを生成するために受信されたコンテンツを導出するなど、受信されたコンテンツの前処理が実行され得る。一態様では、ウェブサーバから取得された未加工コンテンツは、処理命令によって達成され得る。ウェブサーバからの未加工コンテンツを受信すると、コンテンツハンドラは、受信された未加工コンテンツをキャッシュする前、またはそれと同時に追加の処理が実行され得るかどうかを決定することができる。一態様では、処理命令は、少なくとも受信された未加工コンテンツをさらに処理すべきかどうかを決定することを支援する。別の態様では、受信された未加工コンテンツは、構造参照、サーバ生成のエントリポイントなどによって定義され得るなど、未加工コンテンツに関連付けられた既知の構造によって決定されるように構造化キャッシュに記憶することができる。受信された未加工コンテンツの少なくとも一部が処理され得ることを、コンテンツハンドラがひとたび決定すると、コンテンツハンドラは、派生コンテンツを生成するために、受信された未加工コンテンツの選択された部分を処理する。派生コンテンツは、派生キャッシュに記憶され得る。一態様では、派生コンテンツは、さらに、受信された未加工コンテンツに関連付けられ、それに応じて記憶される。たとえば、派生コンテンツは、ページのそれぞれの第1および第2のインスタンスをレンダリングする際に後で使用するための、コンパイルされたjavascript(登録商標)、および/またはコンパイルされたcssを含み得る。以下で説明するように、図7〜図9は、コンテンツを前処理するための様々な方法を示す。
次いで、応答データがキャッシュに記憶され(212)、静的DOM部分が作成され、記憶される(214)。静的DOM部分を作成し、記憶するステップは、応答からコンテンツを導出し、ウェブエンジンによって処理することができる形にコンテンツを変換するステップを含み得る。たとえば、応答からコンテンツを導出するステップは、たとえばxhtmlコードなど、応答を解析し、解析された情報からDOMを作成するステップを含み得る。さらに、静的DOMの作成を支援するために、ルールが構築され、DOMに適用され得る。ルールは、たとえば、タイプのルールの中でも、CSSルールを含み得る。静的DOMは、後で使用するために、メモリまたはキャッシュに記憶され得ることを諒解されたい。一態様では、静的DOMの全部または一部は、前処理され(211)、したがって、静的DOM部分は、派生コンテンツを含み得る。代わりに、第2のインスタンスでは、静的DOM部分が見つかり、使用される(316)。どちらの場合も、1つまたは複数の静的DOM部分をペイントし、表示するために、ペイントプロセスが開始される。より詳細には、ウェブエンジンは、ペイントプロセスを開始し(218、318)、静的部分をペイントするために、レンダリングエンジンを開始する(220、320)。レンダリングエンジンは、1つまたは複数の静的DOM部分を表示するために(224、324)、ディスプレイにペイントされた静的部分を転送する(222、322)。このペインティングプロセスのタイミングが変わり得ることに留意されたい。さらに、ペインティングプロセスの間(220、320)、静的構造およびテキストを作成するために、導出されたcssコンテンツ(211)が使用され得る。
さらに、応答または記憶された静的DOM部分を取得した後、ロードスクリプト操作が開始され(226、326)、この場合、スクリプトエンジンは、スクリプト機能を登録し(228、328)、オンロードイベントを受信し(230、330)、次いでページスクリプトを実行する(232、332)。スクリプト機能の間(228、232、328、332)、導出されたjavascript(211)が使用され得る。次いで、XHR送信イベント(234、334)がウェブエンジンに送信され、ウェブエンジンは、データがキャッシュにすでに記憶されているかどうかを確かめる(236、336)。そうである場合、237および337で、記憶されたデータは利用され、スクリプトエンジンに渡され得る(244、344)。そうでない場合、データのフェッチおよび応答は、それぞれデータサーバとの間で送受信される(238および240、338および340)。これは、XHR呼(238)、およびXHR結果(240)であり得る。いくつかの態様では、241および341で、211で上記で説明したように、受信されたコンテンツの前処理が実行され得る。以下で説明するように、図7〜図9は、コンテンツを前処理するための様々な方法を示す。
応答データはキャッシュに記憶され(242、342)、結果はスクリプトエンジンに渡され(244、344)、スクリプトエンジンは、DOM APIを介してデータを適用し、ウェブエンジンのキャッシュにデータを書き込む(246および248、346および348)。次いで、ウェブエンジンは、データの1つまたは複数の動的部分の所与のインスタンスについての動的DOM部分を作成し、記憶する(250、350)。ペインティング操作は高価なリソースであり得るので、ウェブエンジンは、このDOM部分をバッファすることができる(252、352)。次いで、ウェブエンジンは、静的部分についての上記の操作と同様に、ペイント操作を開始し、それによって、ページの所与のインスタンスが作成される。ウェブエンジンは、ペイントプロセスを開始し(254、354)、静的部分をペイントするために、レンダリングエンジンを開始する(256、356)。レンダリングエンジンは、1つまたは複数の静的DOM部分を表示する(260、360)ために、ペイントされた静的部分をディスプレイに転送し(258、358)、それによって、ページの所与のインスタンスが作成される(262、362)。さらに、ペインティングプロセスの間(256、356)、静的構造およびテキストを作成するために、導出されたcssコンテンツ(241、341)が使用され得ることに留意されたい。
随意に、いくつかの態様では、図5および図6の方法は、フェッチマネージャ162(図3)を参照して上記で説明したように、1つまたは複数のプリフェッチ操作(264、364)を含み得る。そのようなプリフェッチングがいつ望まれるかという決定に基づいて、プリフェッチ操作の図5および図6の操作のシーケンスにおけるタイミングが、示されたアクションに対して変更され得ることに留意されたい。さらに、プリフェッチ操作が追加のGETおよび応答、ならびに/または、XHR呼および結果、ならびに、上記で説明したように、対応する前および後の処理をさらに含み得ることに留意されたい。
随意に、ある態様では、図5および図6の方法は、導出マネージャ164(図3)を参照して上記で説明したように、1つまたは複数の事前導出操作(266、366)を含み得る。そのような事前導出がいつ望まれるかという決定に基づいて、事前導出操作の図5および図6の操作のシーケンスにおけるタイミングが、示されたアクションに対して変更され得ることに留意されたい。さらに、事前導出操作が追加のGETおよび応答、ならびに/または、追加のXHR呼および結果、ならびに、上記で説明したように、対応する前および後の処理をさらに含み得ることに留意されたい。
次に図7を参照すると、効率的なローカルキャッシュを容易にするための例示的な方法1000が示される。参照番号1002で、生データが受信される。一態様では、データは、処理命令が付随し得る。データは、コンピュータデバイスなどによって受信され得、データは、サーバ、通信ネットワークなどから始まり得る。たとえば、一態様で、生データは、cssおよびjavascript(登録商標)を含み得る。
参照番号1004で、方法は、受信されたデータがローカル処理の候補であるかどうかを決定するステップを含む。たとえば、受信されたデータは、さらなる処理を促す処理命令を含み得る。別の態様では、受信されたデータは、cssまたはjavascript(登録商標)など、さらなる処理を促す既知のデータタイプのものでもよい。さらなる処理が必要とされないことが決定された場合、参照番号1006で、受信されたデータがキャッシュされ得る。さらに、または随意に、一態様では、データがさらなる処理の候補であるかどうかにかかわりなく、受信されたデータがキャッシュされ得る。対照的に、参照番号1004で、さらなる処理が促されることが決定された場合、参照番号1008で、ローカルに導出されたコンテンツが受信されたコンテンツから生成される。一態様では、処理命令は、派生コンテンツを生成する際のコンテンツハンドラを案内することができる。たとえば、受信された画像は、コンピューティングデバイスおいて一般的に使用される1つまたは複数のサイズを生成するために処理され得る。別の例では、受信されたプログラムファイルは、コンピューティングデバイスによって後で使用するために、コンパイルされたプログラムを生成するために処理され得る。さらに別の例では、受信されたフォントタイプは、コンピューティングデバイスによって後で使用するために、様々な一般的に使用される色および/またはサイズの変形を生成するために処理され得る。参照番号1010で、少なくとも派生コンテンツがキャッシュに記憶される。別の態様では、派生コンテンツおよび受信されたコンテンツは、その後の取出しを支援するために、記憶され、関連付けられる。一態様では、生データおよび1つまたは複数の導出されたコンテンツ項目のキャッシングは、派生コンテンツ項目についての取出しの後、処理要求を排除することによって、知覚されたアプリケーション性能を向上させることができる。さらに別の態様では、処理命令は、派生コンテンツおよび受信されたコンテンツとともに記憶され、導出され、受信されたコンテンツを関連付けるために使用される。
次に図8を参照すると、一態様によるキャッシュへの記憶の前の処理命令によるコンテンツの変更を容易にするための例示的な方法1100が示される。一態様では、参照番号1102で、コンピューティングデバイスは、キャッシュに記憶されるコンテンツの要求、フェッチなどを行うことができる。そのような態様では、要求は、交渉命令が付随し得る。たとえば、要求は、画像についてであり得、付随する命令が、好ましい画像の可能な画素範囲を提供する。一般に、参照番号1104で、生データが受信される。そのようなデータは、処理命令が伴い得る。一態様では、これらの処理命令は、要求交渉命令に少なくとも部分的に応答して生成される。データは、コンピュータデバイスなどによって受信され得、データは、サーバ、通信ネットワークなどから始まり得る。
次に説明するように、参照番号1106で、受信されたデータが付随する処理命令を解析することによってローカル処理の候補であるかどうかが決定される。処理命令がさらなる処理を促さない場合、参照番号1108で、受信されたデータがキャッシュされ得る。対照的に、参照番号1106で、処理命令が追加の処理を促す場合、参照番号1110で、コンテンツハンドラに処理命令および受信されたコンテンツが提供され得る。参照番号1112で、ローカルに導出されたコンテンツ、たとえば派生コンテンツは、ガイドとして処理命令を使用して、未加工コンテンツから生成される。したがって、サーバなどは、送信後の未加工コンテンツの処理を容易にすることができる。たとえば、受信された画像は、処理命令で受信された画像のグラデーションを平滑化するようコンテンツハンドラを促すことによって、低い粒度で画像を生成するために処理され得る。
参照番号1114で、少なくとも派生コンテンツがキャッシュに記憶される。別の態様では、導出され、受信されたコンテンツは、その後の取出しを支援するために、記憶され、関連付けられる。さらに別の態様では、処理命令は、導出され、受信されたコンテンツとともに記憶され、導出され、受信されたコンテンツを関連付けるために使用される。
次に図9を参照すると、キャッシュへの構造化ストレージを容易にするための例示的な方法900が示される。一般に、参照番号902で、セマンティック不明確データが受信される。一態様では、データは、選択された部分の構造化取出しを可能にするために、サーバ生成のエントリポイントが付随し得る。別の態様では、データは、既知の構造のものであり得る。データは、コンピュータデバイスなどによって受信され得、データは、サーバ、コンテンツプロバイダなどから始まり得る。
次に説明するように、参照番号904で、受信されたデータが既知の構造に関連付けられ得るかどうかが決定される。たとえば、受信されたデータは、サーバ生成のエントリポイントを含むことができ、または既知の構造のものとすることができる。データがさらなる処理を可能にする方法で構築されないことが決定された場合、参照番号906で、受信されたデータがキャッシュされ得る。対照的に、参照番号904で、さらなる処理が促されることが決定された場合、参照番号908で、データ構造が決定され得る。たとえば、いくつかのメディアタイプは、選択的な次の取出しを容易にするための処理を可能にする既知の構造で定義され得る。参照番号910で、受信された構造化コンテンツは、その既知のコンテンツを参照して記憶される。
一態様では、参照番号912で、構造化コンテンツの一部分の要求が受信され得る。そのような態様では、参照番号914で、構造化コンテンツの要求された部分が取り出され得る。たとえば、製造業者、タイトルなどに関連付けられた情報は、コンテンツ項目全体の除去なしに、キャッシュの構造化コンテンツから選択的に取り出され得る。
一態様による携帯電話によって実行されるモバイルショッピングアプリケーションの1つの例示的な例が、図10〜図13に示されている。次に図10を参照すると、一態様で、たとえばページの第1のインスタンスなど、メインページ500は、上の図1〜図7に関して上記で説明したように、ユーザによって要求され、モバイルデバイスに表示され得る。メインページ500は、情報がカタログの様々な商品に関連するカタログリスト504を含み得る。カタログリスト504は、情報の中でも、たとえば506a〜506nなど、カタログ内のデータのカテゴリのリスト、カタログ内の商品の販売促進情報、カタログ内の商品のプレビューおよび/または記述、またはカタログから購入するための商品を含み得る。ユーザが異なるカタログリストを閲覧したい場合、ユーザは、たとえば、選択ボタン502によってショッピングアプリケーションにおける異なるカタログリストに移動することができる。代替的に、または追加として、ユーザは、たとえば、「今週の新着」506cなど、カタログにおけるデータのカテゴリのうちの1つを選択し、選択されたカテゴリのカタログページに移動することができる。ページの第2のインスタンスなど、カタログページの例が図11に示される。
次に図11を参照すると、一態様では、カタログページ600は、ユーザによって要求され、モバイルデバイスに表示され得、たとえば、ユーザは、メインページ500(図10)からカタログページ600を選択する。カタログページ600が要求されると、モバイルデバイスは、カタログページ600がショッピングアプリケーションにおけるメインページ500および/または他のページに対応する類似の構造を有するかどうかを決定することができる。カタログページ600がメインページ500と類似の構造を有することが決定されると、モバイルデバイスは、メインページ500のDOMから、カタログページ600の類似の構造を取り出し、再利用することができる。さらに、モバイルデバイスは、カタログページ600がメインページ500とは異なる構造を有することを決定することができ、カタログページ600に固有の商品のDOMを作成することができる。
カタログページ600は、たとえば「今週の新着」などのタイトル604、購入する商品のリストの記述608a〜608n、および/または商品のカテゴリ606を含み得る。カテゴリは、カテゴリの中でも、たとえば、ゲーム、音楽、ビデオ、ベストセラー、呼び物の商品、および/または推奨される商品を含み得る。タイトル604が、ユーザがメインページ500(図10)で選択する選択物に対応し得ることを諒解されたい。さらに、購入する商品608a〜608nは、購入のための商品に関する情報の中でも、購入のための商品を記述する名前612a〜612n、商品の価格614a〜614n、購入のための商品を示す、および/または記述するアイコン610a〜610n、商品についての表示された評価616a〜610n(たとえば、購入のための商品の品質および/または性能に関するデータを要約する星またはテキスト)、および商品のサプライヤーを含み得る。項目の中でも、購入のための商品が、たとえば、ゲーム、音楽、ビデオまたは本を含み得ることを諒解されたい。
たとえば、モバイルデバイスは、タイトル604、購入する商品のリスト608a〜608n、および/または商品のカテゴリ606がメインページ500における特徴と類似の構造を有し(たとえば、タイトル504、ボタン502、およびリスト506a〜506n)、メインページ500のDOMから類似の構造を取り出し、再利用することができることを決定することができる。さらに、モバイルデバイスは、タイトル604の名前、たとえば「今週の新着」、ゲームの名前612a〜612n、ゲームのアイコン608a〜608n、ゲームの価格614a〜614n、および/またはゲームの評価616a〜616nがカタログページ600に固有であることを決定することができ、したがって、カタログページ600に固有の特徴について動的DOMを作成することができる。
したがって、モバイルデバイスは、カタログページ600に固有のカタログページ600の部分についての動的DOMを作成しており、メインページ500の静的DOMからの類似の構造および/またはインスタンスを再利用している。したがって、モバイルデバイスは、カタログページ600の全DOM構造を再構築する必要はないので、カタログページ600のより速いレンダリングが可能になる。
ユーザが異なるカタログページを閲覧したい、またはメインページ500に戻りたい場合、ユーザは、たとえば、ボタン602を選択することによってショッピングアプリケーションにおける異なるカタログページに移動することができる。代替的に、または追加として、ユーザは、たとえば、カタログページ600に列挙されるカテゴリおよび/または商品のうちの1つ、たとえばゲーム「ゲーム#5の名前」612eなどを選択し、商品ページ、たとえば、ページの別の第2のインスタンスに移動することができる。ページの第2のインスタンスなど、商品ページの例が図12および図13に示される。
次に図12を参照すると、一態様では、商品詳細ページ700は、ユーザによって要求され、モバイルデバイスに表示され得、たとえば、ユーザは、カタログページ600(図11)から商品詳細ページ700を選択する。商品詳細ページ700が要求されると、モバイルデバイスは、商品詳細ページ700がショッピングアプリケーションにおけるカタログページ600、メインページ500および/または他のページに対応する類似の構造および/またはインスタンスを有するかどうかを決定することができる。図11に関して上記で説明したように、モバイルデバイスは、メインページ500および/またはカタログページ600のDOMから、カタログページ600および/またはメインページ500の類似の構造を取り出し、再利用することができる。さらに、モバイルデバイスは、カタログページ600および/またはメインページ500の構造または商品と一致しない商品詳細ページ700の部分についてのDOMを作成することができる。
たとえば、モバイルデバイスは、商品詳細ページ700上のボタン702、ゲーム名706、アイコン704、価格710およびゲームの評価708がカタログページ600としての特徴と類似の構造を有し得、カタログページ600のDOMから類似の構造を取り出し、再利用することができることを決定することができる。さらに、モバイルデバイスは、たとえば、この商品を評価する720、お勧めの類似の商品716など、カタログページ600および/またはメインページ500における構造または商品と一致しない商品詳細ページ700の部分のDOMを作成することができる。したがって、モバイルデバイスは、商品詳細ページ700に固有の商品詳細ページ700の部分についての動的DOMを作成しており、カタログページ600および/またはメインページ500からの類似の構造および/またはインスタンスを再利用している。したがって、モバイルデバイスは、商品詳細ページ700の全DOM構造を再構築する必要はないので、商品詳細ページ700のより速いレンダリングが可能になる。
ユーザは、前のページを閲覧したい場合、ショッピングアプリケーションにおける前のページに戻るようにボタン702を選択することができる。代替的に、または追加として、ユーザは、たとえば、ゲーム「Guitar Hero III」718など、商品詳細ページ700上の別の商品を選択し、別の商品詳細ページ、たとえば、図13に示される商品詳細ページ800などに移動することができる。
次に図13を参照すると、一態様による商品詳細ページ800の別の例が示されている。図12に関して上記で説明したように、モバイルデバイスは、商品詳細ページ800がショッピングアプリケーションにおける商品詳細ページ700、カタログページ600、メインページ500および/または他のページに対応する類似の構造および/またはインスタンスを有するかどうかを決定することができる。モバイルデバイスは、商品詳細ページ700、メインページ500および/またはカタログページ600のDOMから、商品詳細ページ700、カタログページ600および/またはメインページ500の類似の構造を取り出し、再利用することができる。さらに、モバイルデバイスは、商品詳細ページ700、カタログページ600および/またはメインページ500における構造または商品と一致しない商品詳細ページ800の部分についての動的DOMを作成することができる。たとえば、この場合、静的DOM部分は、商品詳細ページ700と同じレイアウトを備え、一方、ゲーム名806、ゲームの評価808、およびゲームの価格810など、動的なデータ項目は動的DOM部分によって表される。
図14を参照すると、コンテンツプロバイダを介してウェブサーバおよびデータサーバから受信されたウェブページなどのページをレンダリングする装置400が示される。いくつかの態様では、たとえば、装置400は、モバイルデバイス内に存在することができる。図示のように、装置400は、プロセッサもしくはソフトウェア、またはその組合せ(たとえばファームウェア)によって実施される機能を表すことができる機能ブロックを含む。装置400は、ページに対応するウェブリソースおよびデータを受信し、ページのインスタンスをレンダリングするのを容易にする電気的構成要素の論理グルーピング402を含む。論理グルーピング402は、たとえばコンピュータデバイスで、ページの要求されたインスタンスの要求を受信するための手段404を含むことができる。さらに、論理グルーピング402は、ページの要求されたインスタンスがメモリに記憶されたページのドキュメントオブジェクトモデル(DOM)に対応するかどうかを決定するための手段406を含むことができ、メモリに記憶されたDOMが、ページの記憶されたインスタンスに対応し、ページの記憶されたインスタンスと要求されたインスタンスの両方について同じである静的部分を備える。また、論理グルーピング402は、ページの要求されたインスタンスがメモリに記憶されたDOMに対応する場合、要求されたインスタンスに対応するDOMの動的部分を取り出すための手段408を含むことができ、動的部分が、ページの要求されたインスタンスに固有である。さらに、論理グルーピング402は、ページの要求されたインスタンスに対応するDOMの動的部分を、DOMの静的部分との関係で記憶するための手段410を含むことができる。随意に、論理グルーピング402は、ページの要求されたインスタンスに対応するDOMの静的部分およびDOMの動的部分に従って、ページの要求されたインスタンスをレンダリングするための手段412を含むことができる。したがって、装置400は、ページをレンダリングする際に静的DOM部分を効率的に再利用し、ページのそれぞれの1つまたは複数のインスタンスに対応する1つまたは複数の動的DOM部分を定義する関係を有する共有DOMを作成し、記憶することができる。
さらに、装置400は、電気的構成要素404、406、408、410、および随意に412に関連付けられた機能を実行するための命令を保持するメモリ414を含むことができる。電気的構成要素404、406、408、410、および随意に412は、メモリ414の外部にあるものとして示されているが、メモリ414内に存在し得ることを理解されたい。
上述のキャッシュおよび処理技術に加えて、さらなる態様は、HTMLコードに加えてHTML計算の再使用を介してブラウザの性能を向上させるためのシステム、方法、およびデバイスを提供し、HTML計算は、対応するDOMツリー構造にリンクされるまたはインデックスが付けられる。ウェブページをロードする際、ブラウザは、通常、2つの高レベルのタスク、すなわち、インターネットを介してHTMLコードをフェッチする(本明細書では「ネットワーク要素」)タスク、およびHTML計算を実行して、HTMLコードのコンテンツを処理する(本明細書では「計算要素」)タスクを実行する。特定のURLから受信されたHTMLコードをローカルメモリにキャッシュすることによって、従来のブラウザは、ウェブページレンダリングプロセスを向上させ、それによって、HTMLをダウンロードするための時間を節約し、ネットワーク要素を向上させる。HTMLコードをキャッシュすることによって、ブラウザは、対応するHTMLコードがキャッシュされるユニフォームリソースロケータ(URL)またはユニフォームリソース識別子(URI)にアクセスするよう求める要求を受信するとすぐに、ページのレンダリングを開始することができる。したがって、従来のブラウザは、HTMLがインターネットを介して受信されたかのように、要求されたURL/URIが記憶されたHTMLコードへのリンクを有するURL/URI構成要素と一致することを決定するとすぐに、ページのレンダリングを開始できるように、HTMLコードを記憶する。しかしながら、そのようなブラウザは、計算要素に対処することができず、同じページがレンダリングされるたびに計算が再実行されることを必要とする。その結果、従来のブラウザは、ネットワーキング要素が性能ボトルネックである程度まで、レンダリング時間を向上させるだけである。
データ伝送速度がローカル処理速度よりも遅い場合、HTMLコードをフェッチすることは、性能ボトルネックである。これは通常、多くのデータが限られた帯域幅を有するネットワークを介してフェッチされることを必要とするとき、発生する。しかしながら、近年、ネットワーク帯域幅は、劇的に向上した。これは、3.5Gおよび4Gのモバイルネットワークがますます対応可能になっており、14.4Mbpsを上回る帯域幅を提供することによって立証される。また、URLについてHTMLコードがひとたびキャッシュされると、従来のブラウザは、ページをより高速にレンダリングすることができず、これは、ユーザには、より高速なネットワークにアップグレードすることは、ウェブページのレンダリング時間をあまり向上させないように見え得る。ウェブページは、ますますより複雑になっている。現代のウェブページは、受信されたウェブページのコンテンツを解析し、フォーマット化し、レンダリングするために、かなりの量の計算が必要となる。したがって、ウェブページをレンダリングする際のボトルネックは、ネットワーク要素から計算要素にシフトしている。
様々な態様は、1ページの一部分のために計算された計算を、URLおよび/またはURIに基づいてではなく、構造的類似性に基づいて、後続のページの1つまたは複数の部分のレンダリングに効率的に再使用することができるように、DOMツリー構造に対するHTMLレンダリングの計算の効率的なマッピングおよび関連付けを提供する。
ウェブブラウザは、ディスプレイに入る要素のすべてを計算し、定義するために、HTMLコードを処理することによって、表示のためのページを生成する。ウェブページ要素のスタイル、フォーマット、およびレイアウトの要求を計算するために必要とする時間は、しばしばかなりかかる。たとえば、レイアウト計算とスタイルフォーマッティングの組合せは、通常、ローカルウェブページ処理の全計算時間の半分以上を占める。さらに、スタイル特性を計算し、それらをDOM要素に適用するプロセスは、通常、ウェブページが要求され、および/またはレンダリングされるたびに実行されなければならない、再帰的でおよび時間のかかるプロセスである。様々な態様は、第1のページのために計算される計算を記憶し、第1および第2のページのウェブページのURL間の任意の関連付けを必要とすることなく、同じまたは類似のDOMツリー構造(すなわち、同形の)を有する第2のページをレンダリングするために記憶された計算を再利用することによって、これらの冗長な、時間のかかるプロセスをなくす。
図1および図2に関して上記で説明した態様は、(URLおよび/またはURIを共有する)同じページの異なるインスタンスが同じDOMツリーの静的部分を共有することができるように、DOMツリーを記憶する。それらの態様では、ページ(たとえば、「itemdetail」ページ)の固有のインスタンスが要求されると、ページデータ(たとえば、ハイパーテキストマークアップ言語(html)、カスケーディングシートスタイル(css)およびjavascript(js))がフェッチされ、DOMツリーの静的部分を作成するために使用され得る。これらの静的部分は、再利用できるように、キャッシュに記憶され得る。すなわち、記憶されたページの第2のインスタンスが要求されると、第1のインスタンスの静的DOM部分が再利用され、1つまたは複数の動的部分が第2のインスタンスのために特に作成される。その結果、これらの態様は、DOMの部分が同じページの異なるインスタンスをレンダリングするために再利用され得るように、DOMを定義することができる。図15〜図20に関して以下で説明する態様は、URLまたはURIが異なるときでも、HTMLの計算の再利用を可能にする機能を拡張する。
ウェブページをレンダリングする際に、ブラウザは、まず、(ネットワークを介して受信される、またはメモリから呼び戻される)HTMLコードを解析して、DOMツリーを生成する。従来のブラウザ、ならびに様々な実施形態のブラウザは、DOMツリーがメモリ内の任意のDOMツリー構造と一致しないとき、次いで、DOMツリーを処理して、レンダリングされるページの特徴および特性を定義するために必要とされる計算を実行する。これらの計算は、たとえば、ページに表示されるべきサブ要素ごとに、コンピューティングの寸法およびスタイルを含むことができる。任意の所与のウェブページに必要とされ得る多くの既知の計算がある。これらの計算は、レイアウトの計算、スタイルの識別、CSS照合の実行、ならびに、プロセッサおよび/または処理集約的計算を必要とする他の操作を含み得る。様々な態様では、これらの計算は、DOMツリーの対応する部分とともに、メモリに記憶される。次いで、ページがレンダリングされるたびに、生成されたDOMツリーは、計算が実行される前に、任意の一致があるかどうかを決定するために、キャッシュされたDOMツリーと比較される。一致しているDOMツリー構造がメモリにおいて識別された場合、対応するHTML計算結果は、メモリにおいて呼び戻され、再利用され、記憶されたツリーに一致しないページのDOMツリーのそれらの部分のみが、ページをレンダリングするために必要なHTML計算を完了するために処理される。ブラウザは、周知のツリー同形アルゴリズムを使用して、記憶されたDOMツリー部分と要求されたページのDOMツリーとの間の構造的類似性を識別することができる。したがって、この再利用可能性の決定は、URLおよび/またはURIとは無関係になる。
さらに以下で説明する態様は、得られた計算をメモリにDOMツリーで記憶し、アクセスされたウェブページをレンダリングするために再利用され得る記憶された計算の部分を識別するためにDOMツリー構造に基づいて認識することによって、ブラウザ性能をさらに向上させ、それによってブラウザによる再使用のために利用可能なHTMLレンダリング計算の量が増加する。これを達成するために、DOMツリーの静的および動的な部分をキャッシュすることに加えて、実際の計算は、メモリに記憶される。様々な態様では、キャッシュされた計算がそれらのDOMツリー(すなわち、計算を達成する際に実行されたDOMツリー)にインデックスを付けられるように、得られた計算をキャッシュすることができる。一態様では、結果は、キー値の対(すなわち、タグおよび値)の形でメモリに記憶される。キーまたはタグはツリー構造要素を識別し、一方、値は、要素のHTML計算の結果である。計算をDOMツリーにインデックス付けすることによって、キャッシュされた計算は、最初にキャッシュされたページまたはレンダリングされるページに関連付けられたURLまたはURIとは無関係に、構造的に類似するDOMツリー部分を有する任意のページをレンダリングするとき、再利用され得る。DOMツリーにインデックスが付けられた計算を記憶することによって、任意の特殊なタグ、URLおよび/もしくはURIに関する情報、または任意の他の追加識別機構を必要とせずに、記憶されたDOMツリーの構造を迅速に解析することもできる。
様々な態様は、再利用することができるキャッシュされた計算を認識するために、レンダリングされているページのDOMツリーおよびメモリに記憶されたDOMツリー部分の同形の部分(すなわち、類似のツリー構造を共有する部分)を認識し、識別するために、様々な周知のツリー同形アルゴリズムを使用する。たとえば、ブラウザは、たとえばAlogtime、Aho、Hopcroft、Ullman、および一致するDOMツリー部分を識別するためのツリー同形についての、その内容全体が本明細書に組み込まれる「The Design and Analysis of Computer Algorithms」、Addison-Wesley、1974に記載されている他の同形アルゴリズムなど、周知のアルゴリズムを使用することができる。
現在のDOMツリーの部分が記憶されたDOMツリーまたは記憶されたDOMツリーの部分と一致することをブラウザが認識すると、識別された部分に対応するキャッシュされた計算結果を、メモリから迅速かつ効率的に呼び戻すことができる。これは、キー値および入力値の形態で計算結果を記憶することによって達成され得る。これらの態様では、キャッシュされた計算結果を作成するために使用されるキー値および入力値は、記憶された計算結果の1つまたは複数の部分を再利用することができるように、値が同じであるかどうかを決定するために、レンダリングされる現在のページのキー値および入力値と比較され得る。記憶された計算の1つまたは複数の部分が再利用可能であると決定された場合、記憶された計算値がメモリから呼び戻され、ブラウザによって使用される。ページのすべての再利用可能なHTML計算がメモリおよびブラウザによって実行されたすべての他の計算から呼び戻されると、取り出され、実行された計算結果は、ページを表示するために使用され得る。この機能を従来のHTMLキャッシュ機能と結合することによって、ブラウザは、新しく要求されたHTMLページをダウンロードしたり計算したりすることなく、ページを非常に迅速に表示することができる。
図15は、要求されたウェブページのブラウザ解析HTMLコードによって生成されるDOMツリー1500のサンプル部分を示す。図15に示すように、HTMLコードを解析するとき、ブラウザは、ヘッディングごとにDOM要素および/またはノードを作成することができる。図示の例では、HTMLコードは、ヘッダセクション(たとえば、<HEAD>…</HEAD>)、および本文セクション(たとえば、<BODY>…</BODY>)を含む。本文セクションは、DOMツリー1500におけるDivノードおよびSpanノードによって示すように、少なくとも1つのDivセクション、および少なくとも1つのSpanセクションを含む。DivノードおよびSpanノードの各々は、Divセクションのパラグラフセクションによって示すように、サブセクションを含むこともできる。ページをレンダリングするための計算を達成するプロセスにおいて、DOMツリー要素(たとえば本文、Div、パラグラフなど)は、様々なページ構成要素の特性および特徴を計算するためにトラバースされ得る。たとえば、要求されたページのレイアウトを計算するために、DOMツリーは、一般的には実行時および環境要因(たとえば、ウィンドウサイズ)に依存しており、前もって決定することができない各要素の高さ、幅、および位置(たとえば、h=50、w=50、x=500、y=10)の絶対値を抽出するためにトラバースされ得る。様々な態様では、これらの計算された位置値は、次いで、同じまたは類似の計算を含む将来のページをレンダリングする際の再利用のためのDOMツリーにリンクされてメモリに記憶され得る。
図16は、計算値がDOMツリー1500の要素ごとに記憶され得ることを示す。図示の例では、各要素の高さ、幅、水平位置(X)および垂直位置(Y)を表す絶対位置値は、ハッシュ表、ハッシュマップ、リンクリスト、バイナリツリー、関連するアレイとしてメモリ1610に記憶され得る。様々な態様では、記憶された情報のキー値対がDOMツリーの対応するノードにマッピングするように、情報は、ハッシュ表および/またはハッシュマップとしてメモリ1610に記憶され得る。たとえば、キー要素がDOMツリー要素を識別し、対応値要素(たとえば、DOM要素の絶対位置値)を探し出す(たとえば、ハッシュマップのハッシュ関数を介して)ように、キー値対は記憶され得る。様々な態様では、ハッシュ表および/またはハッシュマップは、値(たとえば、絶対位置)を識別するために必要な命令の数がDOMツリーにおける要素の数とは無関係であるように、十分に寸法決定され得る。様々な態様では、ハッシュ表および/またはハッシュマップは、DOMツリーおよびそれらの関連する特性を単一の統一されたデータ構造で記憶するために使用され得る。当技術分野で知られている他のデータ構造またはデータ構造の組合せが使用されてもよい。
図17は、ブラウザの最初の実行または未確認のDOM構造を有する特定のウェブページの第1の抽出時にDOMツリーを作成し、処理し、記憶するための態様方法1700を示す。方法1700では、ブラウザは、ブロック1702で、所望のウェブページに対応するリモートまたはローカルサーバから、HTMLコードを受信することができる。ブラウザは、ブロック1704で、受信されたHTMLを解析し、DOMツリーを作成することができる。ブロック1706で、ブラウザは、すべての必要な計算を完了するために、DOMツリーを処理することができる。ブロック1708では、ブラウザは、メモリに計算結果をキャッシュし、DOMツリーおよび/または処理されたHTMLコードを構成することができ、ブロック1710で、ディスプレイに出力する。ブロック1712で、ブラウザは、ブラウザが動作しているコンピューティングデバイスの電子ディスプレイに、すべての関連する画像およびファイルとともに、構成され、処理されたHTMLコードを表示することができる。
図18は、ブラウザの次の実行時にDOMツリーの部分を作成し、処理し、記憶し、および/または取り出すための態様方法1800を示す。方法1800のブロック1802で、ブラウザは、サーバからHTMLコードを受信し、および/またはキャッシュメモリからHTMLコードを呼び戻すことができる。ブロック1804で、ブラウザは、HTMLコードを解析し、受信されたHTMLコードのDOMツリーの少なくとも一部分を作成することができる。決定ブロック1806で、ブラウザは、DOMツリー構造が同形かどうかを決定することによって、DOMツリーの生成された部分がメモリに記憶された1つまたは複数のDOMツリーの任意の部分と一致するかどうかを決定することができる。様々な態様では、ブラウザは、1つまたは複数の記憶されたDOMツリーのインデックスを評価することによって、この決定を行うことができる。様々な態様では、ブラウザは、DOMツリーの生成された部分に関連付けられたハッシュキーを、メモリに記憶されたDOMツリーの1つまたは複数の部分のハッシュキーと照合し得る。様々な態様では、ブラウザは、生成されたDOMツリーの一部分がメモリに記憶されたDOMツリーの部分のいずれかと一致するかどうかを決定するために、1つまたは複数の同形のアルゴリズムを実行し、またはその実行を開始することができる。同形アルゴリズムの実行は、決定ブロック1806で、生成されたDOMツリーの一部分がメモリに記憶されたDOMツリーの部分と構造的に同一である、および/または構造的に類似しているかどうかを決定することができる。
図18に戻ると、DOMツリーの生成された部分がメモリに記憶されたDOMツリーのうちの任意の構造と一致しないことが決定された場合(すなわち、決定ブロック1806=「No」)、ブロック1808で、ブラウザは、DOMツリーの生成された部分を処理し、関連の計算を実行することができる(たとえば、要素の絶対位置、スタイルを計算する、CSS照合を実行するなど)。ブロック1810で、ブラウザは、計算結果をキャッシュすることができ、結果は、DOMツリーの実行された部分にインデックスが付けられる。
一方、DOMツリーの生成された部分がメモリに記憶されたDOMツリーの部分の任意のものと構造的に同じ、および/または構造的に類似していることが決定された場合(すなわち、決定ブロック1806=「Yes」)、ブロック1812で、ブラウザは、一致するDOMインデックスに対応するキャッシュされた計算結果をメモリから呼び戻すことができる。決定ブロック1814で、ブラウザは、記憶された計算が要求されたHTMLページを生成する際に再利用可能であることを示す、メモリに記憶された一致した部分のキーおよび/または入力データが生成された部分のキーおよび/または入力データと同じであるかどうかを決定することができる。メモリに記憶された一致した部分のキーおよび/または入力データが、生成された部分のキーおよび/または入力データと同じでない場合(すなわち、決定ブロック1814=「No」)、ブラウザは、ブロック1808で、生成されたDOMツリーを処理し、計算を実行することができる。キーおよび/または入力データが一致する場合(すなわち、決定ブロック1814=「Yes」)、ブラウザは、決定ブロック1816で、すべての必要な計算が計算された、またはメモリから呼び戻されたかどうかを決定することができる。すべての計算が完了しているわけではない場合(すなわち、決定ブロック1816=「No」)、ブラウザは、ブロック1804に戻ることによって、DOMツリーの追加の部分を生成するために、HTMLコードの別のセクションを解析することができる。すべての計算が完了している場合(すなわち、決定ブロック1816=「Yes」)、ブラウザは、ブロック1818で、データを検証し、レンダリングするためのページを構成し、ブロック1820で、コンピューティングデバイスの電子ディスプレイ上にページを表示することができる。
図19は、ブラウザの次の実行時にDOMツリーの部分を作成し、処理し、記憶し、および/または取り出すための別の態様方法1900を示す。方法1900のブロック1902で、ブラウザは、キャッシュメモリおよび/またはリモートサーバからHTMLコードを受信することができる。ブロック1904で、ブラウザは、受信されたHTMLを解析し、受信されたHTMLに基づいて、DOMツリーの1つまたは複数の部分を生成することができる。ブロック1908で、ブラウザは、生成されたDOMツリーの一部分がメモリに記憶されたDOMツリーの任意の部分と一致する(たとえば、構造的に類似している)かどうかを決定するために、同形アルゴリズムを実施するスレッド/プロセスを実行することによって、生成されたDOMツリー部分を処理し、メモリに記憶されたDOMツリーと比較することができる。構造的に類似のおよび/または同一のDOMツリー部分(たとえば、同形の部分)がキャッシュメモリで見つからない場合、ブラウザは、上述の例示的な構造のうちの1つなどのデータ構造を使用して、DOMツリーにインデックスが付けられる計算をメモリに記憶することができる。構造的に類似のおよび/または同一のDOMツリー部分(たとえば、同形の部分)がメモリで見つかった場合、決定ブロック1910で、ブラウザは、キャッシュメモリから同形の部分を抽出し、および/または取り出すことができ、キーおよび/またはデータ入力値が一致するかどうかを決定することができる。様々な態様では、比較されたDOMツリーの1つまたは複数の部分が同形であると決定されたときはいつでもキーおよび/または入力データが一致するように、DOMツリーは、ハッシュ表および/またはハッシュマップに記憶され得る。これらの態様では、ブロック1908は、ブロック1920によって示すように、決定ブロック1910およびブロック1912と結合され得る。
DOMツリーの生成された部分のキーおよび/またはデータ入力値がキャッシュメモリに記憶されたDOMツリーの部分のキーおよび/またはデータ入力値のいずれとも一致しないことが決定された場合(すなわち、決定ステップ1910=「No」)、ブラウザは、図17に関して方法1700で上記で説明したように、DOMツリーをトラバースし、関連の計算を実行することによって、生成された部分を作成し、処理し、および/または記憶することができる。一方、DOMツリー部分の1つまたは複数が一致するキーおよび/または入力値を有することが決定された場合(すなわち、決定ステップ1910=「Yes」)、ブラウザは、ブロック1912で、一致するキーおよび/または入力値に関連付けられた値をメモリから引き出すことができる。決定ブロック1914で、引き出された値(たとえば、メモリから取り出される記憶された計算)は、1つまたは複数の既知のデータおよび/またはHTML検証方式を使用して検証され得る。検証方式のうちの1つまたは複数が失敗する(すなわち、決定ブロック1914=「No」)場合、DOMツリーをトラバースし、図17に関して方法1700によって上記で説明したように、関連する計算を実行することによって、ブラウザは、HTML計算の生成された部分を作成し、処理し、記憶することができる。データが有効であることが決定された場合(すなわち、決定ブロック1914=「Yes」)、ブラウザは、ブロック1916でページを構成し、ブロック1918で電子ディスプレイに得られたHTMLウェブページを表示することができる。
図20は、態様の任意のものとともに使用するのに適した、モバイルコンピューティングデバイスのシステムブロック図である。代表的なモバイルコンピューティングデバイス2000は、内部メモリ2002と、ディスプレイ2003と、スピーカー2054とに結合された、プロセッサ2001を含み得る。加えて、モバイルコンピューティングデバイス2000は、ワイヤレスデータリンク、ならびに/またはプロセッサ2001に結合されたセルラー電話送受信機2005、およびプロセッサ2001に結合されたモバイルコンピューティングデバイス2024に接続され得る、電磁放射を送信および受信するためのアンテナ2004を含み得る。モバイルコンピューティングデバイス2000は、一般に、ユーザ入力を受信するためのメニュー選択ボタンまたはロッカースイッチ2008をも含む。
上記で説明した態様は、図21に示されるラップトップコンピュータ2100など、様々なコンピューティングデバイス内で実施することもできる。多くのラップトップコンピュータは、コンピュータのポインティングデバイスとして働くタッチパッドタッチ面を含み、およびしたがって、タッチスクリーンディスプレイを備えたモバイルコンピューティングデバイス上で実施されるものと同様のドラッグ、スクロール、およびフリックジェスチャーを受信することができる。ラップトップコンピュータ2100は通常、揮発性メモリ2102と、ディスクドライブ2103のような大容量の不揮発性メモリとに結合されたプロセッサ2101を含む。コンピュータ2100はまた、プロセッサ2101に結合された、フレキシブルディスクドライブ2104およびコンパクトディスク(CD)ドライブ2105も含み得る。コンピュータデバイス2100はまた、USBもしくはFireWire(登録商標)コネクタソケット、または、プロセッサ2101をネットワークに結合するための他のネットワーク接続回路2106のような、データ接続を確立し外部メモリデバイスを受け入れるための、プロセッサ2101に結合されたいくつかのコネクタポートを含み得る。ノートブック構成において、コンピュータハウジングは、プロセッサ2101にすべて結合されるタッチパッド2107、キーボード2108、およびディスプレイ2109を含む。コンピューティングデバイスの他の構成は、周知であるように、(たとえば、USB入力を介して)プロセッサに結合されたコンピュータマウスまたはトラックボールを含み得る。
プロセッサ2001、2101は、以下で説明する様々な実施形態の機能を含む、様々な機能を実行するようにソフトウェア命令(アプリケーション)によって構成され得る任意のプログラマブルマイクロプロセッサ、マイクロコンピュータあるいは1つまたは複数の多重プロセッサチップであり得る。いくつかのモバイル受信機デバイスでは、1つのプロセッサをワイヤレス通信機能専用とし、1つのプロセッサを他のアプリケーションの実行専用とするなど、複数のプロセッサ2101を設けることができる。一般的には、ソフトウェアアプリケーションは、それらがアクセスされ、プロセッサ2001、2101にロードされる前に、内部メモリ2002、2102、2103内に記憶され得る。プロセッサ2001、2101は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含み得る。
本明細書で開示する実施形態に関して説明する様々な例示的な論理、論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または、本明細書で説明する機能を実行するように設計されたそれらの任意の組合せによって、実装または実行されてもよい。汎用プロセッサはマイクロプロセッサであってよいが、代替として、汎用プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であってもよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、または、任意の他のそのような構成として実装され得る。さらに、少なくとも1つのプロセッサは、上述のステップおよび/またはアクションの1つまたは複数を実行するように動作可能な、1つまたは複数のモジュールを含み得る。
さらに、本明細書で開示した態様に関して説明した方法またはアルゴリズムのステップおよび/またはアクションは、直接ハードウェアで実施するか、プロセッサによって実行されるソフトウェアモジュールで実施するか、またはその2つの組合せで実施され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体中に常駐し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込み得るようにプロセッサに結合され得る。代替として、記憶媒体はプロセッサと一体であり得る。さらに、いくつかの態様では、プロセッサおよび記憶媒体はASIC中に常駐し得る。さらに、ASICはユーザ端末中に常駐し得る。代替として、プロセッサおよび記憶媒体は、ユーザ端末中に個別構成要素として常駐し得る。さらに、いくつかの態様では、方法またはアルゴリズムのステップおよび/またはアクションは、コンピュータプログラム製品に組み込まれ得る、機械可読媒体および/またはコンピュータ可読媒体上のコードおよび/または命令の1つまたは任意の組合せ、あるいはそのセットとして常駐し得る。
1つまたは複数の態様では、説明する機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。各機能は、ソフトウェアで実装される場合、1つまたは複数の命令またはコードとして非一時的コンピュータ可読媒体上に記憶されるか、または、コンピュータ可読媒体上で送信され得る。非一時的コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の形態のコンピュータ記憶媒体を含む。非一時的記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのような非一時的コンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを搬送もしくは記憶するために使用され得るとともに、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フレキシブルディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、通常、データをレーザで光学的に再生する。上記の組合せも非一時的コンピュータ可読媒体の範囲内に含めるべきである。
上記の開示は、例示的な態様および/または実施形態について論じたが、添付の特許請求の範囲によって定義される、説明した態様および/または実施形態の範囲から逸脱することなく、様々な変更および改変を本明細書で行うことができることに留意されたい。さらに、説明した態様および/または実施形態の要素は、単数形で説明または請求されていることがあるが、単数形に限定することが明示的に述べられていない限り、複数形が企図される。さらに、任意の態様および/または実施形態の全部または一部は、別段に記載されていない限り、任意の他の態様および/または実施形態の全部または一部とともに利用され得る。
10 コンピュータデバイス
12 ポータル構成要素
13 ページ
14 ウェブエンジン
15 ディスプレイ
16 ウェブサーバ
18 データサーバ
20 ウェブリソース
22 ウェブリソース
24 データ項目
26 データ項目
28 第1のページインスタンス
30 第2のページインスタンス
32 受信された要求
34 ページの要求されたインスタンス
36 一致決定器
38 DOM
39 新しいDOM
40 反復器構成要素
42 静的部分
44 記憶されたインスタンス
46 動的部分
48 動的DOM部分
50 スクリプトエンジン
52 レンダリングエンジン
60 テンプレート構造
74 第3のページインスタンス
150 プロセッサ
151 未加工コンテンツのストレージ
152 メモリ
154 通信構成要素
155 派生キャッシュ
156 ユーザインターフェース構成要素
158 入力
159 構造化キャッシュ
160 出力
162 フェッチマネージャ
164 導出マネージャ
166 コンテンツハンドラ
168 処理命令
169 構造参照
400 装置
402 論理グルーピング
414 メモリ
500 メインページ
502 選択ボタン
504 カタログリスト
600 カタログページ
700 商品詳細ページ
800 商品詳細ページ
1500 DOMツリー
2000 モバイルコンピューティングデバイス
2001 プロセッサ
2002 内部メモリ
2003 ディスプレイ
2004 アンテナ
2005 セルラー電話送受信機
2008 ロッカースイッチ
2100 ラップトップコンピュータ
2101 プロセッサ
2102 揮発性メモリ
2103 ディスクドライブ
2104 フレキシブルディスクドライブ
2105 コンパクトディスク(CD)ドライブ
2106 ネットワーク接続回路
2107 タッチパッド
2108 キーボード
2109 ディスプレイ
2024 モバイルコンピューティングデバイス
2054 スピーカー

Claims (44)

  1. コンピューティングデバイス上でページをレンダリングするための方法であって、
    前記コンピューティングデバイスのプロセッサにおいて、第1のユニフォームリソースロケータ(URL)を有するウェブページを表示するよう求める要求を受信するステップと、
    前記要求されたウェブページに対応するソフトウェアコードを受信するステップと、
    ドキュメントオブジェクトモデル(DOM)ツリーを生成するために前記受信されたソフトウェアコードを解析するステップと、
    前記生成されたDOMツリーの一部分がメモリに記憶されたDOMツリーの1つまたは複数の部分と同形であるかどうかを決定するステップと、
    生成されたDOMツリーの一部分が前記メモリに記憶されたDOMツリーの1つまたは複数の部分と同形であることが決定されたとき、前記記憶されたDOMツリーの同形の部分に関連付けられた以前記憶された計算を前記メモリから取り出すステップであり、前記以前記憶された計算が、前記第1のURLとは異なる第2のURLを有する第2のウェブページのウェブベースのコンテンツの解析、フォーマッティング、およびレンダリングのうちの1つまたは複数に関係し、前記第2のウェブページが、前記要求されたウェブページとは異なる、ステップと、
    前記DOMツリーの静的に処理された部分である前記記憶されたDOMツリーの同形の部分および前記メモリから取り出された前記計算と、前記生成されたDOMツリーの動的に処理される部分とを使用して、前記要求されたウェブページを構成するステップと、
    前記コンピューティングデバイスの電子ディスプレイに前記要求されたウェブページを表示するステップと
    を備える方法。
  2. 前記要求されたウェブページに対応するソフトウェアコードを受信するステップが、前記要求されたウェブページに対応するHTMLコードを受信するステップを備え、
    ドキュメントオブジェクトモデル(DOM)ツリーを生成するために前記受信されたソフトウェアコードを解析するステップが、DOMツリーを生成するために前記受信されたHTMLコードを解析するステップを備える
    請求項1に記載の方法。
  3. 生成されたDOMツリーの一部分が前記メモリに記憶されたDOMツリーの1つまたは複数の部分と同形かどうかを決定するステップが、ツリー同形比較アルゴリズムを使用して、前記生成されたDOMツリーを、前記メモリに記憶されたDOMツリー構造と比較するステップを備える、請求項2に記載の方法。
  4. 生成されたDOMツリーの一部分が前記メモリに記憶されたDOMツリーの1つまたは複数の部分と同形かどうかを決定するステップが、前記生成されたDOMツリーの前記一部分が前記メモリに記憶されたDOMツリーの1つまたは複数の部分と同一である構造を有するかどうかを決定するステップを備える、請求項2に記載の方法。
  5. 生成されたDOMツリーの一部分が前記メモリに記憶されたDOMツリーの1つまたは複数の部分と同形かどうかを決定するステップが、前記生成されたDOMツリーの前記一部分が前記メモリに記憶された前記DOMツリーの1つまたは複数の部分と構造的に類似しているかどうかを決定するステップを備える、請求項2に記載の方法。
  6. 前記メモリ内のDOMツリーの計算結果を作成するために使用されるキー値および入力値が前記生成されたDOMツリーのキー値および入力値に等しいかどうかを決定するステップをさらに備え、
    前記メモリ内のDOMツリーの計算結果を作成するために使用される前記キー値および入力値が前記生成されたDOMツリーのキー値および入力値に等しいことが決定されたときのみ、前記DOMツリーの同形の部分に関連付けられた以前記憶された計算を前記メモリから取り出すステップが実行される、
    請求項2に記載の方法。
  7. 前記DOMツリーの同形の部分に関連付けられた以前記憶された計算を前記メモリから取り出すステップが、前記DOMツリーの同形の部分に対応するDOMサブツリー構造に基づいて計算されたハッシュ値によってインデックスが付けられるように前記DOMツリーの前記同形の部分の前記計算の結果を記憶する前記メモリにアクセスするステップを備える、請求項2に記載の方法。
  8. 前記生成されたDOMツリーが前記メモリに記憶された前記DOMツリーの前記1つまたは複数の部分のいずれとも同形ではないことが決定されたとき、前記生成されたDOMツリーのHTMLコードの計算を完了するステップと、
    前記生成されたDOMツリーでインデックスが付けられた前記HTMLコードの計算の結果を前記メモリに記憶するステップと
    をさらに備える、請求項2に記載の方法。
  9. 前記HTMLコードの計算の結果を記憶するステップが、対応するHTMLコードの計算結果に関連してDOMツリー要素が記憶されるキー値データ構造で前記生成されたDOMツリーの少なくとも一部分を記憶するステップを備える、請求項8に記載の方法。
  10. 前記キー値データ構造がハッシュマップデータ構造を備える、請求項9に記載の方法。
  11. 以前記憶された計算を前記メモリから取り出す前記ステップが、前記生成されたDOMツリーの前記一部分と同形である前記記憶されたDOMツリーのノードに関連付けられたハッシュキーを評価するステップを備える、請求項10に記載の方法。
  12. メモリと、
    前記メモリに結合されたプロセッサと、
    第1のユニフォームリソースロケータ(URL)を有するウェブページを表示するよう求める要求を受信するための手段と、
    前記要求されたウェブページに対応するソフトウェアコードを受信するための手段と、
    ドキュメントオブジェクトモデル(DOM)ツリーを生成するために前記受信されたソフトウェアコードを解析するための手段と、
    前記生成されたDOMツリーの一部分が前記メモリに記憶されたDOMツリーの1つまたは複数の部分と同形であるかどうかを決定するための手段と、
    生成されたDOMツリーの一部分が前記メモリに記憶されたDOMツリーの1つまたは複数の部分と同形であることが決定されたとき、前記記憶されたDOMツリーの同形の部分に関連付けられた以前記憶された計算を前記メモリから取り出すための手段であり、前記以前記憶された計算が、前記第1のURLとは異なる第2のURLを有する第2のウェブページのウェブベースのコンテンツの解析、フォーマッティング、およびレンダリングのうちの1つまたは複数に関係し、前記第2のウェブページが、前記要求されたウェブページとは異なる、手段と、
    前記DOMツリーの静的に処理された部分である前記記憶されたDOMツリーの同形の部分および前記メモリから取り出された前記計算と、前記生成されたDOMツリーの動的に処理される部分とを使用して、前記要求されたウェブページを構成するための手段と、
    前記要求されたウェブページを電子ディスプレイに表示するための手段と
    を備えるコンピューティングデバイス。
  13. 前記要求されたウェブページに対応するソフトウェアコードを受信するための手段が、前記要求されたウェブページに対応するHTMLコードを受信するための手段を備え、
    ドキュメントオブジェクトモデル(DOM)ツリーを生成するために前記受信されたソフトウェアコードを解析するための手段が、DOMツリーを生成するために前記受信されたHTMLコードを解析するための手段を備える
    請求項12に記載のコンピューティングデバイス。
  14. 生成されたDOMツリーの一部分が前記メモリに記憶されたDOMツリーの1つまたは複数の部分と同形かどうかを決定するための手段が、ツリー同形比較アルゴリズムを使用して、前記生成されたDOMツリーを、前記メモリに記憶されたDOMツリー構造と比較するための手段を備える、請求項13に記載のコンピューティングデバイス。
  15. 生成されたDOMツリーの一部分が前記メモリに記憶されたDOMツリーの1つまたは複数の部分と同形かどうかを決定するための手段が、前記生成されたDOMツリーの前記一部分が前記メモリに記憶されたDOMツリーの1つまたは複数の部分と同一である構造を有するかどうかを決定するための手段を備える、請求項13に記載のコンピューティングデバイス。
  16. 生成されたDOMツリーの一部分が前記メモリに記憶されたDOMツリーの1つまたは複数の部分と同形かどうかを決定するための手段が、前記生成されたDOMツリーの前記一部分が前記メモリに記憶された前記DOMツリーの1つまたは複数の部分と構造的に類似しているかどうかを決定するための手段を備える、請求項13に記載のコンピューティングデバイス。
  17. 前記メモリ内のDOMツリーの計算結果を作成するために使用されるキー値および入力値が前記生成されたDOMツリーのキー値および入力値に等しいかどうかを決定するための手段をさらに備え、
    前記DOMツリーの同形の部分に関連付けられた以前記憶された計算を前記メモリから取り出すための手段が、前記メモリ内のDOMツリーの計算結果を作成するために使用される前記キー値および入力値が前記生成されたDOMツリーのキー値および入力値に等しいことが決定されたときのみ、前記DOMツリーの同形の部分に関連付けられた前記記憶された計算を取り出すための手段を備える、
    請求項13に記載のコンピューティングデバイス。
  18. 前記DOMツリーの同形の部分に関連付けられた以前記憶された計算を前記メモリから取り出すための手段が、前記DOMツリーの同形の部分に対応するDOMサブツリー構造に基づいて計算されたハッシュ値によってインデックスが付けられるように前記DOMツリーの前記同形の部分の前記計算の結果を記憶する前記メモリにアクセスするための手段を備える、請求項13に記載のコンピューティングデバイス。
  19. 前記生成されたDOMツリーが前記メモリに記憶された前記DOMツリーの前記1つまたは複数の部分のいずれとも同形ではないことが決定されたとき、前記生成されたDOMツリーのHTMLコードの計算を完了するための手段と、
    前記生成されたDOMツリーでインデックスが付けられた前記HTMLコードの計算の結果を前記メモリに記憶するための手段と
    をさらに備える、請求項13に記載のコンピューティングデバイス。
  20. 前記HTMLコードの計算の結果を記憶するための手段が、対応するHTMLコードの計算結果に関連してDOMツリー要素が記憶されるキー値データ構造で前記生成されたDOMツリーの少なくとも一部分を記憶するための手段を備える、請求項19に記載のコンピューティングデバイス。
  21. 前記生成されたDOMツリーの少なくとも一部分をキー値データ構造で記憶するための手段が、前記生成されたDOMツリーの少なくとも一部分をハッシュマップデータ構造で記憶するための手段を備える、請求項20に記載のコンピューティングデバイス。
  22. 以前記憶された計算を前記メモリから取り出すための手段が、前記生成されたDOMツリーの前記一部分と同形である前記記憶されたDOMツリーのノードに関連付けられたハッシュキーを評価するための手段を備える、請求項21に記載のコンピューティングデバイス。
  23. メモリと、
    前記メモリに結合されるプロセッサとを備え、前記プロセッサが、
    第1のユニフォームリソースロケータ(URL)を有するウェブページを表示するよう求める要求を受信するステップと、
    前記要求されたウェブページに対応するソフトウェアコードを受信するステップと、
    ドキュメントオブジェクトモデル(DOM)ツリーを生成するために前記受信されたソフトウェアコードを解析するステップと、
    前記生成されたDOMツリーの一部分が前記メモリに記憶されたDOMツリーの1つまたは複数の部分と同形であるかどうかを決定するステップと、
    生成されたDOMツリーの一部分が前記メモリに記憶されたDOMツリーの1つまたは複数の部分と同形であることが決定されたとき、前記記憶されたDOMツリーの同形の部分に関連付けられた以前記憶された計算を前記メモリから取り出すステップであり、前記以前記憶された計算が、前記第1のURLとは異なる第2のURLを有する第2のウェブページのウェブベースのコンテンツの解析、フォーマッティング、およびレンダリングのうちの1つまたは複数に関係し、前記第2のウェブページが、前記要求されたウェブページとは異なる、ステップと、
    前記DOMツリーの静的に処理された部分である前記記憶されたDOMツリーの同形の部分および前記メモリから取り出された前記計算と、前記生成されたDOMツリーの動的に処理されたる部分とを使用して、前記要求されたウェブページを構成するステップと、
    前記要求されたウェブページを表示するステップと
    を備える操作を実行するためのプロセッサ実行可能命令で構成される、
    コンピューティングデバイス。
  24. 前記プロセッサが、
    前記要求されたウェブページに対応するソフトウェアコードを受信するステップが、前記要求されたウェブページに対応するHTMLコードを受信するステップを備え、
    ドキュメントオブジェクトモデル(DOM)ツリーを生成するために前記受信されたソフトウェアコードを解析するステップが、DOMツリーを生成するために前記受信されたHTMLコードを解析するステップを備える
    よう操作を実行するためのプロセッサ実行可能命令で構成される、請求項23に記載のコンピューティングデバイス。
  25. 前記プロセッサが、生成されたDOMツリーの一部分が前記メモリに記憶されたDOMツリーの1つまたは複数の部分と同形かどうかを決定するステップが、ツリー同形比較アルゴリズムを使用して、前記生成されたDOMツリーを、前記メモリに記憶されたDOMツリー構造と比較するステップを備えるようなプロセッサ実行可能命令で構成される、請求項24に記載のコンピューティングデバイス。
  26. 前記プロセッサが、生成されたDOMツリーの一部分が前記メモリに記憶されたDOMツリーの1つまたは複数の部分と同形かどうかを決定するステップが、前記生成されたDOMツリーの前記一部分が前記メモリに記憶されたDOMツリーの1つまたは複数の部分と同一である構造を有するかどうかを決定するステップを備えるようなプロセッサ実行可能命令で構成される、請求項25に記載のコンピューティングデバイス。
  27. 前記プロセッサが、生成されたDOMツリーの一部分が前記メモリに記憶されたDOMツリーの1つまたは複数の部分と同形かどうかを決定するステップが、前記生成されたDOMツリーの前記一部分が前記メモリに記憶された前記DOMツリーの1つまたは複数の部分に構造的に類似しているかどうかを決定するステップを備えるようなプロセッサ実行可能命令で構成される、請求項25に記載のコンピューティングデバイス。
  28. 前記プロセッサが、前記メモリ内のDOMツリーの計算結果を作成するために使用されるキー値および入力値が前記生成されたDOMツリーのキー値および入力値に等しいかどうかを決定するステップをさらに備える操作を実行するためのプロセッサ実行可能命令で構成され、
    前記プロセッサが、前記メモリ内のDOMツリーの計算結果を作成するために使用される前記キー値および入力値が前記生成されたDOMツリーのキー値および入力値に等しいことが決定されたときのみ、前記DOMツリーの同形の部分に関連付けられた以前記憶された計算を前記メモリから取り出すステップが実行されるようなプロセッサ実行可能命令で構成される、
    請求項25に記載のコンピューティングデバイス。
  29. 前記プロセッサが、前記DOMツリーの同形の部分に関連付けられた以前記憶された計算を前記メモリから取り出すステップが、前記DOMツリーの同形の部分に対応するDOMサブツリー構造に基づいて計算されたハッシュ値によってインデックスが付けられるように前記DOMツリーの前記同形の部分の前記計算の結果を記憶する前記メモリにアクセスするステップを備えるようなプロセッサ実行可能命令で構成される、請求項25に記載のコンピューティングデバイス。
  30. 前記プロセッサが、
    前記生成されたDOMツリーが前記メモリに記憶された前記DOMツリーの前記1つまたは複数の部分のいずれとも同形ではないことが決定されたとき、前記生成されたDOMツリーのHTMLコードの計算を完了するステップと、
    前記生成されたDOMツリーでインデックスが付けられた前記HTMLコードの計算の結果を前記メモリに記憶するステップと
    をさらに備える操作を実行するためのプロセッサ実行可能命令で構成される、請求項25に記載のコンピューティングデバイス。
  31. 前記プロセッサが、前記HTMLコードの計算の結果を記憶するステップが対応するHTMLコードの計算結果に関連してDOMツリー要素が記憶されるキー値データ構造で前記生成されたDOMツリーの少なくとも一部分を記憶するステップを備えるようなプロセッサ実行可能命令で構成される、請求項30に記載のコンピューティングデバイス。
  32. 前記プロセッサが、前記キー値データ構造がハッシュマップデータ構造を備えるようなプロセッサ実行可能命令で構成される、請求項31に記載のコンピューティングデバイス。
  33. 前記プロセッサが、以前記憶された計算を前記メモリから取り出すステップが前記生成されたDOMツリーの前記一部分と同形である前記記憶されたDOMツリーのノードに関連付けられたハッシュキーを評価するステップを備えるようなプロセッサ実行可能命令で構成される、請求項32に記載のコンピューティングデバイス。
  34. コンピューティングデバイスのプロセッサに、
    第1のユニフォームリソースロケータ(URL)を有するウェブページを表示するよう求める要求を受信するステップと、
    前記要求されたウェブページに対応するソフトウェアコードを受信するステップと、
    ドキュメントオブジェクトモデル(DOM)ツリーを生成するために前記受信されたソフトウェアコードを解析するステップと、
    前記生成されたDOMツリーの一部分がメモリに記憶されたDOMツリーの1つまたは複数の部分と同形であるかどうかを決定するステップと、
    生成されたDOMツリーの一部分が前記メモリに記憶されたDOMツリーの1つまたは複数の部分と同形であることが決定されたとき、前記記憶されたDOMツリーの同形の部分に関連付けられた以前記憶された計算を前記メモリから取り出すステップであり、前記以前記憶された計算が、前記第1のURLとは異なる第2のURLを有する第2のウェブページのウェブベースのコンテンツの解析、フォーマッティング、およびレンダリングのうちの1つまたは複数に関係し、前記第2のウェブページが、前記要求されたウェブページとは異なる、ステップと、
    前記DOMツリーの静的に処理された部分である前記記憶されたDOMツリーの同形の部分および前記メモリから取り出された前記計算と、前記生成されたDOMツリーの動的に処理される部分とを使用して、前記要求されたウェブページを構成するステップと、
    前記要求されたウェブページを電子ディスプレイに表示するステップと
    を備える操作を実行させるように構成されたプロセッサ実行可能ソフトウェア命令を記憶するコンピュータ可読記憶媒体。
  35. 前記記憶されたプロセッサ実行可能命令が、コンピューティングデバイスのプロセッサに、
    前記要求されたウェブページに対応するソフトウェアコードを受信するステップが、前記要求されたウェブページに対応するHTMLコードを受信するステップを備え、
    ドキュメントオブジェクトモデル(DOM)ツリーを生成するために前記受信されたソフトウェアコードを解析するステップが、DOMツリーを生成するために前記受信されたHTMLコードを解析するステップを備える
    ような操作を実行させるように構成される、請求項34に記載のコンピュータ可読記憶媒体。
  36. 前記記憶されたプロセッサ実行可能命令が、コンピューティングデバイスのプロセッサに、生成されたDOMツリーの一部分が前記メモリに記憶されたDOMツリーの1つまたは複数の部分と同形かどうかを決定するステップが、ツリー同形比較アルゴリズムを使用して、前記生成されたDOMツリーを、前記メモリに記憶されたDOMツリー構造と比較するステップを備えるような操作を実行させるように構成される、請求項35に記載のコンピュータ可読記憶媒体。
  37. 前記記憶されたプロセッサ実行可能命令が、コンピューティングデバイスのプロセッサに、生成されたDOMツリーの一部分が前記メモリに記憶されたDOMツリーの1つまたは複数の部分と同形かどうかを決定するステップが、前記生成されたDOMツリーの前記一部分が前記メモリに記憶されたDOMツリーの1つまたは複数の部分と同一である構造を有するかどうかを決定するステップを備えるような操作を実行させるように構成される、請求項35に記載のコンピュータ可読記憶媒体。
  38. 前記記憶されたプロセッサ実行可能命令が、コンピューティングデバイスのプロセッサに、生成されたDOMツリーの一部分が前記メモリに記憶されたDOMツリーの1つまたは複数の部分と同形かどうかを決定するステップが、前記生成されたDOMツリーの前記一部分が前記メモリに記憶された前記DOMツリーの1つまたは複数の部分に構造的に類似しているかどうかを決定するステップを備えるような操作を実行させるように構成される、請求項35に記載のコンピュータ可読記憶媒体。
  39. 前記記憶されたプロセッサ実行可能命令が、コンピューティングデバイスのプロセッサに、前記メモリ内のDOMツリーの計算結果を作成するために使用されるキー値および入力値が前記生成されたDOMツリーのキー値および入力値に等しいかどうかを決定するステップをさらに備える操作を実行させるように構成され、
    前記記憶されたプロセッサ実行可能命令が、コンピューティングデバイスのプロセッサに、前記メモリ内のDOMツリーの計算結果を作成するために使用される前記キー値および入力値が前記生成されたDOMツリーのキー値および入力値に等しいことが決定されたときのみ、前記DOMツリーの同形の部分に関連付けられた以前記憶された計算を前記メモリから取り出すステップが実行されるような操作を実行させるように構成される、
    請求項35に記載のコンピュータ可読記憶媒体。
  40. 前記記憶されたプロセッサ実行可能命令が、コンピューティングデバイスのプロセッサに、前記DOMツリーの同形の部分に関連付けられた以前記憶された計算を前記メモリから取り出すステップが、前記DOMツリーの同形の部分に対応するDOMサブツリー構造に基づいて計算されたハッシュ値によってインデックスが付けられるように前記DOMツリーの前記同形の部分の前記計算の結果を記憶する前記メモリにアクセスするステップを備えるような操作を実行させるように構成される、請求項35に記載のコンピュータ可読記憶媒体。
  41. 前記記憶されたプロセッサ実行可能命令が、コンピューティングデバイスのプロセッサに、
    前記生成されたDOMツリーが前記メモリに記憶された前記DOMツリーの前記1つまたは複数の部分のいずれとも同形ではないことが決定されたとき、前記生成されたDOMツリーのHTMLコードの計算を完了するステップと、
    前記生成されたDOMツリーでインデックスが付けられた前記HTMLコードの計算の結果を前記メモリに記憶するステップと
    をさらに備える操作を実行させるように構成される、請求項35に記載のコンピュータ可読記憶媒体。
  42. 前記記憶されたプロセッサ実行可能命令が、コンピューティングデバイスのプロセッサに、前記HTMLコードの計算の結果を記憶するステップが対応するHTMLコードの計算結果に関連してDOMツリー要素が記憶されるキー値データ構造で前記生成されたDOMツリーの少なくとも一部分を記憶するステップを備えるような操作を実行させるように構成される、請求項41に記載のコンピュータ可読記憶媒体。
  43. 前記記憶されたプロセッサ実行可能命令が、コンピューティングデバイスのプロセッサに、前記キー値データ構造がハッシュマップデータ構造を備えるような操作を実行させるように構成される、請求項42に記載のコンピュータ可読記憶媒体。
  44. 前記記憶されたプロセッサ実行可能命令が、コンピューティングデバイスのプロセッサに、以前記憶された計算を前記メモリから取り出すステップが前記生成されたDOMツリーの前記一部分と同形である前記記憶されたDOMツリーのノードに関連付けられたハッシュキーを評価するステップを備えるような操作を実行させるように構成される、請求項43に記載のコンピュータ可読記憶媒体。
JP2014506462A 2011-04-28 2012-04-12 Domベースの同形によるウェブブラウジング計算の記憶 Expired - Fee Related JP5863214B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/096,131 US9171097B2 (en) 2009-03-31 2011-04-28 Memoizing web-browsing computation with DOM-based isomorphism
US13/096,131 2011-04-28
PCT/US2012/033344 WO2012148692A1 (en) 2011-04-28 2012-04-12 Memoizing web - browsing computation with dom-based isomorphism

Publications (2)

Publication Number Publication Date
JP2014519073A JP2014519073A (ja) 2014-08-07
JP5863214B2 true JP5863214B2 (ja) 2016-02-16

Family

ID=46001806

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014506462A Expired - Fee Related JP5863214B2 (ja) 2011-04-28 2012-04-12 Domベースの同形によるウェブブラウジング計算の記憶

Country Status (6)

Country Link
US (1) US9171097B2 (ja)
EP (1) EP2702511A1 (ja)
JP (1) JP5863214B2 (ja)
KR (1) KR101578991B1 (ja)
CN (1) CN103502983B (ja)
WO (1) WO2012148692A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7099955B2 (ja) 2015-11-13 2022-07-12 レゾナント インコーポレイテッド 改善された拒絶を有する弾性波フィルタ

Families Citing this family (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9311425B2 (en) * 2009-03-31 2016-04-12 Qualcomm Incorporated Rendering a page using a previously stored DOM associated with a different page
WO2011063561A1 (en) * 2009-11-25 2011-06-03 Hewlett-Packard Development Company, L. P. Data extraction method, computer program product and system
US11983233B2 (en) 2011-04-11 2024-05-14 Viasat, Inc. Browser based feedback for optimized web browsing
US9912718B1 (en) 2011-04-11 2018-03-06 Viasat, Inc. Progressive prefetching
US9600350B2 (en) 2011-06-16 2017-03-21 Vmware, Inc. Delivery of a user interface using hypertext transfer protocol
PL395376A1 (pl) * 2011-06-22 2013-01-07 Google Inc. Wykonywanie, po stronie klienta, przyblizonych zrzutów ekranu stron sieci web
US9549045B2 (en) 2011-08-29 2017-01-17 Vmware, Inc. Sharing remote sessions of a user interface and/or graphics of a computer
US9514242B2 (en) * 2011-08-29 2016-12-06 Vmware, Inc. Presenting dynamically changing images in a limited rendering environment
US8607251B1 (en) * 2011-09-21 2013-12-10 Google Inc. Dynamic accessibility behavior
US9398110B2 (en) * 2011-10-21 2016-07-19 Nokia Technologies Oy Method and apparatus for providing standard information processing pipelines
JP6021487B2 (ja) * 2012-07-18 2016-11-09 キヤノン株式会社 情報処理システム、制御方法、サーバ、情報処理装置およびコンピュータプログラム
US9747386B1 (en) * 2012-08-10 2017-08-29 Amazon Technologies, Inc. User-perceived performance through browser hints
CA2789936C (en) 2012-09-14 2020-02-18 Ibm Canada Limited - Ibm Canada Limitee Identification of sequential browsing operations
CN104254849B (zh) 2012-10-10 2018-01-12 Sk 普兰尼特有限公司 支持网络文档的高速网络滚动的用户终端装置和方法
US10095663B2 (en) 2012-11-14 2018-10-09 Amazon Technologies, Inc. Delivery and display of page previews during page retrieval events
US9305169B2 (en) * 2012-12-18 2016-04-05 Tinfoil Security, Inc. System and methods for scalably identifying and characterizing structural differences between document object models
US9742791B2 (en) * 2012-12-18 2017-08-22 Tinfoil Security, Inc. Site independent methods for deriving contextually tailored security vulnerability corrections for hardening solution stacks
US9729605B2 (en) * 2012-12-27 2017-08-08 Akamai Technologies Inc. Mechanism for distinguishing between content to be served through first or second delivery channels
US11256524B2 (en) * 2013-02-19 2022-02-22 Quick Eye Technologies Inc. Data structures for visualization of hierarchical data
US20150067475A1 (en) * 2013-08-30 2015-03-05 Wal-Mart Stores, Inc. Web Application Framework
US9477774B2 (en) * 2013-09-25 2016-10-25 Akamai Technologies, Inc. Key resource prefetching using front-end optimization (FEO) configuration
US20150161087A1 (en) * 2013-12-09 2015-06-11 Justin Khoo System and method for dynamic imagery link synchronization and simulating rendering and behavior of content across a multi-client platform
US9369482B2 (en) * 2013-12-12 2016-06-14 Tinfoil Security, Inc. Site independent system for deriving contextually tailored security vulnerability corrections for hardening solution stacks
US10498663B2 (en) * 2014-03-12 2019-12-03 Amazon Technologies, Inc. Profile-based cache management
US9608822B2 (en) * 2014-03-18 2017-03-28 Ecole Polytechnique Federale De Lausanne (Epfl) Method for generating an HTML document that contains encrypted files and the code necessary for decrypting them when a valid passphrase is provided
KR101589369B1 (ko) * 2014-04-15 2016-01-28 광운대학교 산학협력단 비 휘발성 메모리를 이용한 처리된 자원 캐싱 장치 및 방법
WO2015163850A1 (en) * 2014-04-22 2015-10-29 Hewlett-Packard Development Company, L.P. Identifying a functional fragment of a document object model tree
CN103995835A (zh) * 2014-04-25 2014-08-20 江苏思迈斯电子商务有限公司 用户界面框架的网页元素查找方法
US11169666B1 (en) * 2014-05-22 2021-11-09 Amazon Technologies, Inc. Distributed content browsing system using transferred hardware-independent graphics commands
US10855797B2 (en) 2014-06-03 2020-12-01 Viasat, Inc. Server-machine-driven hint generation for improved web page loading using client-machine-driven feedback
US9454515B1 (en) 2014-06-17 2016-09-27 Amazon Technologies, Inc. Content browser system using graphics commands and native text intelligence
US9753904B2 (en) * 2014-07-25 2017-09-05 Qualcomm Incorporated Fast rendering of websites containing dynamic content and stale content
US9641590B2 (en) 2014-08-27 2017-05-02 Google Inc. Resuming session states
US11003833B2 (en) 2014-09-09 2021-05-11 Microsoft Technology Licensing, Llc Adding visual description nodes to a visual description tree during layout
US10402478B2 (en) * 2014-09-09 2019-09-03 Intentional Software Corporation Linking visual layout nodes of a visual layout tree using positioning pointers
US10430500B2 (en) 2014-09-09 2019-10-01 Intentional Software Corporation Detecting and animating a change in position of a visual layout node of a visual layout tree
US10387540B2 (en) 2014-09-09 2019-08-20 Intentional Software Corporation Generating a visual layout tree using caching techniques
US10387547B2 (en) 2014-09-09 2019-08-20 Intentional Software Corporation Layout engine for creating a visual layout tree for a document
US10353991B2 (en) 2014-09-09 2019-07-16 Intentional Software Corporation Generating a visual description tree based on a layout interruption record
US20160104130A1 (en) * 2014-10-09 2016-04-14 Wrap Media, LLC Active receipt wrapped packages accompanying the sale of products and/or services
US9785332B1 (en) 2014-12-05 2017-10-10 Amazon Technologies, Inc. Conserving processing resources by controlling updates to damaged tiles of a content page
US10546038B2 (en) * 2014-12-08 2020-01-28 Amazon Technologies, Inc. Intelligent browser-based display tiling
WO2016130542A1 (en) * 2015-02-10 2016-08-18 The Trustees Of Columbia University In The City Of New York Code relatives detection
US20180052647A1 (en) * 2015-03-20 2018-02-22 Lg Electronics Inc. Electronic device and method for controlling the same
US9841960B2 (en) * 2015-03-30 2017-12-12 Ca, Inc. Dynamic provision of debuggable program code
US20160334974A1 (en) * 2015-05-14 2016-11-17 Gilad GRAY Generating graphical representations of data using multiple rendering conventions
US9965451B2 (en) * 2015-06-09 2018-05-08 International Business Machines Corporation Optimization for rendering web pages
US10614249B2 (en) * 2015-07-01 2020-04-07 Allscripts Software, Llc Sanitization of content displayed by web-based applications
US11194885B1 (en) * 2015-07-07 2021-12-07 Google Llc Incremental document object model updating
US10387676B2 (en) 2015-09-14 2019-08-20 Viasat, Inc. Machine-driven crowd-disambiguation of data resources
US9578048B1 (en) * 2015-09-16 2017-02-21 RiskIQ Inc. Identifying phishing websites using DOM characteristics
WO2017049045A1 (en) * 2015-09-16 2017-03-23 RiskIQ, Inc. Using hash signatures of dom objects to identify website similarity
US10296580B1 (en) 2015-09-18 2019-05-21 Amazon Technologies, Inc. Delivering parsed content items
US10127210B1 (en) 2015-09-25 2018-11-13 Amazon Technologies, Inc. Content rendering
US10241983B1 (en) 2015-09-28 2019-03-26 Amazon Technologies, Inc. Vector-based encoding for content rendering
US10691750B1 (en) 2015-09-28 2020-06-23 Amazon Technologies, Inc. Browser configured to efficiently store browsing session state
US10601894B1 (en) 2015-09-28 2020-03-24 Amazon Technologies, Inc. Vector-based encoding for content rendering
CN108701130B (zh) 2015-10-20 2023-06-20 维尔塞特公司 使用自动浏览群集更新提示模型
KR101708236B1 (ko) * 2015-10-23 2017-02-20 전자부품연구원 로컬 처리 장치 및 그 데이터 송수신 방법
AU2016364922B2 (en) 2015-12-04 2019-10-10 Viasat, Inc. Accelerating connections to a host server
KR20170067260A (ko) * 2015-12-08 2017-06-16 삼성전자주식회사 웹 페이지 운용 방법 및 이를 지원하는 전자 장치
US10341345B1 (en) 2015-12-15 2019-07-02 Amazon Technologies, Inc. Network browser configuration
US10348797B1 (en) 2015-12-15 2019-07-09 Amazon Technologies, Inc. Network browser configuration
US9762521B2 (en) * 2016-01-15 2017-09-12 International Business Machines Corporation Semantic analysis and delivery of alternative content
US10558736B2 (en) * 2016-02-04 2020-02-11 Sap Se Metadata driven user interface layout control for web applications
WO2017189727A1 (en) 2016-04-26 2017-11-02 RiskIQ, Inc. Techniques for monitoring version numbers of web frameworks
US10447759B2 (en) * 2016-05-27 2019-10-15 Microsoft Technology Licensing, Llc Web page accelerations for web application hosted in native mobile application
US10565110B2 (en) * 2016-08-02 2020-02-18 Microsoft Technology Licensing, Llc Reducing memory usage for long standing computations
CN106598574B (zh) * 2016-11-25 2020-02-18 腾讯科技(深圳)有限公司 页面渲染的方法和装置
US10880396B2 (en) 2016-12-02 2020-12-29 Viasat, Inc. Pre-fetching random-value resource locators
US10282402B2 (en) 2017-01-06 2019-05-07 Justin Khoo System and method of proofing email content
US10452758B1 (en) * 2017-04-26 2019-10-22 Amazon Technologies, Inc. Optimizing online content rendering
US10462010B2 (en) * 2017-06-13 2019-10-29 Cisco Technology, Inc. Detecting and managing recurring patterns in device and service configuration data
CN107391128B (zh) * 2017-07-07 2020-07-28 北京小米移动软件有限公司 监控虚拟文件对象模型vdom的方法和装置
US11080251B1 (en) * 2017-10-23 2021-08-03 Comodo Security Solutions, Inc. Optimization of memory usage while creating hash table
WO2019144259A1 (en) * 2018-01-23 2019-08-01 Oracle International Corporation Transformation of resource files using mapped keys for tracking content location
US10986100B1 (en) * 2018-03-13 2021-04-20 Ca, Inc. Systems and methods for protecting website visitors
US11102316B1 (en) 2018-03-21 2021-08-24 Justin Khoo System and method for tracking interactions in an email
US10776269B2 (en) * 2018-07-24 2020-09-15 International Business Machines Corporation Two level compute memoing for large scale entity resolution
US11042426B2 (en) 2018-08-23 2021-06-22 International Business Machines Corporation Utilizing reusable AJAX requests
CN109471989A (zh) * 2018-11-01 2019-03-15 郑州云海信息技术有限公司 一种页面请求处理方法及相关装置
JP7206863B2 (ja) * 2018-12-03 2023-01-18 富士通株式会社 表示制御方法、装置、及びプログラム
CN111339455B (zh) * 2018-12-18 2024-02-23 阿里巴巴集团控股有限公司 浏览器应用加载页面首屏的方法和装置
CN109670133B (zh) * 2018-12-22 2021-04-02 网宿科技股份有限公司 一种页面的公共组件的确定方法、服务器及存储介质
US11138265B2 (en) * 2019-02-11 2021-10-05 Verizon Media Inc. Computerized system and method for display of modified machine-generated messages
CN111724293B (zh) 2019-03-22 2023-07-28 华为技术有限公司 图像渲染方法及装置、电子设备
EP3937372A4 (en) 2019-04-04 2022-03-23 Huawei Technologies Co., Ltd. OSCILLATOR AND DEVICE
CN110442808A (zh) * 2019-06-28 2019-11-12 苏宁云计算有限公司 页面渲染加速方法和装置
CN110688531B (zh) * 2019-08-26 2022-08-26 北京旷视科技有限公司 树组件渲染方法和装置、数据处理设备及介质
US11775362B2 (en) * 2019-10-22 2023-10-03 Vmware, Inc. Content provisioning to virtual machines
CN110955428A (zh) * 2019-11-27 2020-04-03 北京奇艺世纪科技有限公司 一种页面显示方法、装置、电子设备及介质
US10922476B1 (en) * 2019-12-13 2021-02-16 Microsoft Technology Licensing, Llc Resource-efficient generation of visual layout information associated with network-accessible documents
US11113322B2 (en) * 2020-01-07 2021-09-07 Bank Of America Corporation Dynamically generating strategic planning datasets based on collecting, aggregating, and filtering distributed data collections
CN111428167B (zh) * 2020-03-05 2023-09-08 亚美智联数据科技有限公司 一种页面显示方法和装置
CN113378084A (zh) * 2020-03-10 2021-09-10 阿里巴巴集团控股有限公司 页面展示方法和装置、电子设备以及计算机可读存储介质
CN111783015A (zh) * 2020-06-30 2020-10-16 掌阅科技股份有限公司 页面中共享显示元素的展示方法、电子设备及存储介质
CN112231088B (zh) * 2020-10-27 2023-10-27 Vidaa(荷兰)国际控股有限公司 一种浏览器进程优化方法及显示设备
CN112559922B (zh) * 2020-12-08 2022-11-22 歌尔科技有限公司 页面渲染方法、终端设备及存储介质
CN113420249A (zh) * 2021-06-30 2021-09-21 北京达佳互联信息技术有限公司 网页显示方法、装置、电子设备及存储介质
US20230019515A1 (en) * 2021-07-19 2023-01-19 Web Data Works Ltd. System and Method for Efficiently Identifying and Segmenting Product Webpages on an eCommerce Website
US20230045426A1 (en) * 2021-08-05 2023-02-09 Yaar Inc. Instruction interpretation for web task automation
US20230083822A1 (en) * 2021-09-16 2023-03-16 International Business Machines Corporation Optimized rendering of web pages
US20240039925A1 (en) * 2022-07-26 2024-02-01 Paypal, Inc. Page Integrity Assurance

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6377957B1 (en) * 1998-12-29 2002-04-23 Sun Microsystems, Inc. Propogating updates efficiently in hierarchically structured date
US6635089B1 (en) 1999-01-13 2003-10-21 International Business Machines Corporation Method for producing composite XML document object model trees using dynamic data retrievals
US6397217B1 (en) * 1999-03-04 2002-05-28 Futuretense, Inc. Hierarchical caching techniques for efficient dynamic page generation
US7100112B1 (en) 1999-05-20 2006-08-29 Microsoft Corporation Dynamic properties of documents and the use of these properties
US6606525B1 (en) 1999-12-27 2003-08-12 Motorola, Inc. System and method of merging static data in web pages
US7509404B2 (en) 2000-03-08 2009-03-24 Oracle International Corporation Methods and systems for partial page caching of dynamically generated content
US20040049737A1 (en) 2000-04-26 2004-03-11 Novarra, Inc. System and method for displaying information content with selective horizontal scrolling
US6826726B2 (en) 2000-08-18 2004-11-30 Vaultus Mobile Technologies, Inc. Remote document updating system using XML and DOM
US7028306B2 (en) 2000-12-04 2006-04-11 International Business Machines Corporation Systems and methods for implementing modular DOM (Document Object Model)-based multi-modal browsers
US20030189593A1 (en) 2001-01-05 2003-10-09 Yarvin Curtis G. Method and apparatus for dynamically updating a markup language based user interface
US7415538B2 (en) 2001-03-19 2008-08-19 International Business Machines Corporation Intelligent document filtering
US6948133B2 (en) 2001-03-23 2005-09-20 Siemens Medical Solutions Health Services Corporation System for dynamically configuring a user interface display
US7047318B1 (en) 2001-04-20 2006-05-16 Softface, Inc. Method and apparatus for creating and deploying web sites with dynamic content
US6971001B1 (en) 2001-05-17 2005-11-29 Accenture Global Services Gmbh General and reusable components for defining net-centric application program architectures
US6745208B2 (en) 2001-05-31 2004-06-01 International Business Machines Corporation Method and apparatus for synchronizing an XML document with its object model
US7594001B1 (en) 2001-07-06 2009-09-22 Microsoft Corporation Partial page output caching
US7120897B2 (en) 2001-07-10 2006-10-10 Microsoft Corporation User control objects for providing server-side code generation from a user-defined dynamic web page content file
US6976211B2 (en) 2001-07-23 2005-12-13 International Business Machines Corporation Method, system, and computer-program product for providing selective access to certain child nodes of a document object model (DOM)
US20030046365A1 (en) 2001-09-04 2003-03-06 Schlumberger Technology Corporation System and method for caching content
US8484282B2 (en) * 2002-03-21 2013-07-09 International Business Machines Corporation High-speed content transformation engine
EP1388783B1 (en) 2002-08-02 2008-02-06 Sap Ag Method and computer system for handling incremental data in client-server communication
EP1406183A3 (en) 2002-10-01 2004-04-14 Sap Ag Method and system for refreshing browser pages
GB0229892D0 (en) * 2002-12-21 2003-01-29 Ibm Method and apparatus for caching documents
US7386786B2 (en) 2003-01-24 2008-06-10 The Cobalt Group, Inc. Method and apparatus for processing a dynamic webpage
US20040168122A1 (en) * 2003-02-21 2004-08-26 Kobipalayam Murugaiyan Senthil Nathan System, method and computer readable medium for transferring and rendering a web page
US8037081B2 (en) * 2003-06-10 2011-10-11 International Business Machines Corporation Methods and systems for detecting fragments in electronic documents
JP2005215950A (ja) 2004-01-29 2005-08-11 Kddi Corp 符号化された文書データの検索方法及びそのプログラム
US7624160B2 (en) 2004-05-04 2009-11-24 International Business Machines Corporation Methods, systems, and computer program products for client side prefetching and caching of portlets
JP4389707B2 (ja) 2004-07-16 2009-12-24 ソニー株式会社 電子機器装置、サーバ装置、Webページ処理方法及びそのプログラム
US7418660B2 (en) 2004-09-23 2008-08-26 Microsoft Corporation Method and system for caching and adapting dynamic display pages for small display devices
US7584417B2 (en) 2004-11-15 2009-09-01 Microsoft Corporation Role-dependent action for an electronic form
EP1662405A1 (en) 2004-11-30 2006-05-31 Alcatel Method of displaying data on a client computer
US7328214B2 (en) 2004-12-21 2008-02-05 Arizan Corporation Method of delivering an electronic document to a remote electronic device
US20060259462A1 (en) * 2005-05-12 2006-11-16 Sybase, Inc. System and Methodology for Real-time Content Aggregation and Syndication
US7660950B2 (en) 2005-08-15 2010-02-09 Microsoft Corporation Output cache manager
US7814410B2 (en) 2005-09-12 2010-10-12 Workman Nydegger Initial server-side content rendering for client-script web pages
US7403951B2 (en) * 2005-10-07 2008-07-22 Nokia Corporation System and method for measuring SVG document similarity
US20070240041A1 (en) * 2006-04-05 2007-10-11 Larry Pearson Methods and apparatus for generating an aggregated cascading style sheet
US7870502B2 (en) 2007-05-29 2011-01-11 Microsoft Corporation Retaining style information when copying content
US20090037517A1 (en) 2007-08-02 2009-02-05 Randall Wayne Frei Method and system to share content between web clients
US7765236B2 (en) * 2007-08-31 2010-07-27 Microsoft Corporation Extracting data content items using template matching
US20100005053A1 (en) 2008-07-04 2010-01-07 Estes Philip F Method for enabling discrete back/forward actions within a dynamic web application
US8156419B2 (en) 2008-07-17 2012-04-10 International Business Machines Corporation Intelligent preloads of views and asynchronous loading of models using the MVC design pattern
US9311425B2 (en) 2009-03-31 2016-04-12 Qualcomm Incorporated Rendering a page using a previously stored DOM associated with a different page
US20110029899A1 (en) 2009-08-03 2011-02-03 FasterWeb, Ltd. Systems and Methods for Acceleration and Optimization of Web Pages Access by Changing the Order of Resource Loading
US10157236B2 (en) 2011-05-23 2018-12-18 Radware, Ltd. Optimized rendering of dynamic content

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7099955B2 (ja) 2015-11-13 2022-07-12 レゾナント インコーポレイテッド 改善された拒絶を有する弾性波フィルタ

Also Published As

Publication number Publication date
US20110258532A1 (en) 2011-10-20
EP2702511A1 (en) 2014-03-05
KR20140012747A (ko) 2014-02-03
WO2012148692A1 (en) 2012-11-01
CN103502983A (zh) 2014-01-08
JP2014519073A (ja) 2014-08-07
US9171097B2 (en) 2015-10-27
CN103502983B (zh) 2017-02-08
KR101578991B1 (ko) 2015-12-18

Similar Documents

Publication Publication Date Title
JP5863214B2 (ja) Domベースの同形によるウェブブラウジング計算の記憶
US9311425B2 (en) Rendering a page using a previously stored DOM associated with a different page
US20220318336A1 (en) Method and Terminal Device for Extracting Web Page Content
US8645491B2 (en) Methods and apparatus for enabling a hybrid web and native application
US9323724B2 (en) Webpage skin replacement method, apparatus, and mobile terminal
CN103605688B (zh) 一种网页广告的拦截方法、装置和浏览器
US10185704B2 (en) Webpage browsing method, webapp framework, method and device for executing javascript and mobile terminal
US10997360B2 (en) Page display method, device, and system, and page display assist method and device
WO2022033055A1 (zh) 页面渲染方法、装置、设备及计算机可读存储介质
US20160364373A1 (en) Method and apparatus for extracting webpage information
US9507480B1 (en) Interface optimization application
JP4170256B2 (ja) ハンドヘルド・コンピュータまたは携帯電話における表示のためにポータル・ビューをレンダリングする方法、ポータル・サーバ・システム、及びプログラム
WO2016168983A1 (en) Method and electronic device for displaying web page
WO2013178094A1 (zh) 页面显示方法及装置
US20140047359A1 (en) Mechanism for adding new search modes to user agent
CN105094786A (zh) 基于JavaScript定制页面的方法及系统
US20170111431A1 (en) Methods for transforming a server side template into a client side template and devices thereof
US20240346243A1 (en) Reader mode-optimized attention application
CN106575303B (zh) 显示网页的方法和设备
US11307897B2 (en) Resource pre-fetch using age threshold
CN108664511B (zh) 获取网页信息方法和装置
KR101325195B1 (ko) 검색 수행 시간 단축을 위한 장치, 방법 및 컴퓨터 판독 가능한 기록 매체
US8875009B1 (en) Analyzing links for NCX navigation
KR101372580B1 (ko) 브라우저 ui를 제공하기 위한 방법, 단말 장치, 서버 및 컴퓨터 판독 가능한 기록 매체

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150427

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150724

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: 20151130

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151221

R150 Certificate of patent or registration of utility model

Ref document number: 5863214

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees