(58)【調査した分野】(Int.Cl.,DB名)
ユーザー装置とコンテンツサイトとの間で仲介をするコンピュータシステムであって、前記コンピュータシステムが、1つ以上のコンピューティング装置を含み、かつ、少なくとも、
前記ユーザー装置からコンテンツページに対する要求を受信する前に、前記コンテンツサイトから前記コンテンツページを取得することと、
前記コンテンツページのプレビューを生成することであって、前記コンテンツページのプレビューが、
前記コンテンツページの少なくとも一部の画像と、
前記画像に対する要求を送信する第1の命令および前記コンテンツページに対するフォローアップ要求を送信する第2の命令を含むマークアップコードと
を含む、前記コンテンツページのプレビューを生成することと、
前記ユーザー装置から前記コンテンツページに対する要求を受信することと、
前記要求を受信することに応答して、
前記要求がフォローアップ要求でないと判断すると、前記マークアップコードを前記ユーザー装置に送信することと、
前記要求がフォローアップ要求であると判断すると、前記コンテンツページの非プレビューバージョンを前記ユーザー装置に送信することと
を行うようにプログラミングされている、コンピュータシステム。
前記コンテンツページのプレビューを、前記ユーザー装置のディスプレイ特性に少なくとも一部基づき生成するようにさらにプログラミングされている、請求項1に記載のシステム。
前記マークアップコードが画像マップを含み、かつ前記画像マップが前記画像のクリック可能領域を定義し、前記クリック可能領域が前記コンテンツページ上のリンクに対応する、請求項1に記載のシステム。
前記フォローアップ要求が、前記コンテンツページに対するURLを含み、前記URLが、前記URLがフォローアップ要求と関連付けられていることを示すクエリー文字列を含む、請求項1に記載のシステム。
前記プレビューが複数の画像を含み、前記複数の画像の各画像が、前記要求されたコンテンツページの別個の部分に対応する、請求項11に記載のコンピュータ実装方法。
前記プレビューが、コンテナ要素に対するソースとして前記要求されたコンテンツページを参照するマークアップコードを含む、請求項11に記載のコンピュータ実装方法。
【発明を実施するための形態】
【0010】
システム構成要素
図1は、前述の通りに動作可能な中間システム30の一実施形態を示す。中間システム30は、ユーザー装置32(例えば、スマートフォン、タブレット、PC、電子書籍端末など)と、ウェブサイトなどの、コンテンツサイト34との間で仲介をする。いくつかの実施形態では、中間システム30は、例えば、プロキシサーバー、特定のブラウザまたは装置タイプに対する部分レンダリングエンジン、CDN、インターネットサービスプロバイダ(「ISP」)システム、またはそれらの組合せであり得るか、またはその機能を果たし得る。各ユーザー装置32は、標準プロトコルに従って、コンテンツページの取得および表示が可能なブラウザアプリケーション50(「ブラウザ」)を実行する。ブラウザ50は、中間システム30を経由してウェブページを取得するように設計または構成され得る。いくつかの実施形態では、ブラウザ50は、ページプレビューを表示するように明確に設計または構成されていない、従来型のウェブブラウザであり得る(またはそれを含み得る)。他の実施形態では、ブラウザ50は、ページプレビューの表示と関連した特定のタスクを処理するように明確に設計され得る。
【0011】
コンテンツサイト34は、通常のウェブサイトを含むか、またはそれから成り得る。ページプレビューが生成されるページは、本明細書で説明するように、プレビューの生成をサポートするための任意の特別なコーディングまたはフォーマットを含まない、従来型のウェブページであり得る。しかし、いくつかの実施形態では、中間システム30は、特定のページに対してページプレビューが生成されるべきかどうか、またはどのように生成されるべきかを指定するために、特別なプレビュータグの使用をサポートし得る。プレビュータグがサポートされる場合、コンテンツプロバイダーは、例えば、ページのどの視覚要素またはセクションがスクリーンショットに変換されるべきか、または中間システムがどこでコンテンツページの以前に生成されたプレビューを取得し得るかを示す、例えば、タグを、コンテンツページ内に埋め込み得る。
【0012】
図1に示すように、中間システム30は、ページプリフェッチャ40、プレビュー生成器42、プレビューキャッシュ44、およびプリフェッチ/プレビュー構成データのデータリポジトリ46を含む。ページプリフェッチャ40は、ページプレビューを生成する目的で、様々なコンテンツサイト34からページをプリフェッチする責任を負う。プリフェッチされるページは、例えば、(1)管理者によって事前に選択され得、(2)ページ人気データ(例えば、中間システムによって処理されるページ要求に基づき、測定されるような)に基づき自動的に選択され得、かつ/または(3)ユーザー装置によってロードされているページのリンクを予測的に辿ることにより識別され得る。プリフェッチのために選択されたページの一部または全部に対して、ページプリフェッチャ40は、1〜3分毎など、一定の間隔で、各ページを定期的にプリフェッチし得る。この間隔は、固定であり得るか、または、例えば、ページもしくはサイトコンテンツに対して意味のある変更が行われる頻度の評価基準に基づき、ページ毎もしくはサイト毎ベースで変動し得る。
【0013】
ページがプリフェッチされるたびに、プレビュー生成器42は、プリフェッチされたページのプレビューを生成し、そのプレビューを直前に生成されたプレビューの代わりにキャッシュ44に格納する。プレビュー生成器は、同じページの複数のプレビューを、各々を特定の装置または装置特性(例えば、スクリーンサイズ、ブラウザ特性、タッチスクリーン対非タッチスクリーンなど)に合わせて、生成およびキャッシュし得る。プレビューは、プリフェッチされたページまたはその部分のスクリーンショットを含むか、またはそれから成り得る。いくつかの実施形態では、プレビューは、ユーザーがスクリーンショット内に示されたリンクを選択し、そのリンクされたコンテンツアクセスすることを可能にするHTML画像マップを含む、HTMLコードも含み得る。いくつかの実施形態では、プリフェッチされたコンテンツページのプレビューを生成するのではなく、プレビュー生成器42は、コンテンツページに対する望ましいプレビューとしてコンテンツサイト34によって識別されるプレビュー(例えば、画像または介在ページ)をコンテンツサイト34から取得し得る。例えば、コンテンツページの現在のバージョンまたは完全なバージョンは、そのページに対して使用されるべきプレビュー項目を識別する、メタデータ、カスタムマークアップタグ、または他の情報を含み得、プレビュー生成器は、そのプレビュー項目を取得できる。プレビュー項目は、事前に(例えば、ユーザー装置32からコンテンツ項目に対する要求を受信する前に)取得されてプレビューキャッシュ44内に格納され得るか、または反応的(例えば、コンテンツページに対する、ユーザー装置32からの、要求に応答して)であり得る。
【0014】
データリポジトリ46によって示されるように、ページをプリフェッチしてページプレビューを生成するプロセスを制御するために、様々なタイプの構成データが保持されて使用され得る。このデータは、例えば、プリフェッチに適格なサイトまたはページのリスト、特定のページまたはサイトに対して使用されるべきプリフェッチ間隔に関するデータ、およびプレビューが生成されるべき装置または装置特性に関するデータを含み得る。前述のように、中間システム30は、特定のユーザー装置32上に格納されたブラウザクッキーのコピーも保持し得、これらのクッキーを使用して特定のユーザーに対するページを予測的にプリフェッチし得る。
【0015】
ページプリフェッチャ40の使用に追加して、またはその代替として、中間システム30は、ユーザー装置の代わりに、中間システム30によって取得されたページコンテンツからプレビューを生成し得る。
【0016】
図1に示す中間システム30の構成要素およびモジュールは例示のみであり、制限することを意図していない。いくつかの実施形態では、中間システム30は、もっと少ないか、追加、もしくは代替の構成要素またはモジュールを含み得る。例えば、中間システム30は、本明細書で説明するように、要求されたコンテンツ項目をユーザー装置32の代わりに取得するコンテンツフェッチャまたは要求プロセッサを含み、非プレビューバージョンをユーザー装置32に提供し得る。別の例として、中間システム30は、取得されたコンテンツ項目を処理し、その処理したバージョンをユーザー装置32に送信するブラウザ機能を備えた、レンダリングエンジンまたは何らかの他の構成要素を含み得る。いくつかの実施形態では、中間システム30は、ユーザー装置32と(例えば、リモートデスクトッププロトコル(「RDP」)を使用して)リモートデスクトップ接続または何らかの同様の接続を確立し得る。中間システム30は、ユーザー装置32上でコンテンツ処理がほとんど、または全く行われないように、プレビューコンテンツおよび要求されたコンテンツの非プレビューバージョンをレンダリングして、レンダリングしたコンテンツの表現を表示のためにユーザー装置32に伝送し得る。
【0017】
ページ配信プロセスフロー
図2は、一実施形態に従って、中間システム30がページをプリフェッチしてブラウザ要求を処理し得る一般的なプロセスを示す。イベント1で、中間システム30は、コンテンツサイト34からページをプリフェッチする。前述のように、このプリフェッチイベントは、定期的なスケジュールに従って起こり得るか、またはユーザー装置32によって要求された別のページに基づき予測的に実行され得る。いくつかの実施形態では、中間システム30は、複数のユーザー装置からのコンテンツ要求に対応するように構成され得る。かかる事例では、中間システム30は、第1のユーザー装置からの要求に応答して、コンテンツを取得し、そのコンテンツのプレビューを生成し、次いで、それらのプレビューを後に第2のユーザー装置32に提供し得る。コンテンツの取得およびプレビューの生成が予測的に実行される場合、中間システム30は、いくつかの実施形態では、ユーザー装置32およびコンテンツサイト34に対応するクッキーをページ要求と共に送信し得る。このようにして、コンテンツサイト34は、特定のユーザーに対してパーソナライズされるページを返し得、パーソナライズされたページのスクリーンショットが生成され得る。前述のように、ページのプリフェッチは本質的ではない。ページは単一のコンテンツサイトまたはサーバーから取得されているとして示されているが、ページのいくつかの構成要素(画像または広告など)が、別個のサーバーおよびドメインから取得され得る。
【0018】
イベント2で、中間システム30は、ページのプレビューを生成してキャッシュする。ユーザー装置32に対応するクッキーを使用することなく、ページがプリフェッチされた場合、中間システム30は、後でこのプレビューを、そのページをその後に要求する任意のユーザー装置に配信し得る。クッキーを使用してプリフェッチされた場合には、プレビューは、ユーザー装置32に対して、またはユーザー装置32と関連付けられたユーザーもしくはユーザーアカウントに対してパーソナライズされているとして指定され得る。
【0019】
プレビューを生成する際に、中間システム30は、ページ全体のスクリーンショットを生成し得るか、または各々がページのそれぞれ異なる部分の、複数のスクリーンショットを生成し得る。ページ上のアクティブなコンテンツ(リンクおよび他の選択可能な要素)を維持するために、プレビュー生成器は、各スクリーンショットに対する画像マップも生成し得る。各かかる画像マップは、当技術分野で周知のように、1つ以上のホットスポットのスクリーンショット内の座標を指定し、各かかるホットスポットの対象のURLを指定する。画像マップの複雑性を低減するために、中間システム30は、いくつかの場合には、ユーザーによって最も頻繁に選択されるものなど、ページ上のリンクの一部のホットスポットのみを含み得る。いくつかの場合には、中間システムは、ページプレビューを生成する際に、ページのテキストの一部または全部を非画像フォーマットで格納し得;例えば、中間システム30は、ページプレビューを生成するために、ブラウザ50によって画像ファイルと組み合わすことができる、テキストオーバーレイファイルを作成し得る。
【0020】
いくつかの実施形態では、中間システム30は、プレビューが表示されている間に、対話式コントロールまたは他のオブジェクトの使用を容易にするための、実行可能コードまたはコンテンツのカスタマイズされた表現を生成し得る。例えば、ユーザー装置がプレビューコンテンツをレンダリングする場合にユーザー装置による使用のために、軽量のドキュメントオブジェクトモデル(「DOM」)が生成され得る。DOMは、それがある所望のオブジェクト(例えば、テキストボックスまたは他の入力コントロール)、およびユーザー装置32上のブラウザ50にオブジェクトを適切に(例えば、入力コントロールがプレビュー画像内で示される位置に)表示するように指示するプロパティのみを含むように、簡素化され得る。コンテンツページの完全なDOM内に通常含まれる他の項目(例えば、コンテンツページの各画像または他のメディア項目を表すオブジェクト)は、かかるオブジェクトの静的可視表現がプレビュー画像の一部であり得るので、軽量DOMから除外できる。ユーザーは、従って、たとえ、要求されたコンテンツの完全に機能する非プレビューバージョンではなく、実質的に静的なプレビューが表示されている場合であっても、ある程度の相互作用性を提供され得る。
【0021】
イベント3で、ユーザー装置32は、続いてページを要求する。イベント4およびイベント5では、それらは時間的に重なり得る(例えば、並行して実行され得る)か、または、示すものとは異なる順序で実行され得るが、中間システム30は、(a)キャッシュされたページプレビューをユーザー装置32に返すこと、および(b)要求されたページをユーザー装置32の代わりにコンテンツサイト34から取得することにより、ページ要求に応答する。イベント4でプレビューを配信するために使用されるプロセスは、装置のブラウザ50がページプレビューの表示をサポートするかどうかによって決まり得る。従来型のブラウザの場合のように、ページプレビューの表示をサポートしない場合、中間システム30はまず、ブラウザ50に1つ以上のキャッシュされたスクリーンショット(または他のキャッシュされたプレビューオブジェクト)を中間システム30から取得するように指示する、本明細書でHTMLプレビューファイルと呼ばれる、特別なHTMLを返し得る。このプロセスは、
図3に関連して、以下で説明する。
【0022】
イベント5および/またはイベント7と重なり得る、イベント6で、ブラウザ50は、ページプレビューを表示する。通常、ページプレビューは、プレビューが配信されなかった場合に実際のページが表示され得るよりも著しく速く表示される。これにはいくつかの理由がある。第1に、プレビューが既に中間システム30上にキャッシュされているので、コンテンツサイト34からのページの取得に関連した伝送遅延が回避される。第2に、コンテンツサーバー34または第三者サーバー(例えば、CDNサーバー)からの任意の埋込みオブジェクトの要求に関連した追加の伝送遅延が通常、回避される。第3に、プレビューを生成するために使用されるプロセスに応じて、プレビューは、実際のページよりも迅速に配信および表示されることが可能であり得る。例えば、通常、ブラウザ50の処理遅延という結果となる複雑なコーディングが、プレビューから省かれ得、到着時にプレビューがより迅速に表示されるのを可能にする。別の例として、ジョイントフォトグラフィックエキスパートグループ(「JPEG」)規格に従って作成された画像などの、コンテンツページのプレビュー画像は、全体として要求されたコンテンツ項目よりも大幅に小さいデータサイズを有し得、従って、例えば、完全なウェブページよりも迅速に伝送され得る。
【0023】
プレビューが配信されて表示される速度は、プレビューを特定の装置タイプまたはフォームファクタに対して最適化することによりさらに向上できる。例えば、スクリーンショットがより速く配信できるように、スマートフォンに対してはタブレットと対比して低いスクリーンショット解像度が使用され得る。(スクリーンショット解像度は、モバイル機器のユーザーが、どの程度頻繁かつ迅速に特定のページまたはページ一般上でズームする傾向があるかに関して集約されたブラウザ報告データにも基づいて選択され得る)。別の例として、ページは、ユーザー装置の画面寸法に基づき(複数のスクリーンショットを生成する目的で)細分され得る。例えば、1つのスクリーンショットは、装置の画面寸法を所与として、ページが最初に表示される時に画面上に出現する、ページの「上半分の」部分に対して生成され得る。必要に応じて、ユーザーがスクロールできる、ページの残り(下半分)の部分の1つ以上の追加のスクリーンショットが生成され得る。このアプローチでは、プレビューの上半分部分が、ページ全体に対して単一のスクリーンショットが使用された場合に表示され得るよりも迅速に表示されるように、上半分のスクリーンショットがまず、配信されて表示され得る。
【0024】
いくつかの実施形態またはユースケースでは、中間システム30は、下半分のコンテンツがプレビューに含まれないように、上半分のスクリーンショットを配信するだけであり得る。これは、ユーザーが、プレビュー表示ステージ中に、ページ上でスクロールダウンする可能性が低い場合に適切であるか、または望ましくあり得る。中間システム30は、(1)ユーザーが特定のページ上でスクロールダウンする頻度(および速度)に関するデータ、ならびに(2)プレビューが実際のページと置き換えられる前に、プレビューが表示される推定時間、などの、1つ以上の要因に基づき、このアプローチを特定のページに対して使用するかどうかを判断し得る。
【0025】
イベント7で、中間システム30は、イベント5で取得したページコンテンツに基づき、ページの非プレビューバージョンをブラウザに配信する。ページの非プレビューバージョンは、コンテンツサイト34から取得されたページの実質的に現在のバージョンであり得る。いくつかの実施形態では、中間システム30は、ページの実質的に現在のバージョンと、クライアント装置32に対して以前に提供されたプレビューバージョンとの間の差の分析を実行し得る。実質的に現在のバージョンとプレビューバージョンとの間の差の表現が次いで、クライアント装置32に提供され得る。例えば、置換テキスト、置換画像または画像の部分、置換バイト範囲、および同様のものなどの、1つ以上のプレビュー更新が、生成されて、クライアント装置32に送信され得る。ブラウザ50は次いで、プレビュー更新(複数可)をプレビューバージョンに適用すること、プレビューバージョンの1つ以上の部分をプレビュー更新(複数可)と置き換えること、プレビュー更新(複数可)をプレビューバージョンの対応する部分(複数可)に重ね合わせることなどにより、非プレビューバージョンを表示できる。
【0026】
非プレビューバージョンは、イベント5で取得したページとフォーマットが同一であり得るか、またはその修正されたか、もしくは部分バージョンであり得る。中間システム30は、非プレビューバージョンを生成するために、取得したページを様々な方法で修正または最適化し得る。例えば、中間システム30は、ページ上で選択された画像を、とりわけモバイル機器に対して、より迅速にロードすることを可能にするために、それらの画像の解像度を低下し得る。別の例として、中間システム30は、通常は、ブラウザによって別々に取得され得る、埋込み画像またはオブジェクトを含む、ページ全体を完全に表す単一のファイルを生成して配信し得る。さらに別の例として、中間システム30は、プレビューと異なるか、またはプレビューから省かれた部分などの、ページのある部分のみを配信し得る。従って、イベント7で配信される非プレビューバージョンは、イベント5で取得されるページとフォーマットが異なり得、かつ/または実際のページの不完全表現であり得る。
【0027】
いくつかの実施形態では、
図2に示すように、要求されたコンテンツの非プレビューバージョンが、ブラウザ50からの第2の要求またはフォローアップ要求なしで配信され得る。例えば、プレビュー認識ブラウザは、SPDY、WebSocket、または同様のものなどの、双方向通信プロトコルを使用して、中間システム30と通信し得る。一旦、ユーザー装置およびネットワークシステム(中間システム30など)が双方向通信プロトコルを使用して接続を確立すると、ネットワークシステムは、ハイパーテキスト転送プロトコル(「HTTP」)接続で通常要求されるように、第1にユーザー装置からの要求を要求することなく、コンテンツ項目および他のデータをユーザー装置に伝送し得る。かかる双方向通信プロトコルを使用することにより、中間システム30は、コンテンツ要求に応答して、プレビューコンテンツをユーザー装置32に送信できる。続いて、または並行して、中間システム30は、クライアント装置32からの第2の要求を要求することなく、要求されたコンテンツページの非プレビューバージョンをクライアント装置32に伝送できる。
【0028】
いくつかの実施形態では、ユーザー装置32は、ページの非プレビューバージョンを中間システム30から受信するのではなく、実際のページをコンテンツサイト34から取得し得る。かかる場合には、ユーザー装置32は、プレビューに対する当初の要求を中間システム30に伝送し、その後(または並行して)コンテンツサイト34から実際のページを要求し得る。ユーザー装置32またはその上で実行するブラウザ50は、当初、中間システム30からのプレビューを要求し、その間にコンテンツサイト34から実際のページをさらに取得しているように構成され得る。代替として、中間システム30がユーザー装置32に送信するプレビューまたは他のデータは、ブラウザ50に、実際のページを、中間システム30から受信するのを待つのではなく、コンテンツサイト34から取得するように指示し得る。
【0029】
非プレビューバージョンがユーザー装置32上にロードされると、それは、ブラウザによって隠して保持される。例えば、非プレビューバージョンは、別個のフレームバッファ内にロードされ得るか、または隠し「タブ」、ブラウザウィンドウ、もしくはブラウザ50によってサポートされる他のコンテンツ表示要素にレンダリングされ得る。
図2のイベント5およびイベント7は、中間システム30が、ページの非プレビューバージョンの部分を、他の部分を取得している間に配信できるように、重なり合い得る。前述のように、他の実施形態では、中間システム30は、プレビューと異なる(または意味があるように異なる)部分などの、実際のページのある部分を配信するだけであり得る。
【0030】
イベント8で、ブラウザ50は、イベント7で受信したコンテンツに基づき、プレビューの表示を非プレビューバージョンの表示と置き換える。(中間システム30が、プレビューと異なる部分を配信するだけの場合、ブラウザ50は、代替として、関連部分を置き換えることにより更新し得る)。例えば、非プレビューバージョンがロードされて隠しタブにレンダリングされた場合は、隠しタブが非隠し状態にされ得るか、または別の方法で可視状態にされ得、他方、プレビューが表示されたタブが隠され得る。通常のユースケースシナリオでは、この遷移は、プレビューの表示の数秒後に生じる。ユーザーの観点からすれば、プレビューから実際の(非プレビュー)ページへの遷移は、通常、従来型のブラウザがページのロードを終える時に生じる遷移と見かけは同様である。従って、ユーザーは通常、プレビューから実際のページへの遷移が生じていることに気付かないであろう。通常、実際のページのビジュアルコンテンツは、特に、中間システム30がページのプレビューを頻繁に(例えば、数分ごとに)生成する場合、プレビューのビジュアルコンテンツと同一または同様であろう。
【0031】
前述のように、いくつかの実施形態では、プレビューは、テキストボックスまたは他の入力コントロールなどの、対話型オブジェクトを含み得る。ユーザーは、イベント7またはイベント8の前に、かかるオブジェクトとやりとりし得る。例えば、テキストボックスを含めると、ユーザーがテキストをテキストボックスに入力し始めることを可能にできる。ユーザー装置32がイベント8でプレビューを非プレビューバージョンと置き換える場合、ユーザー装置32は、テキストボックスの一時的なプレビューバージョンのコンテンツを非プレビューバージョンにコピーでき、ユーザーがいかなる作業も失うことがないように、また非プレビューに対する変更がシームレスに、または実質的にシームレスに生じるように見えるようにする。ユーザーがテキストをテキストボックス内に活発に入力している場合、ユーザー装置32は、テキストボックスの非プレビューバージョンが準備できると、入力をそれに向かわせて、テキストボックスの非プレビューバージョンが表示されると、自動的に、カーソルをテキストボックスの非プレビューバージョンの適切な位置に配置し得る。
【0032】
プレビュー認識ブラウザ50は、非プレビューバージョンの表示前、または表示中に、入力をプレビューバージョンから非プレビューバージョンへ自動的にコピーするように構成され得、それにより、中間システム30からのいかなる追加の命令またはコードを必要とすることなく、それを行うようになる。既存のブラウザ(例えば、プレビュー認識でないか、または入力上に自動的にコピーするカスタムコードを含んでいないもの)は、中間システム30により、命令または他の実行可能コードを提供され得る。例えば、HTMLプレビューファイル、または非プレビューバージョンは、プレビューバージョンから非プレビューバージョンへの入力のコピーを容易にするために、JavaScriptまたは何らかの他の実行可能コードを含み得る。
【0033】
いくつかの実施形態では、中間システム30は、ページ要求時に、要求されたページのプレビューを配信するかどうかを、プログラムで判断し得る。この判断は、以下の:(1)ユーザー装置32と中間システム30との間、またはコンテンツサイト34と中間システム30との間の接続速度、(2)ページへの以前のアクセスに基づき中間システム30に既知であり得るような、要求されたページのサイズおよび複雑さ、(3)このページの取得時、または対象とするサイト一般のページ取得時に、中間システム30が遭遇する平均遅延(または直前の遅延)、(4)ページのコンテンツが変わる頻度、のうちの1つ以上などの、様々な要因に基づき得る。
【0034】
既存のブラウザのための配信プロセス
図3は、ページプレビューを前から存在するブラウザ(すなわち、「プレビュー認識」ではないもの)に提供するために使用され得るプロセスを示す。この例では、中間システム30は既にページのプレビューをそのキャッシュ44内に有していると仮定する。
図3のイベント1では、ブラウザ50は、ページに対する要求を中間システム30に送信する。イベント2で、中間システム30は、実際のページの代わりに、HTMLプレビューファイルを返す。HTMLプレビューファイルは、前述のように、中間システム30からブラウザ50によって取得されるべきスクリーンショット(複数可)を指定し、各かかるスクリーンショットに対する画像マップを含み得る。かかるプレビューファイルの一例を、画像マップを除去し、テキスト「[IMAGE MAP GOES HERE](画像マップはここ)」で置き換えて、表1に示す。
【0036】
イベント3で、ブラウザ50は、HTMLプレビューファイル内で参照されるプレビュースクリーンショット(複数可)を取得し得る。表1に示されるHTMLプレビューファイルは、CNN.comと関連付けられたページに対応して、f84bcecf−4f22−480b−9b6c−dfe5f206089b.jpgという名前の単一のスクリーンショットを参照する。本明細書で説明するように、いくつかの実施形態では、複数のスクリーンショットが使用され得る。実例として、表1に示すHTMLプレビューファイル内で参照されるスクリーンショットは、http://www.cnn.comまたは何らかの関連したサーバーからではなく、http://static−screenshots.s3.comから取得され、それは、中間システム30または中間システム30と関連付けられた何らかの他のサーバーもしくはシステムに対応し得る。スクリーンショットは、ページ全体のであり、画像マップはページ上のリンクの一部または全部の座標を指定し得る。ユーザーは、プレビューファイルを見ている間に、ページ上のリンクを選択する/辿ることができる。
【0037】
いくつかの実施形態では、画像マップ以外のユーザーインタフェース機能が、プレビュー内に含まれ得る。例えば、コンテンツページが、補足的なコンテンツ(例えば、ユーザーがマウスを上に乗せた項目の説明)の表示を開始する「オンマウスオーバー(onmouseover)」または「オンホバー(onhover)」機能を含む場合、かかる機能がプレビューに含まれ得る。追加の実施形態では、かかる追加のユーザーインタフェース機能の包含は、対象とするユーザー装置の特性および性能に基づき得る。例えば、対象とする装置が、マウス入力ではなく、タッチスクリーン入力のみを有する場合、かかる機能は対象とする装置上で容易にアクセスできないので、「オンマウスオーバー」または「オンホバー」イベントハンドラーをプレビューファイルに追加するために必要な追加の処理がスキップされ得る。別の例として、実際のコンテンツページの構造に関する配置のヒントまたはデータが、プレビューと共に、またはプレビューと一緒に使用するために提供され得る。例えば、ズームするためのダブルタップなどの機能がプレビューで予想通りに機能するように、「div」マークアップタグの配置が提供され得る。
【0038】
スクリーンショットは、当初は、ユーザーに見えるHTML本体の唯一のオブジェクトである。指定される特定のスクリーンショットは、そのフォームファクタまたは画面サイズなどの、ユーザー装置32の特性に基づき、中間システム30によって選択され得る。装置32の特性は、ページ要求と共に中間システム30に伝達され得るか、またはページ要求と共に伝送されたクッキーもしくは他の識別子に基づき中間システム30によって調べられ得る。
【0039】
イベント5で、ブラウザ50は、ページの非プレビューバージョンを表示のために準備するプロセスを開始し得る。この例では、ID「frame」が与えられている「iframe」要素である、コンテナ要素が、ページの現在のバージョンをロードするために使用される。いくつかの実施形態では、「div」または「object」要素などの、異なるコンテナ要素が使用され得る。表1のサンプルHTMLファイルの「frame.src」属性に見られるように、iframe要素のコンテンツは、http://www.cnn.com URLに配置された文書である。中間システム30は、クエリー文字列「?screenshot_bypass=1」をURLの終わりに付加している。このクエリー文字列は、オリジンサーバーまたはhttp://www.cnn.comと関連付けられた何らかの他のサーバーに渡されない可能性がある。むしろ、クエリー文字列は、http://www.cnn.comに配置されたページに対するこの特定の要求が、スクリーンショットに対してではなく、実際のページに対してであることを示す、中間システム30に対する指示であり得る。クエリー文字列「?screenshot_bypass=1」の存在は、HTMLプレビューファイルが既にユーザー装置32に伝送されていることを示す。いくつかの実施形態では、要求が、スクリーンショットではなく、実際のページで対応されるべきことを中間システム30に信号通知するために、他の技術が使用され得る。例えば、クッキー、セルフポストフォーム(self−posting form)、HTTPヘッダー、および同様のものが、情報を中間システム30に返送するために使用され得る。
【0040】
イベント6で、中間システム30は、要求されたページを、オリジンサーバー、CDNサーバー、またはコンテンツサイト34と関連付けられた何らかの他のコンテンツソースから取得できる。いくつかの実施形態では、中間システム30は、一旦、実際のページが(中間システムによる修正の有無にかかわらず)ロードし終えると、ブラウザ50にそのページを表示するように指示する、JavaScriptコード、または他の実行可能コードで、取得した(実際の)ページを拡張(augment)する。これは、JavaScript「オンロード(onload)」イベントを使用して達成され得る。前述のように、中間システム30は、ページに対する他の変更(例えば、画像の解像度の低減)も行い、そのページを、特定のタイプの装置への配信および表示のために、より良く最適化し得る。
【0041】
イベント7で、ブラウザ50は、ページの非プレビューバージョンを処理および表示できる。「frame.onload」属性に見られるように、iframe要素は、iframeのコンテンツ(例えば、http://www.cnn.com)がロードし終えると実行するJavaScript関数と関連付けられる。特に、iframe要素のコンテンツがロードし終えると、「frame.onload」属性内に定義された関数が、iframe(例えば、「frame.style.display=block;」)を表示し、次いでスクリーンショット(例えば、「image.style.display=none;」)を隠す命令を実行する。いくつかの実施形態では、画像が最初に隠され、次いでiframeが表示されるように、順番が逆にされ得る。
【0042】
いくつかの実施形態では、最終文書のスクロールがシームレスに機能するように、iframeが、その中の最終サイズのコンテンツの合理的な表現と共にロードされるのを確実にするために、追加のステップを取ることができる。iframe自体内でクリックされたリンクが、iframe内ではなく、親文書内にロードされるように、iframe内にロードされる文書の<head>に、<base>タグが追加できる。最後に、ブラウザ50上での処理および記憶圧力を軽減するために、iframeがロードされる際にスクリーンショット画像が除去できる。
【0043】
プレビュー認識ブラウザを使用した実装
図3をさらに参照して、プレビュー認識ブラウザ50が使用される場合、イベント5が省略され得、イベント2およびイベント3が、中間システム30がプレビューを配信する単一のイベントと置き換えられ得る。プレビュー認識ブラウザ50は、プレビューの表示をサポートするための他の機能も含み得る。例えば、ブラウザ50は、ユーザーが、以下の:(1)プレビューが表示されるべきかどうか、(2)プレビューが表示されるべき条件(例えば、Wi−Fiが利用可能な場合のみ、特定のサイトに対してのみ、など)、(3)プレビューに対してどのスクリーンショット解像度が使用されるべきか、(4)プレビューから広告が省かれるべきかどうか、(5)「プレビューのみ」閲覧モード(以下で説明)が使用されるべきかどうか、(6)中間システム30が(前述のように)予測的なプリフェッチを実行すべきかどうか、およびそうである場合には、パーソナライズされたプレビューをサポートするために、ユーザーのクッキーが使用されるべきかどうか、のうちの1つ以上を指定することを可能にするためのユーザー設定メニュー(または設定ページへのリンク)を含み得る。
【0044】
予測的なプリフェッチが使用される場合、プレビュー認識ブラウザ50は、対応するページが要求される前に、予測的に生成されたプレビューがユーザー装置32に配信され得るように、バックグラウンドでプレビューの受信およびキャッシュも可能であり得る。いくつかの実施形態では、中間システム30は、現在要求されているか、または表示されているコンテンツ項目によって参照されるコンテンツ(例えば、ハイパーリンクコンテンツ)を予測的にプリフェッチし得る。
【0045】
図5は、コンテンツ項目を表示しているブラウザインタフェース例500を示す。実例として、
図5に示すコンテンツ項目は、他のコンテンツ項目へのいくつかのリンクを含む「トップ記事」欄510を有する。中間システム30は、現在のユーザーが(例えば、ユーザーの以前のコンテンツ要求および/または人口統計情報の分析に基づき)「トップ記事」欄510内のどのリンクを次にクリックしそうであるか、または任意のユーザーが一般に、次にどのリンクをクリックしそうであるか、に関する予測を生成する機能を含み得る。ブラウザ50がプレビュー認識ブラウザである場合、中間システム30は、要求される可能性のコンテンツのプレビューを伝送できる。ブラウザ50がプレビュー認識ブラウザではない場合などの、いくつかの実施形態では、中間システム30は、ユーザー装置32に送信されるプレビューファイル内にコードを含み得る。ユーザー装置32は、後で最も要求される可能性が高い、リンクされたコンテンツ項目に対するプレビュー画像をプリフェッチするために、追加されたコードを実行し得る。
【0046】
いくつかの実施形態では、中間システム30は、後で要求される可能性が低い1つ以上のコンテンツ項目に対するプレビューを(例えば、前述した技術の1つを使用して)ユーザー装置32に送信させ得、他方、後で要求される可能性が最も高い1つ以上のコンテンツ項目に対する完全なバージョンまたは非プレビューバージョンを、ユーザー装置32に送信させる。このようにして、ユーザー装置32は、次に最も要求される可能性が高いコンテンツ項目の非プレビューバージョンに容易にアクセスでき、その一方で、全ての項目の非プレビューバージョンを取得するために必要な帯域幅および格納スペースを消費することなく、次に要求される可能性が低いコンテンツ項目の少なくともプレビューにもアクセスできる。
【0047】
図5に示すコンテンツ項目は、テキストボックス530も含む。前述のように、かかるテキストボックス530はプレビュー上に表示され得、それにより、ページの非プレビューバージョンが受信または表示される前に、ユーザーがテキストボックス530にテキストの入力を開始することを可能にする。中間システム30は、テキストボックス530がプレビューのテキストボックスと同じ位置になるように、テキストボックス530の表示位置に関する座標、テキストボックス530の挙動方法(例えば、フォントに関するスタイル情報など)、および同様のものなどの情報をブラウザ50に提供し得る。
【0048】
図5に示すコンテンツ項目は、中央コンテンツ領域540を含む。実例として、コンテンツ項目は、ニュースウェブページであり得、中央コンテンツ領域540は、現在のトップ記事、ニュース速報、または同様のものを示すために使用され得る。いくつかのブラウザアプリケーションは、特定の領域上でのユーザーによるダブルタップに応答して、ユーザーが、中央コンテンツ領域540などの、特定の領域上の表示を迅速にズームするのを可能にする。従来の方式では、ブラウザは、ダブルタップに応答して、特定の領域上での表示をズームする方法を判断するために、<div>タグまたは<table>の列などの、コンテンツページの様々な機能を使用する。中央コンテンツ領域540が3列テーブル(例えば、「トップ記事」欄510のための第1の列、中央コンテンツ領域540のための第2の列、および広告520のための第3の列)の中央列であって、ユーザーが中央列内でダブルタップすると、ブラウザは中央コンテンツ領域540上の表示をズームできる。しかし、プレビュー画像のみが表示されている場合、ブラウザ50は、ズームすべき画像上の特定の領域を知らない可能性がある。ダブルタップによるズーム機能をコンテンツプレビューに提供するために、中間システム30が、前述のように、軽量DOMを提供し得るか、または簡略化HTMLページが提供され得る。DOMまたはHTMLページは、非プレビューバージョンの領域に対応するプレビュー画像の領域を定義し得、それにより、ブラウザ50に、ダブルタップ入力または何らかの他のズームコマンドに応答してズームする方法を判断するための情報を提供する。例えば、HTMLページは、3列を有する単純な<table>を定義するコードを含み得るか、またはDOMはかかるテーブルの対応する表現を含み得る。
【0049】
プレビュー認識ブラウザ50は、中間システム30が、特定のユーザーに対するプロセスをカスタマイズまたはパーソナライズするのを可能にする他の機能も含み得る。例えば、ブラウザ50は、ユーザーがプレビューページ上でズームインおよびスクロールダウンする頻度に関する利用データを収集および報告し得る。中間システム30は、このデータを、例えば、ユーザーの閲覧行動に最適な特定のスクリーンショットを選択するために使用し得る。プレビュー認識ブラウザ50は、ユーザー装置の処理能力、画面サイズ、実行しているアプリケーション数などに関する情報などの、適切なスクリーンショットを選択するために有用であり得る他の情報も中間システム30に報告し得る。さらに、プレビュー認識ブラウザは、プレビューとやりとりするための1つ以上の特別なタッチスクリーンジェスチャをサポートし得る。かかるジェスチャの一例を以下で説明する。
【0050】
プレビュー認識ブラウザは、中間システム30が、プレビューと異なるか、またはプレビューから省かれた実際のページの部分のみを配信する機能もサポートし得る。例えば、一旦、プレビューが配信されると、中間システム30は、比較を実行することにより、ページの特定のセクションが変更されていることを判断し得、このセクションに対応するHTMLシーケンスをブラウザ50に配信し得る。プレビュー認識ブラウザは次いで、プレビューのその部分のみを置き換え得、プレビューの他の部分を置き換えることはない。別の例として、プレビューは、ページ上の画像の画素データのバイト範囲または一部のみを含み得、その場合、中間システムがその後、省かれた画素データを配信して−プレビュー認識ブラウザが埋め−得る。
【0051】
プレビュー認識ブラウザ50は、プレビューをレンダリングするための特別な機能も含み得る。例えば、前述のように、中間システム30は、(1)ページの画像コンテンツを表す画像ファイル、および(2)テキストコンテンツを非画像フォーマットで含む、HTMLファイルなどの、非画像オーバーレイファイルの両方を配信するように構成され得る。かかる実施形態では、ブラウザ50は、プレビューを生成するために、これらの2つのタイプのファイルを組み合わせるように構成され得る。
【0052】
この方法が使用される場合、中間システム30は、適用できる場合には、その後、
図2のイベント5で取得されたページに基づく新しいオーバーレイファイルを(新しい画像ファイルを送信することなく)送信し得る。従って、例えば、ページが、プレビューには含まれていない、パーソナライズされたテキストコンテンツを含む場合、中間システムは単に、このパーソナライズされたコンテンツを含む新しいオーバーレイファイルを送信し得;プレビュー認識ブラウザは次いで、画像コンテンツを変更することなく、新しいオーバーレイファイルを使用してプレビューの表示を更新するであろう。
【0053】
プレビューのみ閲覧モード
いくつかの実施形態では、システムは、中間システム30が、デフォルトにより、ページプレビューのみを(利用可能な場合)配信して、実際のページを配信しない、「プレビューのみ」閲覧モードをサポートし得る。ユーザーは、ブラウザ設定によって、または構成サイトを通じて、このモードを有効または無効にすることが可能であり得る。プレビュー認識ブラウザ50が使用される場合、ブラウザ50は、ユーザーが、そのプレビューを見ている間に、実際のページを要求するのを可能にする特別なタッチスクリーンジェスチャをサポートし得る。例えば、ユーザーが画面の特定の領域上を2度タップすると、ブラウザは、実際のページの要求およびロードによって応答するであろう。
【0054】
いくつかの実施形態では、中間システム30またはブラウザ50は、自動的に「プレビューのみ」閲覧モードに(例えば、「プレビューのみ」モードのユーザー開始なしで)入り得る。これは、様々なシステムまたはネットワーク条件に応答してトリガーされ得る。例えば、中間システム30またはブラウザ50が、中間システム30とユーザー装置32との間のネットワークリンクが低速であると判断する場合、「プレビューのみ」モードが自動的にトリガーされ得る。別の例として、「プレビューのみ」モードは、中間システム30またはブラウザ50が、特定のページまたは閲覧セッション全体の満足なレンダリングを可能にするために十分な利用可能資源がユーザー装置32上にない可能性があることを検出する場合に、自動的にトリガーされ得る。
【0055】
ページのプリフェッチおよびプレビュー生成のためのプロセス
図4は、プレビューを生成するために、中間システム30によって、特にページプリフェッチャ40およびプレビュー生成器42(
図1)によって、使用され得るプロセスの一実施形態を示す。このプロセスは、所与のページが比較的最新のプレビューを維持するために、定期的に(例えば、数分ごとに)繰り返され得る。この特定の実施形態では、プレビュー生成器42は、各プリフェッチされたページに対して複数のプレビューを生成し、その各プレビューは、異なる装置タイプに対応する。プレビュー生成器42は、非プレビュー認識ブラウザ50と対比して、プレビュー認識に対して異なるプレビューも生成し得る。
【0056】
ブロック60で、ページプリフェッチャ40が、コンテンツサイト34からページをプリフェッチする。ブロック62で、プレビュー生成器42が、プレビューを生成すべき第1の装置タイプを選択する。異なるプレビューが、例えば、異なる画面サイズに対して、異なる装置接続速度に対して、異なるブラウザに対してなど、生成され得る。
【0057】
図4のブロック64で、プレビュー生成器42が、スクリーンショットに変換するために、特定の部分または複数の部分を選択する。いくつかの実施形態では、プレビュー生成器42は、ページ全体の単一のスクリーンショットを生成し得る。他の実施形態では、前述のように、ページの異なる部分の異なるスクリーンショットが生成され得る。いくつかの場合には、プレビュー生成器42は、ページのある部分(例えば、レンダリングプロセスを遅くするような複雑なコーディングを含む部分)のみのスクリーンショットを生成し得、一方でページの他の部分は変更されないまま残す。プレビュー生成器42は、従って、もしあれば、どの部分がスクリーンショットに変換されるべきかを判断するためにプリフェッチされたページのコーディングを分析し得る。
【0058】
図4のブロック66で、プレビュー生成器42は、ページをレンダリングして、選択された部分(複数可)のスクリーンショット(複数可)を生成する。ブロック68で、プレビュー生成器42は、前述のように、HTMLプレビューファイルなどの、1つ以上の追加のプレビューファイルを生成し得る。いくつかの実施形態では、ユーザーが実際のページまたはページの非プレビューバージョンから予期し得る機能をユーザーに提供するために、画像マップ、「オンマウスオーバー」イベントハンドラーおよび他のユーザーインタフェース機能がプレビュー内に含まれ得る。これらおよび他のユーザーインタフェース機能の包含は、プレビューが対象とする装置に基づき得る。例えば、コンテンツページが、補足的なコンテンツ(例えば、ユーザーがマウスを上に乗せた項目の説明)の表示を開始する「オンマウスオーバー」または「オンホバー」機能を含むとき、対象とする装置がかかる機能を起動することが可能である場合、かかる機能がプレビューに含まれ得る(例えば、マウスを備えたデスクトップコンピュータは「オンホバー」イベントを起動できるが、他方、タッチスクリーンのみを備えたタブレットコンピュータはそれを行うことができない可能性がある)。別の例として、実際のコンテンツページの構造に関する配置のヒントまたはデータが、プレビューと共に、またはプレビューと一緒に使用するために提供され得る。例えば、ズームするためのダブルタップなどの機能がプレビューで予想通りに機能するように、「div」マークアップタグの配置が提供され得る。
【0059】
ブロック70で、任意のスクリーンショットを含む、プレビューファイルまたは複数のファイルが、選択された装置タイプに関連して(例えば、特定のスクリーンショットが適用される装置タイプまたは特性を示すデータと共に)、プレビューキャッシュ44に格納される。ブロック72で示すように、プロセスは次いで、1つ以上の追加の装置タイプに対して繰り返され得る。
【0060】
ユーザー装置要求に応答するためのプロセス
図6は、コンテンツページに対するユーザー装置からの要求に応答するためのプロセス600の実施形態を示す。中間システム30は、要求されたコンテンツの非プレビューバージョンを中間システム30が取得してユーザー装置32に伝送する間に表示され得るプレビューを提供するためのプロセス600を実行し得る。プロセス600はブロック602で開始し得、そこで、中間システム30はユーザー装置32からコンテンツ要求を受信する。実例として、コンテンツ要求は、コンテンツサイト34によってホストされるか、または提供されるコンテンツ項目に対する要求であり得る。
【0061】
ブロック604で、中間システム30は、もしあれば、どのプレビューがユーザー装置32に送信されるべきかを識別し得る。前述のように、中間システム30は、キャッシュ44内に利用可能なコンテンツ項目の以前に生成されたプレビューを有し得る。また前述のように、異なるプレビューが異なる装置または装置構成に対して生成され得る。中間システム30は、現在のユーザー装置32に対して、プレビューの適切なバージョンを見つけ得る。例えば、中間システム30は、要求しているユーザー装置32の画面解像度、画面の向き(例えば、縦または横)、ブラウザ50のレンダリング機能、および同様のものなどに関するデータを受信するか、またはアクセスし得る。キャッシュ44内で適切なプレビューが入手できない場合、中間システム30は、プロセス600を終了し得、続けて、要求されたコンテンツの非プレビューバージョンを対応するコンテンツサイト34から取得することにより、要求に対応し得る。
【0062】
いくつかの実施形態では、コンテンツサイト34または他のコンテンツプロバイダーは、特定のコンテンツページに対してプレビューが使用されないことを指定し得る。実例として、時間依存のコンテンツまたは迅速に変化するコンテンツ(例えば、株式市況ページ)、個人的なコンテンツ(例えば、銀行取引ページ)、またはユーザーが支払うと予期されるコンテンツに対しては、プレビューが使用されないことを指定するのが望ましいことがあり得る。いくつかの実施形態では、コンテンツサイト34または他のコンテンツソースは、プレビューは、それが廃棄または置換される前に、特定の期間だけ使用されることを指定し得る。実例として、かかる特徴は、項目がどれだけ長くキャッシュされ得るかを識別するために使用されるのと同様の方法で実装され得る。
【0063】
いくつかの実施形態では、コンテンツサイト34または他のコンテンツソースは、中間システム34によって生成されたプレビューではなく、特定のプレビューまたは介在ページもしくは画像が使用されることを指定し得る。実例として、コンテンツソースは、要求されたコンテンツが取得され、かつ/またはレンダリングされる間に、一時的な表示のためにユーザー装置32に提供されるオブジェクト(例えば、プレビュー画像または介在ページ)の位置または他の識別情報を指定する、タグまたは他のデータを、コンテンツ項目内に挿入し得る。特定の地理的領域または同様のものを対象とするページなどの、カスタマイズされた介在ページまたは一時的ページを提供するために、クッキーまたは他のユーザー識別情報が、コンテンツソースとともに中間システム30によって使用され得る。
【0064】
ブロック606で、中間システム30は、プレビューまたは他の一時的な項目をユーザー装置32に送信できる。ブロック608で、中間システム30は、要求されたコンテンツ項目の更新バージョンを対応するコンテンツサイト34または他のコンテンツソースから取得できる。いくつかの場合には、ブロック608は、ブロック602での要求の受信から、要求されたコンテンツの更新バージョンが取得される時までの間に経過する総時間を低減するために、ブロック604および/またはブロック606と並行して実行され得る。
【0065】
ブロック610で、中間システム30は、任意選択で、コンテンツ項目の更新バージョンが、ユーザー装置32に送信されたプレビューと異なるかどうか、および/またはどのくらい著しく異なるかを判断し得る。コンテンツの現在のバージョンが、ユーザー装置32に既に送信されているプレビューと同一であるか、または実質的に同一である場合、中間システム30は、非プレビューバージョンが送信されないと判断し得る。実例として、かかる判断は、コンテンツ項目が実質的に静的または非対話的で、非プレビューバージョンの提供がユーザーエクスペリエンスを向上しない場合、または送信されたプレビューがユーザーインタラクション機能(例えば、前述のように、画像マップ)を提供する場合に行われ得る。
【0066】
いくつかの実施形態では、中間システム30は、現在のバージョンの、プレビューバージョンと異なる部分のみを、ユーザー装置32への伝送のために、選択または生成し得る。例えば、中間システム30は、現在のバージョンのある画像が、プレビューバージョンの画像と異なると判断し得る。中間システム30は、それらの画像を、ユーザー装置32に送信される非プレビューバージョンに含めることができ、一方、変更されていない画像を除外する。いくつかの実施形態では、中間システム30は、広告の更新された画像を送信するのを控えるように構成され得る。
【0067】
別の例として、中間システム30は、とりわけ、前述のように、テキストオーバーレイがユーザー装置32に提供された場合に、プレビューバージョンのテキストを現在のバージョンのテキストと比較し得る。差がある場合、中間システム30は、更新されたテキストオーバーレイを提供し得る。そうでないか、またはテキストオーバーレイがプレビューバージョンに提供されなかった場合、中間システム30は、プレビューバージョンのどの部分を更新すべきかに関するデータ、現在のバージョンのHTMLファイルなどを提供し得る。
【0068】
ブロック612で、中間システム30は、更新バージョン、またはその部分を、要求しているユーザー装置32に伝送する。
【0069】
プレビューおよび非プレビューバージョンを表示するためのプロセス
図7は、コンテンツ項目を要求し、要求に応答して取得されるプレビューを表示するためのプロセス700の実施形態を示す。以下に続く説明は、プレビュー認識ブラウザ50によるプロセス700の実行に焦点を合わせているが、いくつかの実施形態では、非プレビュー認識ブラウザ、ニュースアプリケーション(例えば、Flipboard)などのモバイルアプリケーション、または同様のものなどの、他の構成要素がプロセス700を実行し得る。
【0070】
ブラウザ50は、要求されたコンテンツのプレビューを表示し、次いで要求されたコンテンツの非プレビューバージョンを表示するためのプロセス700を実行し得る。プロセス700は、ブロック702で開始し得、そこで、ユーザー装置32のブラウザ50または何らかの他の構成要素が、コンテンツ項目に対する要求を中間システム30に送信する。実例として、コンテンツ要求は、コンテンツサイト34によってホストされるか、または提供されるコンテンツ項目に対する要求であり得る。いくつかの実施形態では、ブラウザ50は、要求を中間システム30に送信するのではなく、むしろ、それを、例えば、前述のプロセスを使用して、プレビューを提供する第三者システムに送信し得る。かかる場合には、ブラウザ50は、プレビューバージョンに対する要求を第三者システムに送信し、その後、または並行して、コンテンツサイト34からの非プレビューバージョンを要求し得る。
【0071】
ブロック704で、ブラウザ50が、要求されたコンテンツ項目のプレビューバージョンを中間システム30から(または何らかの第三者システムから)取得し得る。前述のように、プレビューは、中間システム30によって、コンテンツサイト34によって、または何らかの他のエンティティによって生成されている可能性がある。
【0072】
ブロック706で、ブラウザ50は、プレビューを表示できる。ブロック708で、ブラウザ50は、プレビューとのユーザーインタラクションを処理できる。実例として、かかるインタラクションは、ズームおよびスクロール動作、中間システム30によりプレビューに追加して提供されたオブジェクト(例えば、テキストボックス)とのインタラクション、要求されたコンテンツ項目上のリンクに対応する画像マップ領域のアクティブ化、および同様のものを含み得る。
【0073】
判断ブロック710で、ブラウザ50は、要求されたコンテンツ項目の非プレビューバージョンが取得されていて、表示のために準備ができているかどうかを判断できる。そうである場合、プロセス700はブロック718に進むことができる。そうでなければ、プロセス700はブロック708に戻り得、そこで、ブラウザ50は、ユーザーインタラクションを処理できる。
【0074】
ブロック704〜708と並行して、またはそれらに続いて、ブラウザ50は、ブロック712で、要求されたコンテンツの非プレビューバージョンを中間システム30から取得し得る。いくつかの実施形態では、ブラウザ50は、ユーザー装置32の代わりに、非プレビューバージョンを取得するために、中間システム30を頼りにするのではなく、非プレビューバージョンを、コンテンツサイト34から、または何らかの他のソースから、直接取得するように構成され得る。
【0075】
ブロック714で、ブラウザ50は、ブロック712で取得した非プレビューバージョンをレンダリングできる。実例として、ブラウザ50は、プレビューバージョンとは別個のフレームバッファ内で非プレビューバージョンをレンダリングでき、次いでブラウザ50は、非プレビューバージョンが表示のために準備できている場合、ブロック718でフレームバッファをスワップできる。非プレビューバージョンがコンテンツ項目の一部のみを含む場合、ブラウザ50は、非プレビュー部分を表示のためにプレビューバージョンに適用できる。
【0076】
ブロック716で、ブラウザ50は、ブロック708でプレビューバージョンに関して処理された、任意のユーザーインタラクションを、非プレビューバージョンに適用できる。ブラウザ50は、ブロック718で、非プレビューバージョンの表示前に、それを行うことができる。このようにして、非プレビューバージョンがユーザーに表示される時、ユーザーエクスペリエンスは、コンテンツの表示における急な変化によって妨害または中断されない。例えば、ユーザーがプレビューをスクロールまたはズームしている場合、対応するスクロールおよび/またはズーム操作が、非プレビューバージョンの表示前に、非プレビューバージョンに関してシミュレートされ得る。
【0077】
スクリーンショットのないページプレビュー
いくつかの実施形態では、中間システム30は、任意のスクリーンショットを含むページプレビューを配信するように構成され得る。例えば、ページ要求をユーザー装置から受信すると、中間システム30は、(1)ページのキャッシュされたバージョンをプレビューとして、任意選択で、迅速配信およびレンダリングをサポートするための修正を加えて、返し、(2)実際のページを取得し、次いで、(3)実際のページがプレビューと異なる(または、著しく異なる)場合、実際のページを(修正して、または修正なしで)ブラウザに配信し得る。実際のページが配信されると、ブラウザ50は、前述のように、それをプレビューの代わりに表示するであろう。中間システム30は、このアプローチを全てのページに対して使用するか、またはページコンテンツの分析に基づきそれを選択的に使用するように構成され得る。スクリーンショットが含まれていない場合には、プレビューを生成するタスクは、例えば、スクリプトを除外すること、広告を除外すること、および/または埋込み画像の解像度を低減することを含み得る。
【0078】
いくつかの実施形態では、中間システム30は、コンテンツのスクリーンショット画像ではなく、コンテンツのビデオ表示または何らかの他の動的ビューであるプレビューコンテンツを、中間システム30によってレンダリングされるにつれて提供するように構成され得る。例えば、中間システム30は、ユーザー装置32と(例えば、リモート表示フィード(remote display feed)を伝送するためのリモートデスクトッププロトコルまたは何らかの他の方法もしくはプロトコルを使用して)リモートデスクトップセッションを確立し得る。コンテンツ項目が中間システム30によってレンダリングされている間に、ユーザーにはコンテンツがユーザー装置32でローカルにレンダリングされているように見えるように、ユーザー装置は、コンテンツのビデオフィードまたは他の動的ビューをそれがレンダリングされるにつれて受信し得る。ユーザー装置32がコンテンツを受信すると、ローカルバージョンが、中間システム30でコンテンツのビデオフィードを置き換え得る。
【0079】
システム実施態様および変形形態
中間システム30は、各々がプロセッサおよびメモリを含み得る、1つ以上の物理コンピューティング装置(物理サーバー、ストレージアレイ、ルーターなど)を含むコンピューティングシステムによって、またはコンピューティングシステム上で実装され得る。コンピューティングシステムは、いくつかの場合には、地理的に分散されているコンピューティング装置を含み得、その場合、開示されたサーバー側タスクの一部は、他からリモートで実行され得る。中間システム30の様々な関数が、コンピューティングシステムによって実行されるコードモジュールで具現化され得る。コードモジュールは、任意のタイプまたは複数のタイプの持続性コンピュータ記憶装置または媒体(磁気ディスク、ソリッドステートメモリ、光ドライブなど)上に永続的に格納され得る。中間システム30の開示されたプロセスの一部または全部が、代替として、カスタム設計されたASICまたはFPGAなどの、専用コンピュータハードウェアで部分的または全体的に具現化され得る。中間システム30の様々な構成要素および関数は、専用サーバーではなく、1つ以上の仮想マシンまたはクラウドリソースでも実装できる。ブラウザ50は、本明細書で説明するクライアント側関数を実装するためのコードを含む、任意のタイプの持続性記憶媒体上に格納された実行可能コードを含み得る。
【0080】
いくつかの実施形態では、中間システム30は省かれ得る。かかる実施形態では、ブラウザ50は、(1)実際のページをそのオリジンサーバーから要求/取得すること、および(2)ページのプレビューを別個のプレビューサーバーまたはシステムから要求/取得すること、を同時に行うように設計または構成され得る。ページプレビューが最初に到着する場合、ブラウザは、実際のページをバックグラウンドでロードしている間に、それを表示し得、次いで、実際のページが完全にロードされると、プレビューの代わりに実際のページを表示し得る。かかる実施形態では、プレビューサーバーまたはシステムは、本明細書で説明するのと同じ方法を使用して、プレビューを生成および配信し得る。プレビューサーバーは、様々なネットワーク位置(例えば、存在点)および地理的位置に配置され得、その場合、それらは、ユーザーによって見られる通り、応答時間を最小限にしようとするアルゴリズムに従い、ユーザー装置またはページ要求に静的または動的に割り当てられ得る。
【0081】
コンテンツ「ページ」のコンテキストで説明したが、本明細書で開示する方法は、他の文書およびコンテンツの単位にも適用可能である。例えば、開示する方法は、Word文書、スプレッドシートファイル、PDF文書、および様々な他のタイプの文書のプレビューを提供するために使用できる。
【0082】
結論
前述は、以下の付記項を考慮すると、より良く理解され得る。
【0083】
1.コンテンツプレビューを生成するためのコンピュータ実装方法であって、本コンピュータ実装方法は:1つ以上のコンピューティング装置を含むコンテンツプレビューシステムによって、コンテンツサイトからコンテンツページを取得することであって、コンテンツサイトがコンテンツプレビューシステムとは別個である、コンテンツサイトからコンテンツページを取得すること;ユーザー装置上に表示するためにプレビューコンテンツを生成することであって、プレビューコンテンツを生成することが、複数の画像の各画像がコンテンツページのそれぞれ異なる部分の表現を含む、複数の画像を少なくとも生成することを含む、プレビューコンテンツを生成すること;および続いて、ユーザー装置からのコンテンツページに対する要求に、複数の画像の1つ以上を配信することにより応答すること、を含む。
【0084】
2.コンテンツサイトから、コンテンツページの実質的に現在のバージョンを取得すること;およびユーザー装置に対して、コンテンツページの非プレビュー表現を配信することであって、非プレビュー表現が実質的に現在のバージョンに少なくとも一部基づく、コンテンツページの非プレビュー表現を配信すること、をさらに含む、付記項1に記載のコンピュータ実装方法。
【0085】
3.非プレビュー表現が、ユーザー装置からの第2の要求なしで、自動的に配信される、付記項2に記載のコンピュータ実装方法。
【0086】
4.複数の画像の少なくとも1つおよび、非プレビュー表現の少なくとも一部をユーザー装置に並行して配信することをさらに含む、付記項2に記載のコンピュータ実装方法。
【0087】
5.コンテンツページの複数のプレビューを生成することをさらに含み、複数のプレビューの各プレビューが、対象とするユーザー装置の1つ以上の特性に少なくとも一部基づく、付記項1に記載のコンピュータ実装方法。
【0088】
6.プレビューコンテンツを生成することが、コンテンツページを複数の部分に細分することをさらに含み、複数の画像の各画像が、複数の部分のそれぞれ異なる部分の表現を含む、付記項1に記載のコンピュータ実装方法。
【0089】
7.コンテンツページのどの部分がユーザー装置上に最初に表示されるか、対象とするユーザー装置の特性、または対象とするブラウザの特性、の少なくとも1つに少なくとも一部基づき、複数の画像を生成することをさらに含む、付記項1に記載のコンピュータ実装方法。
【0090】
8.広告がコンテンツページの特定の位置に存在するかどうかに少なくとも一部基づき、複数の画像を生成することをさらに含む、付記項1に記載のコンピュータ実装方法。
【0091】
9.コンテンツサイトからのデータに少なくとも一部基づき、複数の画像を生成することをさらに含む、付記項1に記載のコンピュータ実装方法。
【0092】
10.画像を含むコンテンツページの部分に対してのみ、複数の画像を生成することをさらに含む、付記項1に記載のコンピュータ実装方法。
【0093】
11.プレビューコンテンツが、コンテンツページのテキスト部分の非画像表現を含む、付記項10に記載のコンピュータ実装方法。
【0094】
12.複数の画像の少なくとも1つの画像が、コンテンツページの非画像コンテンツの画像表現を含む、付記項1に記載のコンピュータ実装方法。
【0095】
13.プレビューコンテンツが、コンテンツページの配置に少なくとも一部基づき配置データをさらに含む、付記項1に記載のコンピュータ実装方法。
【0096】
14.コンテンツサイトからコンテンツページを取得すること、およびスケジュールに従ってプレビューコンテンツを生成することをさらに含む、付記項1に記載のコンピュータ実装方法。
【0097】
15.第2のユーザー装置からの要求に応答して取得したコンテンツに少なくとも一部基づき、プレビューコンテンツを生成することをさらに含む、付記項1に記載のコンピュータ実装方法。
【0098】
16.コンテンツページに対する要求に応答して中間システムから、一時的な表示のためのプレビューコンテンツを受信することであって、プレビューコンテンツが、コンテンツページの部分に対応する複数の画像を含む、一時的な表示のためのプレビューコンテンツを受信すること;複数の画像の1つ以上を表示させること;要求されたコンテンツページの少なくとも一部の非プレビュー表現を、第2の要求を送信することなく、受信すること;および非プレビュー表現を、複数の画像の1つ以上の代わりに、自動的表示させること、を行うように構成されたコンピュータ実行可能ブラウザモジュールを含む、持続性コンピュータ可読媒体。
【0099】
17.プレビューコンテンツが、要求されたコンテンツページのテキスト部分の非画像表現をさらに含む、付記項16に記載の持続性コンピュータ可読媒体。
【0100】
18.非プレビュー表現が、要求されたコンテンツページのテキスト部分の非画像表現を含む、付記項17に記載の持続性コンピュータ可読媒体。
【0101】
19.実行可能ブラウザモジュールが、プレビューコンテンツとのユーザーインタラクションに応答して、複数の画像の追加の1つ以上を表示するようにさらに構成されている、付記項16に記載の持続性コンピュータ可読媒体。
【0102】
20.ブラウザモジュールが、非プレビュー表現を隠されたコンテンツペインにレンダリングするようにさらに構成されている、付記項16に記載の持続性コンピュータ可読媒体。
【0103】
21.非プレビュー表現を自動的に表示させることが、隠されたコンテンツペインを表示させることを含む、付記項16に記載の持続性コンピュータ可読媒体。
【0104】
22.非プレビューバージョンをレンダリングすることが、ユーザー入力データの少なくとも一部を、一時的な対話式コントロールから、非プレビューバージョンの対応するコントロールへコピーすることを含む、付記項16に記載の持続性コンピュータ可読媒体。
【0105】
23.ユーザー装置とコンテンツサイトとの間で仲介をするコンピュータシステムであって、本コンピュータシステムは、1つ以上のコンピューティング装置を含み、少なくとも:コンテンツサイトからコンテンツページを取得すること;ユーザー装置による一時的な表示ためにコンテンツページのプレビューを生成することであって、プレビューが:各画像がコンテンツページのそれぞれ異なる部分を表現する、複数の画像;ならびに複数の画像とは別個のマークアップコードファイルであって、複数の画像の第1の画像に対する要求を送信する第1の命令、およびコンテンツページに対するフォローアップ要求を送信する第2の命令を含むマークアップコードファイル、を含む、コンテンツページのプレビューを生成すること;ならびに複数のプレビュー画像をプレビューキャッシュに格納すること、を行うようにプログラミングされている。
【0106】
24.複数のプレビュー画像をプレビューキャッシュ内に格納することに続いて、コンテンツページに対する要求を受信することであって、要求がユーザー装置から受信される、コンテンツページに対する要求を受信すること;および要求がフォローアップ要求でないと判断すると、マークアップコードファイルをユーザー装置に送信すること、を行うようにさらにプログラミングされている、付記項23に記載のコンピュータシステム。
【0107】
25.ユーザーコンピューティング装置から、コンテンツページに対する要求を受信すること;および要求がフォローアップ要求であると判断すると、コンテンツページの非プレビューバージョンを送信すること、を行うようにさらにプログラミングされている、付記項23に記載のコンピュータシステム。
【0108】
26.コンテンツページの複数のプレビューを生成するようにさらにプログラミングされており、複数のプレビューの各プレビューが、ユーザー装置の1つ以上の特性に少なくとも一部基づく、付記項23に記載のコンピュータシステム。
【0109】
27.コンテンツページのどの部分がユーザー装置上に最初に表示されるかの判断に少なくとも一部基づき、複数の画像を生成するようにさらにプログラミングされている、付記項23に記載のコンピュータシステム。
【0110】
前述は、以下の付記項の観点からも、より良く理解され得る。
【0111】
1.ユーザー装置とコンテンツサイトとの間で仲介をするコンピュータシステムであって、本コンピュータシステムは、1つ以上のコンピューティング装置を含み、少なくとも:コンテンツサイトからコンテンツページを取得すること;コンテンツページのプレビューを生成することであって、コンテンツページのプレビューが:コンテンツページの少なくとも一部の画像;ならびに画像に対する要求を送信する第1の命令およびコンテンツページに対するフォローアップ要求を送信する第2の命令を含むマークアップコード、を含む、コンテンツページのプレビューを生成すること;コンテンツページに対するユーザー装置からの要求に応答して:要求がフォローアップ要求でないと判断すると、マークアップコードをユーザー装置に送信すること;ならびに要求がフォローアップ要求であると判断すると、コンテンツページの非プレビューバージョンをユーザー装置に送信すること、を行うようにプログラミングされている。
【0112】
2.コンテンツページのプレビューを、ユーザー装置のディスプレイ特性に少なくとも一部基づき生成するようにさらにプログラミングされている、付記項1に記載のコンピュータシステム。
【0113】
3.マークアップコードが画像マップを含む、付記項1に記載のコンピュータシステム。
【0114】
4.画像マップが画像のクリック可能領域を定義し、クリック可能領域がコンテンツページ上のリンクに対応する、付記項3に記載のコンピュータシステム。
【0115】
5.マークアップコードが、コンテナ要素に対するソースとしてコンテンツページを参照する、付記項1に記載のコンピュータシステム。
【0116】
6.フォローアップ要求が、コンテンツページに対するURLを含み、URLは、URLがフォローアップ要求と関連付けられていることを示すクエリー文字列を含む、付記項1に記載のコンピュータシステム。
【0117】
7.ユーザー装置とコンテンツサイトとの間で仲介をするコンピュータシステムであって、本コンピュータシステムは、1つ以上のコンピューティング装置を含み、また、コンテンツサイトのページを取得すること;取得したページのプレビューを生成して、そのプレビューをコンピュータシステムのキャッシュ内に格納すること;およびその後、ユーザー装置からのページに対する要求に、少なくとも:ページの非プレビュー表現がユーザー装置上でロードされている間にユーザーがページコンテンツを提示されるように、ページのプレビューを、ユーザー装置上に一時的に表示するためにユーザー装置に配信すること;およびページの非プレビュー表現を配信することであって、前記非プレビュー表現が、ページに対する要求に応答してコンピュータシステムによって取得されたページコンテンツに基づく、ページの非プレビュー表現を配信すること、により、応答すること;を含むプロセスを実行するようにプログラミングされている。
【0118】
8.プレビューが、ページの少なくとも1つの部分のスクリーンショットを含む、付記項7に記載のコンピュータシステム。
【0119】
9.プレビューが、複数の画像を含み、各画像が、ページの一部分の表現を含む、付記項7に記載のコンピュータシステム。
【0120】
10.プレビューが、ページのテキスト部分の非画像表現を含む、付記項7に記載のコンピュータシステム。
【0121】
11.プレビューが、画像マップを含む、付記項7に記載のコンピュータシステム。
【0122】
12.プレビューが、ページに関する配置データを含む、付記項7に記載のコンピュータシステム。
【0123】
13.非プレビュー表現が、コンテンツサーバーから取得されたページの現在のバージョンを含む、付記項7に記載のコンピュータシステム。
【0124】
14.非プレビュー表現が、ページの少なくとも一部のキャッシュされたバージョンを含む、付記項7に記載のコンピュータシステム。
【0125】
15.非プレビュー表現が、ページのプレビューと現在のバージョンとの間の差に少なくとも一部基づく、付記項7に記載のコンピュータシステム。
【0126】
16.コンテンツサイトからページを取得すること、およびスケジュールに従ってページのプレビューを生成することを含むプロセスを実行するようにさらにプログラミングされている、付記項7に記載のコンピュータシステム。
【0127】
17.対象とするユーザー装置の特性に少なくとも一部基づき、ページのプレビューを生成することを含む、プロセスを実行するようにさらにプログラミングされている、付記項7に記載のコンピュータシステム。
【0128】
18.特性が、ディスプレイサイズまたはディスプレイ解像度の1つを含む、付記項17に記載のコンピュータシステム。
【0129】
19.第2のユーザー装置からの要求に応答して取得したコンテンツに少なくとも一部基づき、ページのプレビューを生成することを含む、プロセスを実行するようにさらにプログラミングされている、付記項7に記載のコンピュータシステム。
【0130】
20.プレビューおよび非プレビュー表現をユーザー装置に並行して配信することを含む、プロセスを実行するようにさらにプログラミングされている、付記項7に記載のコンピュータシステム。
【0131】
21.コンテンツページを要求するためのコンピュータ実装方法であって、本コンピュータ実装方法は:コンテンツページに対する要求に応答して中間システムから、要求されたコンテンツページのプレビューを受信することであって、プレビューが、要求されたコンテンツページの少なくとも一部の画像を含む、要求されたコンテンツページのプレビューを受信すること;プレビューを表示させること;プレビューを表示させることに続いて、要求されたコンテンツページを、中間システムから受信すること;および要求されたコンテンツページをプレビューの代わりに自動的に表示させること、を含む。
【0132】
22.プレビューが複数の画像を含み、複数の画像の各画像が、要求されたコンテンツページの別個の部分に対応する、付記項21に記載のコンピュータ実装方法。
【0133】
23.プレビューが、画像を参照するマークアップコードを含む、付記項21に記載のコンピュータ実装方法。
【0134】
24.プレビューが、画像マップをさらに含む、付記項23に記載のコンピュータ実装方法。
【0135】
25.画像マップが画像のクリック可能領域を定義し、クリック可能領域が要求されたコンテンツページ上のリンクに対応する、付記項24に記載のコンピュータ実装方法。
【0136】
26.プレビューが、コンテナ要素に対するソースとして要求されたコンテンツページを参照する、マークアップコードを含む、付記項21に記載のコンピュータ実装方法。
【0137】
27.要求されたコンテンツページを表示させることが、コンテナ要素を表示させることを含む、付記項26に記載のコンピュータ実装方法。
【0138】
28.要求されたコンテンツページを隠されたコンテンツペインにレンダリングすることをさらに含む、付記項21に記載のコンピュータ実装方法。
【0139】
29.要求されたコンテンツページを表示させることが、隠されたコンテンツペインを表示させることを含む、付記項28に記載のコンピュータ実装方法。
【0140】
前述は、以下の付記項の観点からも、より良く理解され得る。
【0141】
1.ユーザー装置とコンテンツサイトとの間で仲介をするコンピュータシステムであって、本コンピュータシステムは、1つ以上のコンピューティング装置を含み、少なくとも:コンテンツサイトによってホストされるコンテンツページに対する要求を、ユーザー装置から受信すること;コンテンツページの非プレビューバージョンがユーザー装置上でロードされている間にユーザーがページコンテンツを提示されるように、コンテンツページのプレビューバージョンを、ユーザー装置上に一時的に表示するためにユーザー装置に配信すること;コンテンツページの実質的に現在のバージョンをコンテンツサイトから取得すること;コンテンツページのプレビューバージョンと実質的に現在のバージョンとの間の差の分析に少なくとも一部基づき、コンテンツページのプレビューバージョンと実質的に現在のバージョンとの間の差の表現を生成すること;およびその差の表現をユーザー装置に配信すること、を行うようにプログラミングされている。
【0142】
2.差の表現が、1つ以上の画像を含み、各画像が、プレビューバージョンの対応する部分と異なる実質的に現在のバージョンの部分の表現を含む、付記項1に記載のコンピュータシステム。
【0143】
3.差の表現が、プレビューバージョンの対応する部分と異なるテキストコンテンツの部分を含む、付記項1に記載のコンピュータシステム。
【0144】
4.プレビューバージョンが、コンテンツページの少なくとも一部のスクリーンショット画像を含む、付記項1に記載のコンピュータシステム。
【0145】
5.コンテンツ要求に応答するためのコンピュータ実装方法であって、本コンピュータ実装方法は:1つ以上のコンピューティング装置を含むコンテンツプレビューシステムによって、コンテンツプレビューシステムとは異なるコンテンツサイトによってホストされるコンテンツページに対する要求を受信することであって、要求がユーザー装置から受信される、コンテンツページに対する要求を受信すること;要求に応答して:コンテンツページのプレビューバージョンをユーザー装置に配信すること;コンテンツページのプレビューバージョンと実質的に現在のバージョンとの間の差の分析に少なくとも一部基づき、プレビュー更新を生成すること;およびそのプレビュー更新をユーザー装置に配信すること、を含む。
【0146】
6.ユーザー装置と関連付けられた構成設定に少なくとも一部基づき、プレビュー更新を生成することを判断することをさらに含む、付記項5に記載のコンピュータ実装方法。
【0147】
7.ユーザー装置がプレビューコンテンツのみを要求するのを可能にすることをさらに含む、付記項5に記載のコンピュータ実装方法。
【0148】
8.コンテンツページの実質的に現在のバージョンを、コンテンツサイトまたはコンテンツキャッシュのうちの1つから取得することをさらに含む、付記項5に記載のコンピュータ実装方法。
【0149】
9.プレビューバージョンをコンテンツキャッシュから取得することをさらに含む、付記項5に記載のコンピュータ実装方法。
【0150】
10.要求をユーザー装置から受信する前に、プレビューバージョンを生成することをさらに含む、付記項5に記載のコンピュータ実装方法。
【0151】
11.プレビューバージョンが、1つ以上のプレビュー画像を含み、各プレビュー画像がコンテンツページの少なくとも一部の表現を含む、付記項5に記載のコンピュータ実装方法。
【0152】
12.プレビュー更新が、置換画像を含み、置換画像が、プレビュー画像によって表される部分の位置に対応する、実質的に現在のコンテンツページの一部の表現を含む、付記項11に記載のコンピュータ実装方法。
【0153】
13.プレビュー更新を生成することが、特定の位置に対応するプレビュー画像が、ユーザー装置の特性に基づいて生成されたかどうかに少なくとも一部基づき、コンテンツページの特定の部分の置換画像を含むかどうかを判断することを含む、付記項11に記載のコンピュータ実装方法。
【0154】
14.プレビュー更新を生成することが、特定の位置が広告と関連付けられているかどうかに少なくとも一部基づき、コンテンツページの特定の位置の置換画像を含むかどうかを判断することを含む、付記項11に記載のコンピュータ実装方法。
【0155】
15.プレビューバージョンが、コンテンツページの第1のテキスト部分に対応するプレビューテキストコンテンツを含む、付記項5に記載のコンピュータ実装方法。
【0156】
16.プレビュー更新が、置換テキストコンテンツを含み、置換テキストコンテンツがコンテンツページの第1のテキスト部分に対応する、付記項15に記載のコンピュータ実装方法。
【0157】
17.プレビュー更新が、ユーザー装置からのフォローアップ要求を受信することなく、配信される、付記項5に記載のコンピュータ実装方法。
【0158】
18.プレビューバージョンの少なくとも一部およびプレビュー更新の少なくとも一部を並行して配信することをさらに含む、付記項5に記載のコンピュータ実装方法。
【0159】
19.プレビュー更新をユーザー装置に提供するかどうかを判断することをさらに含む、付記項5に記載のコンピュータ実装方法。
【0160】
20.プレビュー更新を提供するかどうかを判断することが:ユーザー装置に対するネットワーク接続の特性、ユーザー装置と関連付けられた利用可能なコンピューティング資源、またはユーザー装置と関連付けられたユーザー選択可能な構成選択肢の1つに少なくとも一部基づく、付記項19に記載のコンピュータ実装方法。
【0161】
21.少なくとも:コンテンツページに対する要求に応答して中間システムから、コンテンツページのプレビュー表現を受信すること;プレビュー表現を表示させること;第2の要求を送信することなくプレビュー更新を受信することであって、プレビュー更新がプレビュー表現の第1の部分に対応する更新された部分を含む、プレビュー更新を受信すること;およびプレビュー表現の少なくとも一部が表示されたまま、プレビュー更新を自動的に表示させること、を行うように構成されたコンピュータ実行可能ブラウザモジュールを含む、持続性コンピュータ可読媒体。
【0162】
22.ブラウザモジュールが、プレビュー更新を受信するかどうかに関してユーザー選択可能構成選択肢を提供するようにさらに構成されている、付記項21に記載の持続性コンピュータ可読媒体。
【0163】
23.プレビュー更新を自動的に表示させることが、プレビュー表現の第1の部分の表示を、プレビュー更新の対応する更新部分と置き換えることを含む、付記項21に記載の持続性コンピュータ可読媒体。
【0164】
24.プレビュー更新が、コンテンツページのプレビュー表現と実質的に現在のバージョンとの間の差の比較に少なくとも一部基づく、付記項21に記載の持続性コンピュータ可読媒体。
【0165】
25.プレビュー表現が、ブラウザモジュールの特性に対して生成された第2の部分を含み、第2の部分が、プレビュー更新を自動的に表示させた後に表示されたままである、付記項21に記載の持続性コンピュータ可読媒体。
【0166】
26.プレビュー表現の第1の部分が、中間システムでレンダリングされたコンテンツの画像、テキスト、または動的ビューの1つを含む、付記項21に記載の持続性コンピュータ可読媒体。
【0167】
前述は、以下の付記項の観点からも、より良く理解され得る。
【0168】
1.1つ以上のコンピューティング装置を含むコンピュータシステムであって、少なくとも:ユーザー装置から、1つ以上のコンピューティング装置とは別個の、コンテンツソースによってホストされるコンテンツ項目に対する要求を受信すること;ユーザー装置に送信すべきコンテンツ項目のプレビューバージョンを識別すること;ユーザー装置に対して、識別されたプレビューバージョンを送信すること;コンテンツソースから、コンテンツ項目の実質的に現在のバージョンを取得すること;および、ユーザー装置に対して、コンテンツ項目の非プレビューバージョンを送信することであって、非プレビューバージョンが実質的に現在のバージョンに少なくとも一部基づき、非プレビューバージョンが、非プレビューバージョンに対するユーザー装置からの後続の要求を受信することなく、送信される、コンテンツ項目の非プレビューバージョンを送信すること、を行うように構成された1つ以上のコンピューティング装置を含むコンピュータシステム。
【0169】
2.コンテンツ項目の実質的に現在のバージョンが、要求しているユーザー装置に提供されるプレビューコンテンツを参照し、識別されたプレビューバージョンが参照されたプレビューコンテンツを含む、付記項1に記載のコンピュータシステム。
【0170】
3.1つ以上のコンピューティング装置が:コンテンツ項目をプリフェッチすること;ならびにコンテンツ項目の少なくとも一部の画像を含む、コンテンツ項目の第1のプレビューバージョンを生成および格納すること、を行うようにさらに構成されており;識別されたプレビューバージョンが第1のプレビューバージョンを含む、付記項1に記載のコンピュータシステム。
【0171】
4.1つ以上のコンピューティング装置が、ユーザー装置と関連付けられた特性に少なくとも一部基づき画像を生成するようにさらに構成されている、付記項3に記載のコンピュータシステム。
【0172】
5.非プレビューバージョンの伝送が、識別されたプレビューバージョンの少なくとも一部の伝送と重なり合う、付記項1に記載のコンピュータシステム。
【0173】
6.コンテンツ要求に応答するためのコンピュータ実装方法であって、本コンピュータ実装方法は:1つ以上のコンピューティング装置を含むコンテンツプレビューシステムにより、コンテンツプレビューシステムとは別個のコンテンツソースによってホストされるコンテンツページに対する要求を受信することであって、要求がユーザー装置から受信される、コンテンツページに対する要求を受信すること;ユーザー装置に対して、プレビューコンテンツを一時的な表示のために送信することであって、プレビューコンテンツがコンテンツページと関連付けられ、プレビューコンテンツが、コンテンツページと関連付けられたロード特性を改善するように修正される、プレビューコンテンツを一時的な表示のために送信すること;コンテンツソースから、コンテンツページの実質的に現在のバージョンを取得すること;およびユーザー装置に対して、実質的に現在のバージョンに少なくとも一部基づく、コンテンツページの非プレビューバージョンを送信すること、を含む。
【0174】
7.ロード特性が:待ち時間、帯域幅利用、サイズ、レンダリング時間、またはユーザー認識ロード時間の少なくとも1つを含む、付記項6に記載のコンピュータ実装方法。
【0175】
8.コンテンツソースからのデータに少なくとも一部基づくプレビューコンテンツを、コンテンツプレビューシステムによって識別することをさらに含む、付記項6に記載のコンピュータ実装方法。
【0176】
9.コンテンツページの実質的に現在のバージョンが、要求しているユーザー装置に提供されるプレビューコンテンツを参照する、付記項8に記載のコンピュータ実装方法。
【0177】
10.参照されるプレビューコンテンツが:コンテンツソースによってホストされるプレビュー画像、またはコンテンツソースによってホストされる介在ページの1つを含む、付記項9に記載のコンピュータ実装方法。
【0178】
11.コンテンツページと関連付けられた複数のプレビューコンテンツ項目からプレビューコンテンツを、コンテンツプレビューシステムによって選択することをさらに含み、選択することが、ユーザー装置の特性に少なくとも一部基づく、付記項6に記載のコンピュータ実装方法。
【0179】
12.コンテンツページをコンテンツソースからプリフェッチすること;ならびにコンテンツページの少なくとも一部の画像を含む、第1のプレビューコンテンツ項目を生成および格納すること、をさらに含む、付記項6に記載のコンピュータ実装方法。
【0180】
13.ユーザー装置と関連付けられた特性に少なくとも一部基づき画像を生成することをさらに含む、付記項12に記載のコンピュータ実装方法。
【0181】
14.第1のプレビューコンテンツ項目が、コンテンツページの対話式コントロールに対応する一時的な対話式コントロールに関するデータをさらに含む、付記項12に記載のコンピュータ実装方法。
【0182】
15.第1のプレビューコンテンツ項目が、コンテンツページの配置に少なくとも一部基づくプレビュー配置データをさらに含む、付記項12に記載のコンピュータ実装方法。
【0183】
16.ユーザー装置からの要求に応答して、プレビューコンテンツを生成することをさらに含む、付記項6に記載のコンピュータ実装方法。
【0184】
17.プレビューコンテンツが、コンテンツプレビューシステムによってレンダリングされているコンテンツページのバージョンの動的表示を含む、付記項6に記載のコンピュータ実装方法。
【0185】
18.コンテンツページのプレビューコンテンツと実質的に現在のバージョンとの間の差を識別すること;コンテンツページの非プレビューバージョンを生成することであって、非プレビューバージョンの少なくとも一部が差に基づく、コンテンツページの非プレビューバージョンを生成すること、をさらに含む、付記項6に記載のコンピュータ実装方法。
【0186】
19.コンテンツページに対する第1の要求に応答して中間システムから、一時的な表示のためのプレビューコンテンツを受信すること;プレビューコンテンツを表示させること;要求されたコンテンツページの非プレビューバージョンの少なくとも一部を、第2の要求を送信することなく、受信すること;および非プレビューバージョンを、プレビューコンテンツの代わりに、自動的表示させること、を行うように構成されたコンピュータ実行可能ブラウザモジュールを含む、持続性コンピュータ可読媒体。
【0187】
20.プレビューコンテンツが要求コンテンツページの画像を含む、付記項19に記載の持続性コンピュータ可読媒体。
【0188】
21.プレビューコンテンツが複数の画像を含み、複数の画像の各画像が、要求されたコンテンツページの別個の部分に対応する、付記項19に記載の持続性コンピュータ可読媒体。
【0189】
22.ブラウザモジュールが、非プレビューバージョンを隠された表示ペインにレンダリングするようにさらに構成されている、付記項19に記載の持続性コンピュータ可読媒体。
【0190】
23.非プレビューバージョンを自動的表示させることが、プレビューコンテンツを表示している表示ペインを隠された表示ペインと置き換えることを含む、付記項19に記載の持続性コンピュータ可読媒体。
【0191】
24.非プレビューバージョンをレンダリングすることが、1つ以上のユーザーインタラクションを非プレビュー項目に適用することを含む、付記項19に記載の持続性コンピュータ可読媒体。
【0192】
25.プレビューコンテンツが一時的な対話式コントロールに関するデータを含む、付記項19に記載の持続性コンピュータ可読媒体。
【0193】
26.非プレビューバージョンをレンダリングすることが、ユーザー入力データの少なくとも一部を、一時的な対話式コントロールから非プレビューバージョンの対応するコントロールへコピーすることを含む、付記項25に記載の持続性コンピュータ可読媒体。
【0194】
27.プレビューコンテンツが、要求されたコンテンツページと関連付けられた配置データを含む、付記項19に記載の持続性コンピュータ可読媒体。
【0195】
28.ブラウザモジュールが、1つ以上のユーザーインタラクションを、配置データに少なくとも一部基づき処理するようにさらに構成されている、付記項27に記載の持続性コンピュータ可読媒体。
【0196】
実施形態に応じて、本明細書で説明するプロセスまたはアルゴリズムのいずれのある動作、イベント、または関数も、異なる順序で実行でき、追加、統合、または完全に除外することができる(例えば、説明した動作またはイベントの全てが必ずしもアルゴリズムの実施には必要ない)。その上、ある実施形態では、動作またはイベントは、連続してではなく、例えば、マルチスレッド処理、割込み処理、またはマルチプロセッサもしくはプロセッサコアを通して、または他の並列アーキテクチャ上で、同時に実行できる。
【0197】
本明細書で開示する実施形態に関連して説明した、様々な例示的な論理ブロック、モジュール、ルーチンおよびアルゴリズムのステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装できる。ハードウェアおよびソフトウェアのこの互換性を明瞭に示すために、様々な例示的な構成要素、ブロック、モジュールおよびステップが、概ね、それらの機能性の観点から上で説明されている。かかる機能がハードウェアまたはソフトウェアとして実装されるかどうかは、特定の用途およびシステム全体に課される設計制約によって決まる。説明する機能は、各特定の用途に対して様々な方法で実装できるが、かかる実装判断は、本開示の範囲からの逸脱を引き起こすとして解釈されるべきではない。
【0198】
本明細書で開示する実施形態に関連して説明した方法、プロセス、ルーチン、またはアルゴリズムのステップは、直接ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、または2つの組合せで具現化できる。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、取外し可能ディスク、CD−ROM、または任意の他の形式の持続性コンピュータ可読記憶媒体に常駐できる。例示的な記憶媒体は、プロセッサが、記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合できる。代替では、記憶媒体は、プロセッサと統合できる。プロセッサおよび記憶媒体は、ASIC内に常駐できる。ASICはユーザー端末内に常駐できる。代替では、プロセッサおよび記憶媒体は、ユーザー端末内の別個の構成要素として常駐できる。
【0199】
本明細書では、とりわけ「できる(can)」、「でき得る(could)」、「かもしれない(might)」、「し得る(may)」、「例えば(e.g.)」および同様のものなどの条件語句は、別段の指示がないか、または使用されるコンテキスト内で別なふうに理解されない限り、一般に、ある実施形態は、他の実施形態が含まない一方で、ある特徴、要素および/またはステップを含むことを伝えることを意図する。従って、かかる条件語句は、一般に、特徴、要素および/またはステップが、1つ以上の実施形態に対して多少なりとも必要であることも、1つ以上の実施形態が、著者入力もしくはプロンプティングの有無にかかわらず、これらの特徴、要素および/もしくはステップが含まれているか、または任意の特定の実施形態で実行されるかどうかを判断するための論理を必ず含むことも意味することを意図しない。用語「含む(comprising)」、「含む(including)」、「有する(having)」、および同様のものは、同義語であり、制約のない方法で、包括的に使用され、追加の要素、特徴、動作、操作などを除外しない。また、用語「または(or)」は、例えば、要素のリストを接続するために、使用される場合に、用語「または」が、そのリスト内の1つ、一部、または全部の要素を意味するように、その包括的意味で(その排他的な意味ではなく)使用される。
【0200】
句「X、YおよびZの少なくとも1つ」などの接続語句は、特に指定のない限り、一般に、項目、用語などがX、YもしくはZ、またはそれらの組合せのいずれかであり得ることを伝えるために使用されるようなコンテキストで理解されるべきである。従って、かかる接続語句は、一般に、ある実施形態は、Xの少なくとも1つ、Yの少なくとも1つおよびZの少なくとも1つがそれぞれ存在することを必要とすることを意味することを意図しない。
【0201】
前述の詳細な説明は、新しい特徴が様々な実施形態に適用されるとして示し、説明し指摘しているが、例示した装置またはアルゴリズムの形式および詳細における、様々な省略、置換および変更が、本開示の精神から逸脱することなく、行われ得ることが理解できる。認識され得るように、いくつかの特徴は他とは別々に使用できるか、または実施できるので、本明細書で説明する本発明のある実施形態は、本明細書で明記する特徴および利益の全ては提供しない形で具現化できる。本明細書で開示するある発明の範囲は、前述の説明によってではなく、添付の請求項によって示される。請求項の均等の意味および範囲内に入る全ての変更は、それらの範囲内に包含される。