(57)【特許請求の範囲】
【請求項１】
システムであって、
ウェブ・ページのロードを最適化するためのコンピュータ・プログラムを記憶するためのメモリ・ユニットと、
前記メモリ・ユニットに結合されたプロセッサを備え、前記プロセッサが、前記コンピュータ・プログラムに応答して、
ウェブ・ページの関心のあるウェブ・ページ要素の指示を複数のクライアント・デバイスから受信するための回路と、
前記受信された、前記ウェブ・ページの関心のあるウェブ・ページ要素の指示に基づいて、人気でソートされた前記ウェブ・ページのウェブ・ページ要素のリストを更新するための回路と、
前記ウェブ・ページを取り出す要求を受信するための回路と、
前記ウェブ・ページのウェブ・ページ要素の前記ソート済みリストにアクセスするための回路と、
前記ソート済みリストに基づく順序で、前記ウェブ・ページのウェブ・ページ要素の内容をポピュレートするためのデータを送信するための回路を備える、システム。
【請求項２】
前記ウェブ・ページの関心のあるウェブ・ページ要素の前記指示が、ドキュメント・オブジェクト・モデル（ＤＯＭ）要素として表明される、請求項１に記載のシステム。
【請求項３】
前記プロセッサがさらに、
前記ウェブ・ページの関心のある要素に対応するＤＯＭ要素を受信するのに応答して、前記ウェブ・ページの前記ＤＯＭ要素の内容をポピュレートするためのデータをクライアント・デバイスに送信し、前記ウェブ・ページの前記ＤＯＭ要素の子の内容をポピュレートするためのデータを前記クライアント・デバイスに送信するための回路を備える、請求項２に記載のシステム。
【請求項４】
前記プロセッサがさらに、
前記ウェブ・ページの残りの要素の内容をポピュレートするためのデータを前記クライアント・デバイスに非同期で送信するための回路を備える、請求項３に記載のシステム。
【請求項５】
前記ウェブ・ページの関心のあるウェブ・ページ要素の指示が、前記ウェブ・ページ上のエリアのユーザ選択に応答して識別される、請求項１に記載のシステム。
【請求項６】
前記ユーザ選択が、前記ウェブ・ページ上の前記関心のある要素の周りに輪郭を引くことを含む、請求項５に記載のシステム。
【請求項７】
前記複数のクライアント・デバイスのうちのクライアント・デバイスが、非同期でロードされ得る関心のあるウェブ・ページ要素およびそれらの子を定義するために、非同期モジュール定義（ＡＭＤ）アプリケーション・プログラミング・インタフェース（ＡＰＩ）を利用する、請求項１に記載のシステム。
【請求項８】
コンピュータの情報処理により、ウェブ・ページのロードを最適化する方法であって、
ウェブ・ページの関心のあるウェブ・ページ要素の指示を複数のクライアント・デバイスから受信するステップ、
前記受信された、前記ウェブ・ページの関心のあるウェブ・ページ要素の指示に基づいて、人気でソートされた前記ウェブ・ページのウェブ・ページ要素のリストを更新するステップ、
前記ウェブ・ページを取り出す要求を受信するステップ、
前記ウェブ・ページのウェブ・ページ要素の前記ソート済みリストにアクセスするステップ、および、
前記ソート済みリストに基づく順序で、前記ウェブ・ページのウェブ・ページ要素の内容をポピュレートするためのデータをプロセッサによって送信するステップを含む方法。
【請求項９】
前記ウェブ・ページの関心のあるウェブ・ページ要素の前記指示が、ドキュメント・オブジェクト・モデル（ＤＯＭ）要素として表明される、請求項８に記載の方法。
【請求項１０】
前記ウェブ・ページの関心のある要素に対応するＤＯＭ要素を受信するのに応答して、前記ウェブ・ページの前記ＤＯＭ要素の内容をポピュレートするためのデータをクライアント・デバイスに送信し、前記ウェブ・ページの前記ＤＯＭ要素の子の内容をポピュレートするためのデータを前記クライアント・デバイスに送信するステップをさらに含む、請求項９に記載の方法。
【請求項１１】
前記ウェブ・ページの残りの要素の内容をポピュレートするためのデータを前記クライアント・デバイスに非同期で送信するステップをさらに含む、請求項１０に記載の方法。
【請求項１２】
前記ウェブ・ページの関心のあるウェブ・ページ要素の指示が、前記ウェブ・ページ上のエリアのユーザ選択に応答して識別される、請求項８に記載の方法。
【請求項１３】
前記ユーザ選択が、前記ウェブ・ページ上の前記関心のある要素の周りに輪郭を引くステップを含む、請求項１２に記載の方法。
【請求項１４】
前記複数のクライアント・デバイスのうちのクライアント・デバイスが、非同期でロードされ得る関心のあるウェブ・ページ要素およびそれらの子を定義するために、非同期モジュール定義（ＡＭＤ）アプリケーション・プログラミング・インタフェース（ＡＰＩ）を利用する、請求項８に記載の方法。
【請求項１５】
請求項８〜１４の何れか1項に記載の方法の各ステップをコンピュータに実行させる、コンピュータ・プログラム。
【請求項１６】
請求項１５に記載の前記コンピュータ・プログラムをコンピュータ可読ストレージ媒体に記録した、コンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にウェブ・ページに関し、より詳細には、ウェブ・ページのウェブ・ページ要素に対する集約されたユーザ選好に基づいてウェブ・ページのロードを最適化することに関する。
【背景技術】
【０００２】
ウェブ・ページは、ワールド・ワイド・ウェブに適したウェブ文書または他のウェブ・リソースであり、ウェブ・ブラウザを介してアクセスすることができ、ユーザのコンピューティング・デバイス・ディスプレイ上に表示することができる。ウェブ・ページは、「ウェブ・サーバ」と一般に呼ばれるリモート・サーバから、ウェブ・ブラウザによって取り出すことができる。取り出されたウェブ・ページは、ハイパーテキスト・マークアップ言語（ＨＴＭＬ）文書の形であることがあり、これは、ブラウザによって読み取られて、「ドキュメント・オブジェクト・モデル」ツリー構造などに解析される。次いでブラウザは、ウェブ・ページの要素（例えば画像）を、これらの要素がＨＴＭＬ文書中で現れる順序などに基づいて、ウェブ・サーバからロードする。結果として、ユーザは、ウェブ・ページ中でユーザの関心のある情報を見ることができるようになる前に、ウェブ・ページ全体がロードされるのを待機しなければならないことがある。例えば、ユーザが地元ニュース・テレビ局のウェブサイトにアクセスするとき、ユーザは、天気および地元ニュースに関する情報を閲覧することにのみ関心がある場合がある。しかし、これらの要素が最後にロードされる場合、ユーザは、天気および地元ニュースに関する情報を閲覧できるようになる前に、ウェブ・ページ全体がロードされるのを待機しなければならないことがある。
【０００３】
このような問題は、モバイル・コンピューティング・デバイスによって悪化する。モバイル・コンピューティング・デバイスは、処理速度がより遅くメモリがより少なく、そのため、ウェブ・ページをウェブ・サーバからダウンロードするのにより長い時間がかかり、ユーザが関心のある情報を閲覧するために待機しなければならないであろう時間の長さが増加する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
結果的に、ウェブ・ページをロードするための現在の手段は、関心のある情報を閲覧する前にウェブ・ページ全体がロードされるのをユーザに待機させる場合があり、これは、接続速度に応じてかなりの時間量である可能性がある。従って本発明が解決しようとする課題はウェブ・ページのウェブ・ページ要素に対する集約されたユーザ選好に基づく、ウェブ・ページのロードの最適化方法を提供することである。
【課題を解決するための手段】
【０００５】
本発明の一実施形態では、ウェブ・ページのロードを最適化する方法は、ウェブ・ページの関心のあるウェブ・ページ要素の指示を複数のクライアント・デバイスから受信することを含む。この方法はさらに、受信された、ウェブ・ページの関心のあるウェブ・ページ要素の指示に基づいて、人気でソートされた、ウェブ・ページのウェブ・ページ要素のリストを更新することを含む。加えて、この方法は、ウェブ・ページを取り出す要求を受信することを含む。さらに、この方法は、ウェブ・ページのウェブ・ページ要素のソート済みリストにアクセスすることを含む。加えて、この方法は、ソート済みリストに基づく順序で、ウェブ・ページのウェブ・ページ要素の内容をポピュレートするためのデータをプロセッサによって送信することを含む。
【０００６】
前述の方法の実施形態の他の形は、システムおよびコンピュータ・プログラム製品にある。
【０００７】
上記では、後続の本発明についての詳細な記述をよりよく理解できるように、本発明の１つまたは複数の実施形態の特徴および技術的利点を、いくぶん一般的に概説した。本発明の特許請求の範囲の主題を形成できる本発明の追加の特徴および利点については、後述する。
【０００８】
後続の詳細な記述が以下の図面と共に考察されたとき、本発明のよりよい理解を得ることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態により構成されたネットワーク・システムを示す図である。
【図２】本発明の一実施形態による、クライアント・デバイスのハードウェア構成を示す図である。
【図３】本発明の一実施形態による、サーバのハードウェア構成を示す図である。
【図４】本発明の一実施形態による、ウェブ・ページのロードを最適化する方法のフローチャートである。
【図５】本発明の一実施形態による、ユーザがウェブ・ページ上の要素に対する関心を以前に表明した場合に、そのウェブ・ページを取り出す方法のフローチャートである。
【図６】本発明の一実施形態による、ウェブ・ページを取り出す要求と共に、関心のある要素を同時にユーザが表明するときに、ウェブ・ページを取り出す方法のフローチャートである。
【図７】本発明の一実施形態による、要求されるウェブ・ページについての関心のある要素をユーザが表明しないときに、ウェブ・ページを取り出す方法のフローチャートである。
【発明を実施するための形態】
【００１０】
本発明は、ウェブ・ページのロードを最適化するための方法、システム、およびコンピュータ・プログラム製品を含む。本発明の一実施形態では、サーバが、ウェブ・ページの関心のあるウェブ・ページ要素の指示（例えばドキュメント・オブジェクト・モデル（ＤＯＭ）要素）を、複数のクライアント・デバイスから受信する。サーバは、受信したこれらの関心のあるウェブ・ページ要素の指示に基づいて、人気でソートされた、要求されたウェブ・ページについてのウェブ・ページ要素のリストを更新する。ウェブ・ページについての最も多く要求されたウェブ・ページ要素を反映するリストを確立すると、サーバは、このようなリストにアクセスして、要求されたウェブ・ページについてのウェブ・ページ要素の内容をポピュレートするためのデータをソート済みリストに基づく順序で要求元クライアント・デバイスのブラウザに送信することによって、ウェブ・ページを取り出す要求に適切に応答することができる。このようにして、サーバは、要求されたウェブ・ページのより関心の低い要素よりも先に、より関心の高い要素の内容をポピュレートするためのデータを、要求元クライアント・デバイスのブラウザに送信でき、それにより、ウェブ・ページのロードを最適化する（すなわち、要求されたウェブ・ページ中の関心のある要素をユーザが閲覧するための待機時間をおそらく短縮する）ことができる。
【００１１】
後続の記述では、本発明の完全な理解を提供するために、多くの具体的詳細を示す。しかし、そのような具体的詳細がなくても本発明を実践できることは、当業者には明らかであろう。他の場合では、本発明を不必要に詳細に示して曖昧にしないために、周知の回路はブロック図の形で示してある。大部分では、タイミング考慮事項などを考察した詳細は省略してある。というのは、そのような詳細は、本発明の完全な理解を得るのに必要ではなく、当業者のスキル内にあるからである。
【００１２】
次に図を詳細に参照するが、図１に、本発明の一実施形態による、本発明の原理を実践するためのネットワーク・システム１００を示す。ネットワーク・システム１００は、ネットワーク１０３を介してサーバ１０２に接続されるクライアント・デバイス１０１Ａ〜１０１Ｃ（図１では「クライアント・デバイスＡ」、「クライアント・デバイスＢ」、および「クライアント・デバイスＣ」としてそれぞれ識別される）を含む。クライアント・デバイス１０１Ａ〜１０１Ｃは、集合的にまたは個別に、クライアント・デバイス（複数）１０１またはクライアント・デバイス（単数）１０１とそれぞれ呼ばれる場合がある。クライアント・デバイス１０１は、ネットワーク１０３に接続できる能力、したがって他のクライアント・デバイス１０１およびサーバ１０２と通信できる能力を備えて構成された、任意のタイプのコンピューティング・デバイス（例えば、ポータブル・コンピューティング・ユニット、パーソナル・ディジタル・アシスタント（ＰＤＡ）、スマートフォン、ラップトップ・コンピュータ、モバイル・フォン、ナビゲーション・デバイス、ゲーム・コンソール、デスクトップ・コンピュータ・システム、ワークステーション、インターネット・アプライアンスなど）であってよい。クライアント・デバイス１０１のハードウェア構成についての説明は、以下で図２に関して提供する。
【００１３】
一実施形態では、サーバ１０２は、ウェブサイトをホストするように構成されたウェブ・サーバであってよい。一実施形態では、サーバ１０２は、本明細書でさらに論じるように、ウェブ・ページの要素の内容をポピュレートするためのデータを、ウェブ・ページの要素の相対的な優先順位に基づく特定の順序で、クライアント・デバイス１０１のブラウザに送信するように構成される。サーバ１０２のハードウェア構成についての説明は、以下で図３に関して提供する。
【００１４】
ネットワーク１０３は、例えば、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、ワイヤレス・ワイド・エリア・ネットワーク、回路交換電話網、グローバル・システム・フォー・モバイル・コミュニケーション（ＧＭＳ）ネットワーク、ワイヤレス・アプリケーション・プロトコル（ＷＡＰ）ネットワーク、ＷｉＦｉネットワーク、ＩＥＥＥ８０２．１１標準ネットワーク、これらの様々な組合せなどであってよい。話を簡単にするために他のネットワークについての説明はここでは省略するが、本発明の範囲を逸脱することなく、他のネットワークが図１のシステム１００と共に使用されてもよい。
【００１５】
図１には３つのクライアント１０１Ａ〜１０１Ｃおよび単一のサーバ１０２を示すが、ネットワーク・システム１００は、任意の数のクライアント１０１およびサーバ１０２を含んでよい。ネットワーク・システム１００の実施形態の範囲は、図１の記述に限定されるべきではない。
【００１６】
次に図２を参照するが、図２には、本発明を実践するためのハードウェア環境を表すクライアント１０１（図１）のハードウェア構成を示す。図２を参照すると、クライアント１０１は、システム・バス２０２によって様々な他のコンポーネントに結合されたプロセッサ２０１を有する。オペレーティング・システム２０３が、プロセッサ２０１上で稼働し、図２の様々なコンポーネントの制御を提供するとともにこれらのコンポーネントの機能を協調させる。本発明の原理によるアプリケーション２０４が、オペレーティング・システム２０３と共に稼働し、オペレーティング・システム２０３に呼出しを提供するが、これらの呼出しは、アプリケーション２０４によって実施される様々な機能またはサービスを実現する。アプリケーション２０４は、例えばウェブ・ブラウザを含み得る。
【００１７】
再び図２を参照すると、読取専用メモリ（「ＲＯＭ」）２０５がシステム・バス２０２に結合され、このＲＯＭ２０５は、クライアント１０１のいくつかの基本的な機能を制御する基本入出力システム（「ＢＩＯＳ」）を含む。ランダム・アクセス・メモリ（ＲＡＭ）２０６およびディスク・アダプタ２０７もまた、システム・バス２０２に結合される。オペレーティング・システム２０３およびアプリケーション２０４を含むソフトウェア・コンポーネントは、クライアント１０１の実行用メイン・メモリとすることのできるＲＡＭ２０６にロードされ得ることに留意されたい。ディスク・アダプタ２０７は、ディスク・ユニット２０８（例えばディスク・ドライブ）と通信するインテグレーテッド・ドライブ・エレクトロニクス（「ＩＤＥ」）アダプタであってよい。
【００１８】
クライアント１０１はさらに、バス２０２に結合された通信アダプタ２０９を備えてよい。通信アダプタ２０９は、バス２０２を外部ネットワーク（例えば、図１のネットワーク１０３）と相互接続し、それによりクライアント１０１が他のクライアント１０１およびサーバ１０２と通信できるようにする。
【００１９】
Ｉ／Ｏデバイスもまた、ユーザ・インタフェース・アダプタ２１０およびディスプレイ・アダプタ２１１を介してクライアント１０１に接続され得る。キーボード２１２、マウス２１３、およびスピーカ２１４は全て、ユーザ・インタフェース・アダプタ２１０を介してバス２０２に相互接続され得る。ディスプレイ・モニタ２１５が、ディスプレイ・アダプタ２１１によってシステム・バス２０２に接続され得る。このようにして、ユーザは、キーボード２１２またはマウス２１３を介してクライアント１０１に入力することができ、ディスプレイ２１５またはスピーカ２１４を介してクライアント１０１からの出力を受信することができる。
【００２０】
次に図３を参照するが、図３には、本発明を実践するためのハードウェア環境を表すサーバ１０２（図１）のハードウェア構成を示す。サーバ１０２は、システム・バス３０２によって様々な他のコンポーネントに結合されたプロセッサ３０１を有する。オペレーティング・システム３０３が、プロセッサ３０１上で稼働し、図３の様々なコンポーネントの制御を提供するとともにこれらのコンポーネントの機能を協調させる。本発明の原理によるアプリケーション３０４が、オペレーティング・システム３０３と共に稼働し、オペレーティング・システム３０３に呼出しを提供するが、これらの呼出しは、アプリケーション３０４によって実施される様々な機能またはサービスを実現する。アプリケーション３０４は、例えば、以下で図４〜７に関連してさらに論じられるようにウェブ・ページのロードを最適化するためのプログラムを含み得る。
【００２１】
再び図３を参照すると、読取専用メモリ（「ＲＯＭ」）３０５がシステム・バス３０２に結合され、このＲＯＭ３０５は、サーバ１０２のいくつかの基本的な機能を制御する基本入出力システム（「ＢＩＯＳ」）を含む。ランダム・アクセス・メモリ（「ＲＡＭ」）３０６およびディスク・アダプタ３０７もまた、システム・バス３０２に結合される。オペレーティング・システム３０３およびアプリケーション３０４を含むソフトウェア・コンポーネントは、サーバ１０２の実行用メイン・メモリとすることのできるＲＡＭ３０６にロードされ得ることに留意されたい。ディスク・アダプタ３０７は、ディスク・ユニット３０８（例えばディスク・ドライブ）と通信するインテグレーテッド・ドライブ・エレクトロニクス（「ＩＤＥ」）アダプタであってよい。以下で図４〜７に関連してさらに論じるようにウェブ・ページのロードを最適化するためのプログラムは、ディスク・ユニット３０８中またはアプリケーション３０４中にある場合があることに留意されたい。
【００２２】
サーバ１０２はさらに、バス３０２に結合された通信アダプタ３０９を備えてよい。通信アダプタ３０９は、バス３０２を外部ネットワーク（例えば、図１のネットワーク１０３）と相互接続し、それによりサーバ１０２がクライアント１０１（図１）と通信できるようにする。
【００２３】
当業者には理解されるであろうが、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具体化することができる。したがって、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、または、ソフトウェアとハードウェアの態様を組み合わせた実施形態の形をとることができ、本明細書ではこれらは全て「回路」、「モジュール」、または「システム」と一般に呼ばれる場合がある。さらに、本発明の態様は、コンピュータ可読プログラム・コードが組み入れられた１つまたは複数のコンピュータ可読媒体において具体化されるコンピュータ・プログラム製品の形をとることもできる。
【００２４】
１つまたは複数のコンピュータ可読媒体の任意の組合せを利用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体であってよい。コンピュータ可読記憶媒体は、例えば、以下のものに限定されないが、電子、磁気、光学、電磁、赤外線、もしくは半導体の、システム、装置、もしくはデバイス、またはこれらの任意の適切な組合せであってよい。コンピュータ可読記憶媒体のより具体的な例（非網羅的なリスト）は、１つまたは複数のワイヤを有する電気接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、消去可能プログラム可能な読取専用メモリ（ＥＰＲＯＭもしくはフラッシュ・メモリ）、ポータブル・コンパクト・ディスク読取専用メモリ（ＣＤ−ＲＯＭ）、光学記憶デバイス、磁気記憶デバイス、またはこれらの任意の適切な組合せを含むことになる。この文書のコンテキストでは、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスによって使用されるプログラムまたはそれらに関連して使用されるプログラムを格納または記憶できる、任意の有形媒体とすることができる。
【００２５】
コンピュータ可読信号媒体は、例えばベースバンド中でまたは搬送波の一部として、コンピュータ可読プログラム・コードが組み入れられた、伝搬データ信号を含み得る。このような伝搬信号は、以下のものに限定されないが電磁、光学、またはこれらの任意の適切な組合せを含めた、多様な形のうちのいずれかをとることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではない任意のコンピュータ可読媒体であって、命令実行システム、装置、またはデバイスによって使用されるプログラムまたはそれらに関連して使用されるプログラムを通信、伝搬、または搬送できる任意のコンピュータ可読媒体であってよい。
【００２６】
コンピュータ可読媒体上に組み入れられたプログラム・コードは、以下のものに限定されないがワイヤレス、ワイヤ線、光ファイバ・ケーブル、ＲＦなど、またはこれらの任意の適切な組合せを含めた、任意の適切な媒体を使用して送信され得る。
【００２７】
本発明の態様に関する動作を実施するためのコンピュータ・プログラム・コードは、Ｊａｖａ、Ｓｍａｌｌｔａｌ（Ｒ）ｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、および、Ｃプログラミング言語または類似のプログラミング言語などの従来の手続き型プログラミング言語を含めた、１つまたは複数のプログラミング言語の任意の組合せで書かれてよい。プログラム・コードは、完全にユーザのコンピュータ上で実行されるか、スタンドアロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で実行されるか、部分的にユーザのコンピュータ上で実行され部分的にリモート・コンピュータ上で実行されるか、または完全にリモート・コンピュータもしくはサーバ上で実行される場合がある。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を含めた任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または、接続は、外部コンピュータに対して（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）行われてもよい。
【００２８】
本発明の態様を、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート説明またはブロック図あるいはその両方に関して以下に述べる。フローチャート説明またはブロック図あるいはその両方の各ブロック、および、フローチャート説明またはブロック図あるいはその両方の中のブロックの組合せを、コンピュータ・プログラム命令によって実現できることは理解されるであろう。コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロック中で指定される機能／行為を実現する手段をもたらすように、これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供して、マシンを生み出すことができる。
【００２９】
また、コンピュータ可読媒体に記憶された命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロック中で指定される機能／行為を実現する命令を含む製造品を生み出すように、これらのコンピュータ・プログラム命令は、コンピュータ可読媒体に記憶され、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスに、特定の方式で機能するよう指示することができる。
【００３０】
また、コンピュータまたは他のプログラム可能装置上で実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロック中で指定される機能／行為を実現するためのプロセスを提供するように、コンピュータ実装プロセスを生み出すべく、コンピュータ・プログラム命令は、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実施させることができる。
【００３１】
背景技術のセクションで述べたように、ウェブ・ページは、ワールド・ワイド・ウェブに適したウェブ文書または他のウェブ・リソースであり、ウェブ・ブラウザを介してアクセスすることができ、ユーザのコンピューティング・デバイス・ディスプレイ上に表示することができる。ウェブ・ページは、「ウェブ・サーバ」と一般に呼ばれるリモート・サーバから、ウェブ・ブラウザによって取り出すことができる。取り出されたウェブ・ページは、ハイパーテキスト・マークアップ言語（ＨＴＭＬ）文書の形であることがあり、これは、ブラウザによって読み取られて、「ドキュメント・オブジェクト・モデル」ツリー構造などに解析される。次いでブラウザは、ウェブ・ページの要素（例えば画像）を、これらの要素がＨＴＭＬ文書中で現れる順序などに基づいて、ウェブ・サーバからロードする。結果として、ユーザは、ウェブ・ページ中でユーザの関心のある情報を見ることができるようになる前に、ウェブ・ページ全体がロードされるのを待機しなければならないことがある。例えば、ユーザが地元ニュース・テレビ局のウェブサイトにアクセスするとき、ユーザは、天気および地元ニュースに関する情報を閲覧することにのみ関心がある場合がある。しかし、これらの要素が最後にロードされる場合、ユーザは、天気および地元ニュースに関する情報を閲覧できるようになる前に、ウェブ・ページ全体がロードされるのを待機しなければならないことがある。このような問題は、モバイル・コンピューティング・デバイスによって悪化する。モバイル・コンピューティング・デバイスは、処理速度がより遅くメモリがより少なく、そのため、ウェブ・ページをウェブ・サーバからダウンロードするのにより長い時間がかかり、ユーザが関心のある情報を閲覧するために待機しなければならないであろう時間の長さが増加する。結果的に、ウェブ・ページをロードするための現在の手段は、関心のある情報を閲覧する前にウェブ・ページ全体がロードされるのをユーザに待機させる場合があり、これは、接続速度に応じてかなりの時間量である可能性がある。
【００３２】
本発明の原理は、図４〜７に関して以下でさらに論じるように、ウェブ・ページの要素の相対的な優先順位に基づいてウェブ・ページの要素をロードして、それにより、関心のある要素を関心のない要素よりも先にロードする手段を提供する。図４は、ウェブ・ページのロードを最適化する方法のフローチャートである。図５は、ユーザがウェブ・ページ上の要素に対する関心を以前に表明した場合に、そのウェブ・ページを取り出す方法のフローチャートである。図６は、ウェブ・ページを取り出す要求と共に、関心のある要素を同時にユーザが表明するときに、ウェブ・ページを取り出す方法のフローチャートである。図７は、要求されるウェブ・ページについての関心のある要素をユーザが表明しないときに、ウェブ・ページを取り出す方法のフローチャートである。
【００３３】
前述のように、図４は、本発明の一実施形態による、ウェブ・ページのロードを最適化する方法４００のフローチャートである。
【００３４】
図１〜３と共に図４を参照すると、ステップ４０１で、サーバ１０２が、ウェブ・ページを取り出す要求をクライアント・デバイス１０１から受信する。例えば、クライアント・デバイス１０１は最初に、ウェブ・ページをサーバ１０２から取り出す要求を、クライアント・デバイス１０１のユーザから受信することができる。例えば、ユーザは、サーバ１０２から取り出されるべきウェブ・ページに対応するユニフォーム・リソース識別子（ＵＲＬ）を、ブラウザ中でタイプ入力することができる。次いでクライアント・デバイス１０１は、要求されたウェブ・ページを取り出すためにこの要求をサーバ１０２に送ることができる。
【００３５】
ステップ４０２で、サーバ１０２は、要求されたウェブ・ページの要素の内容をポピュレートするためのデータを、要求元クライアント・デバイス１０１に非同期で送信し始める。次いで、クライアント・デバイス１０１のブラウザは、これらの要素がサーバ１０２から受信されるのに伴って、これらの要素をディスプレイ２１５上に表示し始める。
【００３６】
ステップ４０３で、クライアント・デバイス１０１のブラウザは、ディスプレイ２１５上に表示された要求されたウェブ・ページ上の特定の要素に対する関心についてのフィードバックを、クライアント１０１のユーザから受信する。例えば、ユーザは、ウェブ・ページ上のエリアを選択することによって、要求したウェブ・ページ中の関心のある要素を示すことができる。例えば、ユーザは、ウェブ・ページ上の関心のある要素の周りに輪郭を引くことができる。
【００３７】
ステップ４０４で、クライアント・デバイス１０１のブラウザは、要求されたウェブ・ページのＤＯＭツリー構造の、ウェブ・ページ上のユーザの関心のある要素に対応するドキュメント・オブジェクト・モデル（ＤＯＭ）要素を識別する。すなわち、ブラウザは、ステップ４０３でユーザによって表明されたウェブ・ページ上の関心のある要素に対応するＤＯＭ要素を識別する。
【００３８】
ステップ４０５で、クライアント・デバイス１０１のブラウザは、以下で図５に関してさらに論じるように、後で取り出すためにＤＯＭ要素を記憶する（例えば、メモリ２０６中のキャッシュなど、ローカル・キャッシュにＤＯＭ要素をキャッシュする）。
【００３９】
ステップ４０６で、クライアント・デバイス１０１のブラウザは、ウェブ・ページ上のユーザの関心のある要素に対応する指示（例えばＤＯＭ要素）を、サーバ１０２に送信する。一実施形態では、クライアント・デバイス１０１は、以下で論じるように非同期でロードされ得る関心のあるウェブ・ページ要素およびそれらの子を定義するために、非同期モジュール定義（ＡＭＤ、Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｍｏｄｕｌｅ  Ｄｅｆｉｎｉｔｉｏｎ）アプリケーション・プログラミング・インタフェース（ＡＰＩ）を利用してサーバ１０２と通信する。
【００４０】
ステップ４０７で、サーバ１０２は、ウェブ・ページ上のユーザの関心のある要素に対応する指示（例えばＤＯＭ要素）を受信する。
【００４１】
ステップ４０８で、サーバ１０２は、クライアント・デバイス１０１に、受信したＤＯＭ要素の内容をポピュレートするためのデータ（例えば、ＹｏｕＴｕｂｅ（Ｒ）ビデオなどの動的データ）を送信し、また、受信したＤＯＭ要素の子の内容をポピュレートするためのデータも送信する。
【００４２】
ステップ４０９で、サーバ１０２は、ウェブ・ページの残りの要素の内容をポピュレートするためのデータを、要求元クライアント・デバイス１０１に非同期で送信する。すなわち、サーバ１０２は、要求されたウェブ・ページについて、ＤＯＭツリー構造の残りのＤＯＭ要素（およびそれらの子）の内容をポピュレートするためのデータを、要求元クライアント・デバイス１０１に非同期で送信する。
【００４３】
ステップ４１０で、サーバ１０２は、このユーザからの、受信した関心のあるウェブ・ページ要素の指示（例えばＤＯＭ要素）（ステップ４０７で受信した指示）、ならびに、以下でさらに論じるように他のユーザから受信した指示に基づいて、人気でソートされた、要求されたウェブ・ページについてのウェブ・ページ要素のリストを更新する。すなわち、サーバ１０２は、ウェブ・ページ上の要素ごとの受信したいくつかのＤＯＭ要素（ウェブ・ページ上のユーザの関心のある要素に対応する）に基づいてソートされた、要求されたウェブ・ページについてのウェブ・ページ要素のリストを更新する。一実施形態では、このようなリストは、データ記憶ユニット（例えば、メモリ３０６、ディスク・ユニット３０８）に記憶される。このようにして、サーバ１０２は、このウェブ・ページについての最も多く要求されたウェブ・ページ要素の記録を維持する。このような記録は、以下でステップ４１１に関して論じるように、他のユーザからの応答に基づいて動的に更新することができる。この結果、サーバ１０２は、以下で図７に関してさらに論じるように、ウェブ・ページの要素の相対的な優先順位に基づいて、要求されたウェブ・ページの要素の内容をポピュレートするためのデータをクライアント・デバイス１０１のブラウザに送信できることになる。
【００４４】
上記のプロセス（ステップ４０１〜４１０）は、サーバ１０２がウェブ・ページ上の関心のある要素に関する追加のフィードバックを他のユーザから得るために、繰り返すことができる。ウェブ・ページ上の関心のある要素に関する追加のフィードバックを他のユーザから得ることによって、サーバ１０２は、マップの形とすることのできるリストを作り出せることになり、このリストは、ウェブ・ページ上の様々な要素に対するユーザの表明された関心に基づいて、ウェブ・ページ中の関心のある要素をソートまたは識別する。このようにして、サーバ１０２は、ブラウザによってロードされる要求されたウェブ・ページのより関心の低い要素よりも先に、より関心の高い要素の内容をポピュレートするためのデータを、クライアント・デバイス１０１のブラウザに送信できることになり、それにより、ウェブ・ページのロードを最適化する（すなわち、要求されたウェブ・ページ中の関心のある要素をユーザが閲覧するための待機時間をおそらく短縮する）ことができることになる。
【００４５】
ステップ４１１を参照すると、ウェブ・ページを求める要求がそれ以上あるかどうかがサーバ１０２によって判定される。ウェブ・ページを求める別の要求がある場合は、サーバ１０２は、ステップ４０１で、ウェブ・ページを取り出す要求をクライアント・デバイス１０１から受信する。
【００４６】
しかし、ウェブ・ページを求める要求をサーバ１０２が受信しない場合は、サーバ１０２は、ステップ４１１で、ウェブ・ページを求める追加の要求があるかどうか監視し続ける。
【００４７】
いくつかの実装形態では、方法４００は、他のステップまたは追加のステップあるいはその両方を含むことがあるが、話を明確にするためにそれらのステップは描かれていない。さらに、いくつかの実装形態では、方法４００は、提示される順序とは異なる順序で実行されることもあり、図４の考察で提示される順序は例示的なものである。加えて、いくつかの実装形態では、方法４００中のいくつかのステップは、実質的に同時方式で実行されることもあり、または省略されることもある。
【００４８】
上で論じたように、方法４００に関して、クライアント・デバイス１０１のブラウザは、ウェブ・ページ上のユーザの関心のある要素に対応するＤＯＭツリー構造のＤＯＭ要素を識別するのに応答して、後で取り出すためにＤＯＭ要素を記憶することができる（例えば、メモリ２０６中のキャッシュなど、ローカル・キャッシュにＤＯＭ要素をキャッシュする）。図５に関して以下で論じるように、将来のブラウジングの過程で、ユーザは、ユーザがすでにウェブ・ページ上の要素に対する関心を表明したウェブ・ページと同じウェブ・ページに戻ることがあり得る。
【００４９】
図５は、本発明の一実施形態による、ユーザがウェブ・ページ上の要素に対する関心を以前に表明した場合に、そのウェブ・ページを取り出す方法５００のフローチャートである。
【００５０】
図１〜３と共に図５を参照すると、ステップ５０１で、クライアント・デバイス１０１のブラウザが、以前にユーザが選好を表明したウェブ・ページを取り出す要求を受信する。すなわち、クライアント・デバイス１０１のブラウザは、ユーザがウェブ・ページ上の要素に対する関心を以前に表明した場合に、そのウェブ・ページを取り出す要求を受信する。
【００５１】
ステップ５０２で、クライアント・デバイス１０１のブラウザは、ユーザが以前に関心を表明したウェブ・ページ中の要素に対応する記憶済みＤＯＭ要素を取り出す。上で論じたように、クライアント・デバイス１０１のブラウザは、方法４００（図４）のステップ４０５で、ウェブ・ページ上のユーザの関心のある要素に対応するＤＯＭツリー構造のＤＯＭ要素を識別するのに応答して、後で取り出すためにＤＯＭ要素を記憶する（例えば、メモリ２０６中のキャッシュなど、ローカル・キャッシュ中にＤＯＭ要素をキャッシュする）。
【００５２】
ステップ５０３で、クライアント・デバイス１０１のブラウザは、ユーザが以前に関心を表明したウェブ・ページ中の要素に対応する記憶済みＤＯＭ要素と共に、ウェブ・ページを取り出す要求をサーバ１０２に送信する。
【００５３】
ステップ５０４で、サーバ１０２は、クライアント・デバイス１０１に、受信したＤＯＭ要素の内容をポピュレートするためのデータ（例えば、ＹｏｕＴｕｂｅ（Ｒ）ビデオなどの動的データ）を送信し、また、受信したＤＯＭ要素の子の内容をポピュレートするためのデータも送信する。
【００５４】
ステップ５０５で、サーバ１０２は、要求されたウェブ・ページの残りの要素の内容をポピュレートするためのデータを、要求元クライアント・デバイス１０１に非同期で送信する。すなわち、サーバ１０２は、要求されたウェブ・ページについて、ＤＯＭツリー構造の残りのＤＯＭ要素（およびそれらの子）の内容をポピュレートするためのデータを、要求元クライアント・デバイス１０１に非同期で送信する。
【００５５】
いくつかの実装形態では、方法５００は、他のステップまたは追加のステップあるいはその両方を含むことがあるが、話を明確にするためにそれらのステップは描かれていない。さらに、いくつかの実装形態では、方法５００は、提示される順序とは異なる順序で実行されることもあり、図５の考察で提示される順序は例示的なものである。加えて、いくつかの実装形態では、方法５００中のいくつかのステップは、実質的に同時方式で実行されることもあり、または省略されることもある。
【００５６】
図４に関して前に論じたように、ユーザは、要求したウェブ・ページ中の関心のある要素がクライアント・デバイス１０１のディスプレイ２１５上に表示された後で、関心のある要素に関するフィードバックを提供することができる。しかし、図６に関して以下で論じるように、ユーザはまた、ウェブ・ページを取り出す要求と共に、関心のある要素を同時に表明することもできる。
【００５７】
図６は、本発明の一実施形態による、ウェブ・ページを取り出す要求と共に、関心のある要素を同時にユーザが表明するときに、ウェブ・ページを取り出す方法６００のフローチャートである。
【００５８】
図１〜３と共に図６を参照すると、ステップ６０１で、クライアント・デバイス１０１のブラウザが、ＤＯＭ要素に対する関心を示すユーザからの指示と共に、ウェブ・ページを取り出す要求を受信する。
【００５９】
ステップ６０２で、クライアント・デバイス１０１のブラウザは、ユーザによって指定された関心のあるＤＯＭ要素と共に、ウェブ・ページを取り出す要求をサーバ１０２に送信する。
【００６０】
ステップ６０３で、サーバ１０２は、クライアント・デバイス１０１に、関心のあるＤＯＭ要素の内容をポピュレートするためのデータを送信し、また、関心のあるＤＯＭ要素の子の内容をポピュレートするためのデータも送信する。
【００６１】
ステップ６０４で、サーバ１０２は、要求されたウェブ・ページの残りの要素の内容をポピュレートするためのデータを、要求元クライアント・デバイス１０１に非同期で送信する。すなわち、サーバ１０２は、要求されたウェブ・ページについて、ＤＯＭツリー構造の残りのＤＯＭ要素（およびそれらの子）の内容をポピュレートするためのデータを、要求元クライアント・デバイス１０１に非同期で送信する。
【００６２】
ステップ６０５で、サーバ１０２は、ウェブ・ページ上のユーザの関心のある要素に対応する受信したＤＯＭ要素に基づいて、人気でソートされた、要求されたウェブ・ページについての要素のリストを更新する。すなわち、サーバ１０２は、このウェブ・ページについての最も多く要求されたウェブ・ページ要素を反映するリストを更新する。
【００６３】
いくつかの実装形態では、方法６００は、他のステップまたは追加のステップあるいはその両方を含むことがあるが、話を明確にするためにそれらのステップは描かれていない。さらに、いくつかの実装形態では、方法６００は、提示される順序とは異なる順序で実行されることもあり、図６の考察で提示される順序は例示的なものである。加えて、いくつかの実装形態では、方法６００中のいくつかのステップは、実質的に同時方式で実行されることもあり、または省略されることもある。
【００６４】
このウェブ・ページについての最も多く要求されたウェブ・ページ要素を反映するリストを確立すると、サーバ１０２は、図７に関して以下で論じるように、ブラウザによってロードされる要求されたウェブ・ページ中のより関心の低い要素よりも先に、より関心の高い要素の内容をポピュレートするためのデータを、クライアント・デバイス１０１のブラウザに送信することで、適切に応答することができ、それにより、ウェブ・ページのロードを最適化する（すなわち、要求されたウェブ・ページ中の関心のある要素をユーザが閲覧するための待機時間をおそらく短縮する）ことができる。
【００６５】
図７は、本発明の一実施形態による、要求されるウェブ・ページについての関心のある要素をユーザが表明しないときに、ウェブ・ページを取り出す方法７００のフローチャートである。
【００６６】
図１〜３と共に図７を参照すると、ステップ７０１で、サーバ１０２は、ウェブ・ページのどの要素も重要として指定されない状態で、ウェブ・ページを取り出す要求をクライアント・デバイス１０１から受信する。
【００６７】
ステップ７０２で、サーバ１０２は、要求されたウェブ・ページについてのウェブ・ページ要素の人気でソートされた、要求されたウェブ・ページについてのウェブ・ページ要素のリストにアクセスする。
【００６８】
ステップ７０３で、サーバ１０２は、ソートされたリストに基づく順序で、要求されたウェブ・ページの要素の内容をポピュレートするためのデータをクライアント・デバイス１０１に送信する。このようにして、サーバ１０２は、要求されたウェブ・ページ中のより関心の低い要素よりも先に、より関心の高い要素の内容をポピュレートするためのデータを、クライアント・デバイス１０１に送信し、それにより、ウェブ・ページのロードを最適化する（すなわち、要求されたウェブ・ページ中の関心のある要素をユーザが閲覧するための待機時間をおそらく短縮する）。
【００６９】
いくつかの実装形態では、方法７００は、他のステップまたは追加のステップあるいはその両方を含むことがあるが、話を明確にするためにそれらのステップは描かれていない。さらに、いくつかの実装形態では、方法７００は、提示される順序とは異なる順序で実行されることもあり、図７の考察で提示される順序は例示的なものである。加えて、いくつかの実装形態では、方法７００中のいくつかのステップは、実質的に同時方式で実行されることもあり、または省略されることもある。
【００７０】
本発明の様々な実施形態についての記述を例示のために提示したが、これらの記述は、網羅的なものとはせず、また、開示される実施形態に限定されるものともしない。述べた実施形態の範囲および主旨を逸脱することなく、多くの変更および変形が当業者には明らかとなるであろう。本明細書で使用される用語は、実施形態の原理、実際の応用、もしくは市場で見られる技術に勝る技術的改善を最もよく説明するために、または、本明細書に開示される実施形態を他の当業者が理解できるようにするために、選ばれたものである。
【図１】
0006328233.tif 000002
【図２】
0006328233.tif 000003
【図３】
0006328233.tif 000004
【図４】
0006328233.tif 000005
【図５】
0006328233.tif 000006
【図６】
0006328233.tif 000007
【図７】
0006328233.tif 000008