(57)【要約】最少ダウンロードおよびシミュレートされたページ・ナビゲーション機構を利用するクライアント計算アーキテクチャーを提供する。クライアント・コンピューターは、デルタ・データーを含むペイロードを、電子ページに対するナビゲーション要求に応答して受信することができる。クライアント・コンピューターは、更に、電子ページに対するデルタ・データーを解析し、受信したデルタ・データーに基づいて電子ページに対するページ内容を更新し、１つ以上のエラーが電子ページに対するページ・ロード・プロセスに関連するか否か判定し、ユニフォーム・リソース・ロケーター（ＵＲＬ）の断片識別子部分を管理して、電子ページのナビゲーションにおける現在の位置を追跡し、最少ダウンロード戦略ナビゲーションを確保するために１つ以上のナビゲーション・クリック・イベントを傍受することができる。【選択図】図１
2015510632.tif 000002
【特許請求の範囲】
【請求項１】
クライアント・コンピューターであって、
実行可能プログラム・コードを格納するためのメモリーと、
前記メモリーに機能的に結合されたプロセッサーであって、前記プログラム・コードに含まれるコンピューター実行可能命令に応答し、
電子ページに対するナビゲーション要求に応答して、デルタ・データーを含むペイロードを受信し、
前記電子ページの前記デルタ・データーを解析し、
前記受信したデルタ・データーに基づいて、前記電子ページのページ内容を更新し、
１つ以上のエラーが、前記電子ページのページ・ロード・プロセスに関連するか否か判定し、
前記電子ページのナビゲーションにおいて現在の位置を追跡するために、ユニフォーム・リソース・ロケーター（ＵＲＬ）の断片識別子部分を管理する、
ように動作する、プロセッサーと、
を含む、クライアント・コンピューター。
【請求項２】
請求項１記載のクライアント・コンピューターにおいて、前記プロセッサーが、更に、最少ダウンロード戦略ナビゲーションを確保するために１つ以上のナビゲーション・クリック・イベントを傍受するように動作する、クライアント・コンピューター。
【請求項３】
請求項１記載のクライアント・コンピューターにおいて、前記プロセッサーが、更に、
アンロード・イベントを始動させ、以前の電子ページにおける制御手段が前記アンロード・イベントを扱うことを可能にし、
前記電子ページのＵＲＬを一致させるために、前記ＵＲＬの断片識別子部分を更新する、
ように動作する、クライアント・コンピューター。
【請求項４】
請求項１記載のクライアント・コンピューターにおいて、前記プロセッサーが、前記受信したデルタ・データーに基づいて前記電子ページのページ内容を更新するときに、前記電子ページのページ状態を、全ページ・ロードから戻される電子ページのそれと照合するように動作する、クライアント・コンピューター。
【請求項５】
請求項４記載のクライアント・コンピューターにおいて、前記プロセッサーが、更に、
アンロード・イベントを起こし、
以前の電子ページから、前記アンロード・イベントから適正にクリアされなかったエレメントを処分し、
必要とされないスタイルシート・リンクおよびスタイル・ブロックを除去し、
フォームにおける入力エレメントをクリアし、
スクリプト・タイムアウトおよびスクリプト間隔を取り消し、
新たな電子ページに対するスクリプト・イベントをクリアし、
メモリー内オブジェクトをクリアしてベースライン電子ページの初期状態にし、
スクリプト・ファイルにおけるスクリプト・ファイル・オブジェクトを初期状態に更新し、
新たなスタイルシートおよび新たなスタイル・ブロックを追加し、
更新されたマークアップを前記電子ページ上の更新可能領域に挿入し、
新たなスクリプト・ファイル参照を前記電子ページに追加し、
前記スクリプト・ファイルが前記電子ページにロードされた順序で、前記スクリプト・ファイルの各々において初期化関数をコールし、
インライン・スクリプト・ブロックを挿入し、
前記スクリプト・ファイル・オブジェクトにおいてロード・イベントの始動をシミュレートし、
前記電子ページにおける前記ロード・イベントの始動をシミュレートする、
ように動作する、クライアント・コンピューター。
【請求項６】
請求項１記載のクライアント・コンピューターにおいて、前記プロセッサーが、１つ以上のエラーがページ・ロード・プロセスに関連すると判定したことに応答して、
前記電子ページに関連するベースライン電子ページをロードし直し、
前記電子ページに対するナビゲーションを実行し直す、
ように動作する、クライアント・コンピューター。
【請求項７】
請求項１記載のクライアント・コンピューターにおいて、前記プロセッサーが、１つ以上のエラーがページ・ロード・プロセスに関連すると判定したことに応答して、前記ナビゲーション要求に応答して、前記ナビゲーションの要求を、前記電子ページに以前に関連していたベースライン電子ページとは異なるベースライン電子ページにリディレクトするように動作する、クライアント・コンピューター。
【請求項８】
請求項１記載のクライアント・コンピューターにおいて、前記プロセッサーが、１つ以上のエラーがページ・ロード・プロセスに関連すると判断したことに応答して、前記ナビゲーション要求に応答して、完全にレンダリングされた電子ページをリディレクトするように動作する、クライアント・コンピューター。
【請求項９】
方法であって、
クライアント計算デバイスによって、電子ページに対するナビゲーション要求に応答して、デルタ・データーを含むペイロードを受信するステップと、
前記クライアント計算デバイスによって、前記電子ページの前記デルタ・データーを解析するステップと、
前記クライアント計算デバイスによって、前記受信したデルタ・データーに基づいて、前記電子ページのページ・コンテンツを更新するステップと、
前記クライアント計算デバイスによって、１つ以上のエラーが前記電子ページのページ・ロード・プロセスに関連するか否か判定するステップと、
前記クライアント計算デバイスによって、前記電子ページのナビゲーションにおいて現在の位置を追跡するために、ユニフォーム・リソース・ロケーター（ＵＲＬ）のハッシュ部分を管理するステップと、
前記クライアント計算デバイスによって、最少ダウンロード戦略ナビゲーションを確保するために、１つ以上のナビゲーション・クリック・イベントを傍受するステップと、
を含む、方法。
【請求項１０】
請求項９記載の方法であって、更に、
アンロード・イベントを始動させ、以前の電子ページにおける制御手段が前記アンロード・イベントを扱うことを可能にするステップと、
前記電子ページのＵＲＬに一致させるために、前記ＵＲＬの前記ハッシュ部分を更新するステップと、
を含む、方法。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  計算時代(computing age)は、消費者の知識ベースに劇的な影響を与え、一方、デバイスおよびアプリケーション提供業者に、ユーザーに使いやすく豊富なアプリケーション機能を提供するように要求する。コラボレーションまたはコンテンツ管理システムは、部分的に複数のユーザーに提供されるアクセスおよび管理能力、豊富なカスタム化選択肢、および軽量コラボレーション環境のために、考えや情報を共有する自然な場所を提供する。しかしながら、一般的な問題は、サーバー・コンピューターからクライアント・コンピューターにウェブ・ページ・ナビゲーション動作の間に送られるデーター量を低減することに関する。１つの解決策は、従前からのウェブ・ページ・ナビゲーションを利用し、データー圧縮を採用する。この解決策に伴う欠点は、データー圧縮が十分に役立たないことである。即ち、クライアント・コンピューターが従前からのウェブ・ページ・ナビゲーションを実行するためにかかる時間は、サーバー・コンピューターからクライアント・コンピューターにネットワークを介して送られるデーターが圧縮される（したがって、小さくなる）という事実にも関わらず、非常に長い。他の解決策では、非ナビゲーション動作（即ち、「ＡＪＡＸ」）を利用し、クライアント・コンピューターが具体的なデーター変化を要求しなくてはならない。この解決策に伴う欠点は、ａ）ウェブ・ページの完全な書き直しが必要となること、ｂ）ページの各部分が別々に更新する場合があり、非常に費用がかかり非効率的になる可能性があること、ｃ）「戻る」ボタンおよび「進む」ボタンまたは他のナビゲーション機構が予期される通りに動作しないように、ページの変化がブラウザー履歴に記録されないことである。
【発明の概要】
【０００２】
[0002]  この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を判断するときに補助として使用されることを意図するのでもない。
【０００３】
[0003]  最少ダウンロードおよびシミュレートされたページ・ナビゲーション機構を利用するクライアント計算アーキテクチャーを提供する。クライアント・コンピューターは、デルタ・データーを含むペイロードを、電子ページに対するナビゲーション要求に応答して受信することができる。クライアント・コンピューターは、更に、電子ページに対するデルタ・データーを解析し、受信したデルタ・データーに基づいて電子ページに対するページ内容を更新し、１つ以上のエラーが電子ページに対するページ・ロード・プロセスに関連するか否か判定し、ユニフォーム・リソース・ロケーター（ＵＲＬ）の断片識別子部分を管理して、電子ページのナビゲーションにおける現在の位置を追跡し、最少ダウンロード戦略ナビゲーションを確保するために１つ以上のナビゲーション・クリック・イベントを傍受することができる。
【０００４】
[0004]  これらおよび他の特徴ならびに利点は、以下の詳細な説明を読み、添付図面を検討することによって明白になろう。尚、以上の概略的な説明および以下の詳細な説明は、説明のために過ぎず、特許請求する発明を限定するのではないことは理解されてしかるべきである。
【図面の簡単な説明】
【０００５】
【図１】図１は、一実施形態による計算環境例のブロック図である。
【図２】図２は、一実施形態によるクライアント最少ダウンロード機構の例を示すブロック図である。
【図３】図３は、一実施形態にしたがって、最少ダウンロード・プロセスの間に電子ページを更新するためのデルタ・データー例を示すブロック図である。
【図４】図４は、一実施形態による電子ページの一例を示すブロック図である。
【図５】図５は、一実施形態によるクライアント最少ダウンロード・プロセスの一例を示す流れ図である。
【図６】図６は、一実施形態にしたがってクライアント最少ダウンロード・プロセスの間に電子ページの内容を更新するプロセス例を示す流れ図である。
【図７】図７は、本明細書において説明する種々の実施形態の実現のための計算デバイス例を示すブロック図である。
【発明を実施するための形態】
【０００６】
[0012]  最少ダウンロードおよびシミュレートされたページ・ナビゲーション機構を利用するクライアント計算アーキテクチャーを提供する。クライアント・コンピューターは、デルタ・データーを含むペイロードを、電子ページに対するナビゲーション要求に応答して受信することができる。尚、本明細書において説明する実施形態によれば、「デルタ・データー」は電子ページについての増分ページ・レンダリング情報と定められることは、理解されてしかるべきである。クライアント・コンピューターは、更に、電子ページに対するデルタ・データーを解析し、受信したデルタ・データーに基づいて電子ページに対するページ内容を更新し、１つ以上のエラーが電子ページに対するページ・ロード・プロセスに関連するか否か判定し、ユニフォーム・リソース・ロケーター（ＵＲＬ）の断片識別子部分を管理して、電子ページのナビゲーションにおける現在の位置を追跡し、最少ダウンロード戦略ナビゲーションを確保するために１つ以上のナビゲーション・クリック・イベントを傍受することができる。
【０００７】
[0013]  図１は、一実施形態による計算環境例１００のブロック図である。計算環境１００は、要求された電子ページに対するサーバー最少ダウンロードおよびエラー・フェイルオーバーを含む、電子ページ・ナビゲーション機構(feature)および機能(functionality)を設ける処理コンポーネント、メモリー・コンポーネント、ネットワーキング・コンポーネント、および／または他のコンポーネントを含むことができる。図１に示すように、コンピューター環境例１００は、少なくとも１つのサーバー・システムまたはサーバー１０２、および少なくとも１つのクライアント１０４を含み、これらはページ・ナビゲーション・メカニズムまたはプロセスを実現する一部として使用されるが、そのように限定されるのではない。尚、複数のクライアント・デバイス／システムが、利用可能なワイヤレスおよび／または有線インフラストラクチャおよび機能を使用して、複数のサーバーおよび／または他のコンポーネントと通信および／または相互作用するように構成できることは、当業者には認められよう。例えば、ユーザーがクライアント１０４を計算デバイスまたはシステムと相互作用する一部として使用し、複数のコラボレーション、ウェブ、ファイル、および／または他のサーバーの情報およびリソースにアクセスし、これらを電子ページまたはウェブ・ページを閲覧する一部として使用することができる。尚、典型的な相互作用セッションの間、ユーザーはクライアント１０４を使用して複数の物理サービング・マシン（例えば、ウェブ・サーバー、コラボレーションサーバー、データーベース・サーバー等）からのサーバー情報および／またはサービスに行き(call on)これらにアクセスできることは認められよう。
【０００８】
[0014]  クライアント１０４は、最少ダウンロード機構１０６、電子（ウェブ）ページ１０８、およびブラウザー１１０を含む。以下で説明するが、最少ダウンロード機構１０６は、電子ページ１０８を更新するために、サーバー１０２によって送られる「デルタ」ペイロードを解析しフィルタリングするために、最少ダウンロード電子ページ・ナビゲーションの一部として利用されてもよい。前述の技法によれば、クライアントは、電子ページの正確な状態について知り、「デルタ」における１組のコンテンツをフィルタリングして、変化した部分および／または更新しなければならない部分だけを求めることができる。
【０００９】
[0015]  尚、他のユーザー・デバイス／システムも含むことができ、これらは、ページ・ナビゲーション機構および機能を設ける一部として、環境１００の１つ以上のコンポーネントと結合、通信、および／または相互作用することが認められよう。各サーバーは、１つまたは複数の物理サービング・マシンを含むことができ、共同設置(co-location)、遠隔設置(remote location)、および／または分散型アーキテクチャーを含む。エンド・ユーザーは、スマートフォン、ラップトップ・コンピューター、タブレット・コンピューター、デスクトップ・コンピューター、および／または他のコンピューター／通信インターフェースと共に使用するようなブラウザー型アプリケーションを含む、異なるインタラクティブ・アプリケーションを使用して、環境１００の機構にアクセスすることができる。例えば、企業ユーザーがブラウザーまたは他のアプリケーションを使用して、ブラウザー型インターフェースを使用してSHAREPOINTワークサイトにアクセスすることができる。一実施形態では、ユーザーがブラウザー・アプリケーションまたはインターフェースを使用して、既存のおよび／または今後の標準、ブラウザー間互換マークアップ(cross-browser compatible markup)等を含む、計算環境例１００の機構および機能を利用することができる。
【００１０】
[0016]  図２は、一実施形態による最少ダウンロード機構の一例１０６を示すブロック図である。最少ダウンロード機構１０６は、解析コンポーネント２０２、更新コンポーネント２０４、傍受コンポーネント２０６、エラー・コンポーネント２０８、ハッシュ管理コンポーネント、ペイロード２１２（デルタ・データー２１４を含む）、イベント２１６、ナビゲーション・クリック・イベント２１８、およびベースライン電子ページ２２０を含むことができる。
【００１１】
[0017]  一実施形態によれば、クライアント１０４は解析コンポーネント２０２を利用して、電子ページについてのデルタ・データー２１４を解析することができる。更新コンポーネント２０４は、受信したデルタ・データー２１４に基づいて電子ページのページ内容を更新するために利用することができる。傍受コンポーネント２０６は、電子ページに対する最少ダウンロード戦略ナビゲーションを確保するために１つ以上のナビゲーション・クリック・イベント２１８を傍受することができる。エラー・コンポーネント２０８は、１つ以上のエラーが、電子ページのためのページ・ロード・プロセスに関連するか否か判定し、任意の判定されたエラーに基づいて措置を講ずることができる。この措置には、限定ではなく、ナビゲーション要求が受けられた電子ページに関連するベースライン電子ページ２２０をロードし直すこと、およびナビゲーション要求に応答してこのナビゲーション要求をベースライン電子ページ２２０にリディレクトすることを含むことができる。本明細書において定められる場合、ベースライン電子ページ（静止ベースライン・ページとしても知られる）は、ウェブ・サイトにおいて複数の電子ページによって共有される共通のユーザー・インターフェース・エレメントのスナップショットを表すページ内容が全くない電子ページを含む。ハッシュ管理コンポーネント２１０は、ユニフォーム・リソース・ロケーター（ＵＲＬ）の断片識別子（即ち、「ハッシュ」）部分を管理して、電子ページのナビゲーションにおける現在の位置を追跡するために利用することができる。イベント２１６は、更新コンポーネント２０４によって始動されるアンロード・イベント(unload event)を含むことができるので、以前の電子ページ（即ち、クライアントにおいて現在ナビゲートされている電子ページよりも以前の電子ページ）における制御が、必要に応じてそれを扱うことができる。
【００１２】
[0018]  図３は、一実施形態にしたがって、最少ダウンロード・プロセスの間に電子ページを更新するためのデルタ・データー例２１６を示すブロック図である。デルタ・データー２１６は、限定ではなく、更新されたマークアップ３０２、新たなスタイル・ブロック３０４、インライン・スクリプト・ブロック３０６、新たなスタイルシート・リンク３０８、新たなスクリプト・ファイル参照３１０、隠れ入力フィールド３１２、フォーム・アクション・データー３１４、特殊ヘッド・マークアップ３１６、ページ・タイトル（即ち、電子ページ・タイトル）３１８、およびアレイ宣言３２０を含むことができる。
【００１３】
[0019]  図４は、一実施形態による、電子ページの一例１０８を示すブロック図である。電子ページ１０８は、限定ではなく、マークアップおよびテキスト４０２、スクリプト・ファイル４０４、スタイルシート４０６、入力エレメント４０８（即ち、電子ページにおけるフォームからの入力エレメント）、スクリプト・ファイル・オブジェクト４１０、スタイルシート・リンク４１２、スクリプト・タイムアウト４１４、およびユニフォーム・リソース・ロケーター（「ＵＲＬ」）４１６を含むことができる。ＵＲＬ４１６は、ＵＲＬ４１６の一部である断片識別子（ハッシュ）４１８を含むことができる。電子ページ１０８は、更に、スクリプト間隔４２０、イベント・ハンドラー４２２、グローバル・スクリプト・サーフェイス４２４、およびスタイル・ブロック４２６も含むことができる（限定ではない）。
【００１４】
[0020]  図５は、一実施形態によるクライアント最少ダウンロード・プロセスの一例５００を示す流れ図である。５０５において、プロセス５００は、クライアント・コンピューター（即ち、クライアント）が、電子ページに対するナビゲーション要求に応答して、デルタ・データーをサーバーから受信したときに開始する。具体的には、クライアントは、ＵＲＬをウェブ・ブラウザーに入力することによって行われるナビゲーション要求に応答して、デルタ・データーを含むペイロードをサーバーから受信することができる。
【００１５】
[0021]  ５１０において、クライアントは電子ページのデルタ・データーを解析する。先に説明したように、クライアントは、サーバーによってペイロード内にて送られたデルタ・データーを解析しフィルタリングすることができる。クライアントは、電子ページの正確な状態を判断し、デルタ・データーにおける１組の内容をフィルタリングして、変化した部分および／または更新しなければならない部分だけを求めるように構成することができる。
【００１６】
[0022]  ５１５において、クライアントは、受信したデルタ・データーに基づいて、電子ページのページ内容を更新する。尚、前述のページ内容を更新するとき、クライアントは、電子ページの状態（例えば、マークアップ、スタイル、スクリプト等）が全ページ・ロード(full page load)に存在するものと一致することを確保するように構成されるとよいことは理解されてしかるべきである。ページ内容を更新するプロセス例は、様々なステップを含むことができ、図６に関して以下で詳細に説明する。
【００１７】
[0023]  ５２０において、クライアントは、電子ページに対するページ・ロード・プロセスに関連するエラーを判定する。具体的には、クライアントは、エラー・ケースを判定し、遭遇したエラーに基づいて種々の選択肢に「フェイルオーバー」することができる。尚、本明細書において定められる場合、「エラー」とはデルタ・データーをレンダリングするのを不可能または不合理にし、それによって電子ページに関してフェイルオーバー・プロセスを要求する「状況」であることは理解されてしかるべきである。尚、エラー・ケースは、ページ・ロード・プロセスの前または最中に起こる場合もあることは理解されてしかるべきである。前者の場合、サーバーは、「デルタ」ペイロードの代わりに、エラー・コード応答を送ることができる。後者の場合、エラーは、以上で説明したステップ５０５〜５１５の内任意のものの間に起こる可能性がある。また、一実施形態によれば、サーバーから単純な（即ち、デルタでない）マークアップ・データーを受信することがエラー・ケースを構成する（即ち、従来のウェブ・ページの完全なマークアップ）場合もあることも、理解されてしかるべきである。
【００１８】
[0024]  一実施形態によれば、エラーが判定されたとき、フェイルオーバー・アクションが行われる。クライアントは、エラーに応答して、以下のアクションの内１つを実行することができる。（１）最少ダウンロード戦略を再開する（即ち、ベースライン電子ページをロードし直し、要求されたページへのナビゲーションを実行し直す）。（２）ナビゲーション要求に応答して異なるベースライン電子ページ（即ち、要求された電子ページに以前関連していたベースライン電子ページとは異なるベースライン電子ページ）にリディレクトする。（３）ナビゲーション要求に応答して、完全にレンダリングされた電子ページにリディレクトする（即ち、デルタ・データーは利用されない）。尚、完全にレンダリングされたページにリディレクトすることは、従前の電子ページ・ナビゲーションと同等であることは理解されてしかるべきである。尚、サーバーがエラーを扱い、「フェイルオーバー」するためにどの措置を講ずるか決定することができるまでの間、クライアントは実際の作業を実行することは、理解されてしかるべきである。
【００１９】
[0025]  ５２５において、クライアントは、電子ページのＵＲＬの断片識別子部分を管理する。一実施形態によれば、ＵＲＬの断片識別子（即ち、「ハッシュ」）部分は、最少ダウンロード戦略ナビゲーションにおける現在の位置を追跡するために使用することができる。断片識別子は、電子ページ上において多くの制御手段およびコンポーネントによって使用されてもよい。尚、以前のハッシュ管理解決策は、ハッシュを使用するコンポーネント以外のものが電子ページ上にあるときには機能が制限されるが、本実施形態におけるクライアントは、断片識別子におけるデーター・スロットに登録するために、ＡＰＩを複数に提供することができることは、認められてしかるべきである。したがって、複数のページ・コンポーネントが、干渉なく、断片識別子を使用することが可能にされる。
【００２０】
[0026]  ５３０において、クライアントは、最少ダウンロード戦略ナビゲーション（即ち、デルタ・データーを利用するナビゲーション）を確保するためにナビゲーション・クリック・イベントを傍受する。具体的には、クライアントはグローバル「オン・クリック」ハンドラーおよび数個のローカル「オン・クリック」ハンドラーを、電子ページへのナビゲーションに関連するナビゲーション・クリック・イベントを傍受するために供給する。つまり、クライアントは、可能なときはいつでも、最少ダウンロード戦略によってナビゲーションが確実に行われるように構成できることは理解されてしかるべきである。５３０から、プロセス５００は次に終了する。
【００２１】
[0027]  尚、処理機構、ネットワーキング機構、および／または他の機構は、以上で説明したプロセスを設けるときに補助できることは認められよう。プロセス５００の形態は、計算アーキテクチャー、ならびにクライアント、サーバー、および他の例の他のコンポーネントにそしてこれらの間で分散でき、実施形態は、本明細書において説明した機構に限定することは意図していない。図５のフロー例については、一定数および一定の順序の動作を記載したが、所望の実現例にしたがって他の数および／または他の順序も使用できることは認められよう。
【００２２】
[0028]  図６は、一実施形態にしたがってクライアント最少ダウンロード・プロセスの間に電子ページの内容を更新するプロセス例６００を示す流れ図である。６０５において、プロセス６００は、クライアントが「アンロード」イベントを起こし(raise)、要求された電子ページ上における制御手段が必要に応じてそれを扱うことができるようになったときに開始する。
【００２３】
[0029]  ６１０において、クライアントは、ステップ６０５において起こされたアンロード・イベントから適正にクリアしなかった、以前の電子ページからのエレメントを処分する。
【００２４】
[0030]  ６１５において、クライアントは、不要とされたスタイルシート・リンクおよびスタイル・ブロックを除去する。
[0031]  ６２０において、クライアントは、入力エレメントを消去する（即ち、電子ページ上のあらゆるフォームから入力エレメントを除去する）。例えば、入力エレメントは、主要電子フォームから以前の電子ページから除去されてもよい。
【００２５】
[0032]  ６２５において、クライアントはスクリプト・タイムアウトおよび間隔を取り消す（即ち、クライアントは古いまたは以前の電子ページに対するイベントをクリアする）。一実施形態によれば、タイムアウトおよび間隔は、通常のスクリプト方法を使用して取り消すことができる。尚、setTimeoutおよびsetIntervalメソッドを利用して、どのタイムアウトおよび間隔が取り消されるか追跡するとよいことは理解されてしかるべきである。一実施形態によれば、タイムアウトおよび間隔は、JAVASCRIPTタイムアウトおよび間隔を含むのでもよい。
【００２６】
[0033]  ６３０において、クライアントは新たな電子ページに対するスクリプト・イベントをクリアする。
[0034]  ６３５において、クライアントはメモリー内オブジェクトをクリアし(clears out clearing)、要求された電子ページに関連するベースライン電子ページの初期状態にする。具体的には、クライアントは、ナビゲートされる電子ページ上ではもはや適用されないスクリプト・オブジェクトをクリアすることができる。尚、メモリーからスクリプト・オブジェクトをクリアすることを、「ガベージ・コレクション」と記述してもよいことは、当業者には理解されてしかるべきである。具体的には、ガベージ・コレクションは、ランタイム環境（例えば、.NETおよびJAVA)における標準的な動作である。
【００２７】
[0035]  ６３７において、クライアントは、スクリプト・ファイルにおけるスクリプト・ファイル・オブジェクトを初期状態に更新する。一実施形態によれば、クライアントは必要とされるときにだけロードされることを意図したスクリプト・ファイルをロードするシステムを利用することができる。クライアントは、全てのスクリプト・ファイル・オブジェクトをその初期状態になるように更新することができる（即ち、プリロード状態）。
【００２８】
[0036]  ６４０において、クライアントは新たなスタイルシートおよびスタイル・ブロックを追加する。
[0037]  ６４５において、クライアントは更新したマークアップを電子ページに挿入する。具体的には、クライアントはマークアップを電子ページ上の１つ以上の更新可能な領域に挿入することができる。尚、電子ページのページ内容を更新する早期段階においてマークアップを挿入すると、コンテンツが一層素早く現れることが可能になり、ロード処理中に知覚される性能(perceived performance)が向上することは認められてしかるべきである。また、これは、コンテンツをロードすることが、電子ページのページ・レイアウトが更新されるに連れて、追加のスクリプトを実行させることにはならないことを保証する。
【００２９】
[0038]  ６５０において、クライアントは、新たなファイル参照を電子ページに追加する。尚、必要とされないが既にロードされているスクリプト・ファイルは、このステップではロードし直す必要はないことは、理解されてしかるべきである。
【００３０】
[0039]  ６５５において、クライアントは、電子ページのスクリプト・ファイルに対して初期化関数をコールする。具体的には、クライアントは、スクリプト・ファイルが、ナビゲートされている電子ページにロードされるために、各スクリプト・ファイル（即ち、新たなスクリプト・ファイルおよび既にロードされているスクリプト・ファイル）に対して初期化関数をコールすることができる。尚、初期化関数は、電子ページに対する全てのグローバル変数の初期化を含むことは理解されてしかるべきである。つまり、初期化のコールは、電子ページ上におけるスクリプトのグローバル状態が、電子ページに対する全ページ・ナビゲーション上におけるそれと同様となることを確保する。
【００３１】
[0040]  ６６０において、クライアントはインライン・スクリプト・ブロックを電子ページに挿入する。
[0041]  ６６５において、クライアントは、電子ページ上のスクリプト・ファイル・オブジェクトにおいて「ロード」(load)イベントを始動させる(fire)。例えば、クライアントは、電子ページ上において、必要とされるときだけロードされることを意図するスクリプトの全てにおいて、「ロード」(loaded)イベントを始動させることができる。一実施形態によれば、「ロード」(loaded)イベントの始動は、クライアントによってシミュレートされてもよい。
【００３２】
[0042]  ６７０において、クライアントは、電子ページにおいて「ロード」イベントを始動させて、新たな電子ページにおける制御手段が必要に応じてこのイベントを扱うことができるようにする。一実施形態によれば、「ロード」イベントの始動は、クライアントによってシミュレートされてもよい。尚、本明細書において説明する実施形態は、前述のシミュレーションに限定されるのではないこと、そしてウェブ・ブラウザーが発展し続けるに連れて、電子／ウェブ・ブラウザー・ページの寿命をエミュレートするために、他のイベントの追加のシミュレーションが実行されてもよいことは理解されてしかるべきである。
【００３３】
[0043]  ６７５において、クライアントは、電子ページのＵＲＬの断片識別子部分を更新し、ナビゲートされている電子ページのＵＲＬと一致させる。更に、以上で説明した一連のステップ６０５〜６７５の終了時に、電子ページのスクリプト、スタイル、およびマークアップは正しくなり、最少ダウンロード戦略ナビゲーションは完了したと見なせることは理解されてしかるべきである。６７５から、プロセス６００は次に終了する。
【００３４】
[0044]  尚、以上で説明したプロセスを設けるときに、処理機構、ネットワーキング機構および／または他の機構が補助できることは認められよう。プロセス６００の形態は、計算アーキテクチャー、ならびにクライアント、サーバー、および他の例の他のコンポーネントに、そして他のコンポーネント間で分散でき、実施形態は、本明細書において説明した機構に限定することは意図していない。図６のフロー例については、一定数および一定順序の動作を記載したが、所望の実現例にしたがって他の数および／または他の順序も使用できることは認められよう。
【００３５】
[0045]  本明細書ではある種の実施形態について説明したが、他の実施形態も利用可能であり、説明した実施形態は特許請求の範囲を限定するために使用されてはならない。種々の実施形態のための通信環境例は、安全なネットワーク、安全でないネットワーク、混成ネットワーク、および／または何らかの他のネットワークまたはネットワークの組み合わせの使用を含むことができる。一例として、そして限定ではなく、環境は、有線ネットワークまたは直接有線接続というような有線媒体、および／または音響、無線周波（ＲＦ）、赤外線というようなワイヤレス媒体、および／または他の有線および／またはワイヤレス媒体およびコンポーネントを含むことができる。計算システム、デバイス等に加えて、種々の実施形態は、コンピューター・プロセス（例えば、方法）、コンピューター・プログラム製品またはコンピューター読み取り可能媒体というような製造品目、コンピューター読み取り可能記憶媒体、および／または種々の通信アーキテクチャーの一部として実現することができる。
【００３６】
[0046]  適したプログラミング手段は、方法のステップを実行するために、例えば、コンピューター・メモリーに結合された処理ユニットおよび算術論理回路を含むシステムを含む、コンピューター・システムまたはデバイスに命令する任意の手段を含み、このシステムはコンピューター・メモリーに格納する能力を有し、このコンピューター・メモリーは、データーおよびプログラム命令を格納するように構成された電子回路を含む。コンピューター・プログラム製品の例は、任意の適したデーター処理システムと共に使用可能である。ある数およびタイプのコンポーネントについて説明したが、他の数および／またはタイプおよび／または構成も、種々の実施形態によれば、含むことができることは認められよう。したがって、コンポーネント機能は、更に、所望の実現例にしたがって、分割することおよび／または他のコンポーネント機能と組みあわせることができる。
【００３７】
[0047]  本明細書において使用される場合、コンピューター読み取り可能媒体という用語は、コンピューター記憶媒体を含むことができる。コンピューター記憶媒体は、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体を含むことができ、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、または他のデーターというような情報の格納のための任意の方法または技術で実現される。システム・メモリー、リムーバブル・ストレージ、および非リムーバブル・ストレージは全て、コンピューター記憶媒体の例である（即ち、メモリー・ストレージ）。コンピューター記憶媒体は、ＲＡＭ、ＲＯＭ、電子的消去可能なリード・オンリー・メモリー（ＥＥＰＲＯＭ）、フラッシュ・メモリーまたは他のメモリー技術、ＣＤ−ＲＯＭ、ディジタル・バーサタイル・ディスク（ＤＶＤ）または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたは他の時期記憶デバイス、あるいは情報を格納するために使用することができ計算デバイスによってアクセスすることができる任意の他の媒体を含むことができるが、これらに限定されるのではない。このようなコンピューター記憶媒体はいずれも、デバイスの一部であってもよい。
【００３８】
[0048]  本明細書において説明した実施形態および例は、限定することを意図しておらず、他の実施形態も利用可能である。更に、以上で説明したコンポーネントは、ネットワーク接続環境、分散型環境、および／または他のコンピューター実現環境の一部として実現することができる。これらのコンポーネントは、有線、ワイヤレス、および／または通信ネットワークの組み合わせを介して通信することができる。ネットワーク・コンポーネントおよび／またはコンポーネント間における結合(coupling)は、任意のタイプ、数、および／または組み合わせのネットワークを含むことができ、対応するネットワーク・コンポーネントは、限定ではなく、ワイド・エリア・ネットワーク（ＷＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、都市エリア・ネットワーク（ＭＡＮ）、企業固有のネットワーク、バックエンド・ネットワーク等を含むことができる。
【００３９】
[0049]  クライアント計算デバイス／システムならびにサーバーは、任意のタイプおよび／または組み合わせのプロセッサー・ベースのデバイスまたはシステムとすることができる。加えて、サーバー機能は、多くのコンポーネントを含み、更に他のサーバーを含むことができる。単数形で記述した計算環境のコンポーネントは、このようなコンポーネントの複数のインスタンスを含むことができる。ある種の実施形態はソフトウェアの実現例を含むが、これらはそのように限定されるのではなく、ハードウェア、または混合ハードウェア／ソフトウェア解決策を含む。他の実施形態および構成も利用可能である。
動作環境例
[0050]  これより図７を参照すると、以下の説明は、本発明を実現することができる適した計算デバイスの端的で総合的な説明を行うことを意図している。本発明の実施形態は、パーソナル・コンピューターのオペレーティング・システム上で実行するアプリケーションと合わせて実行するプログラム・モジュールという一般的なコンテキストで説明されるが、本発明は他のタイプのコンピューター・システム、デバイス、および／またはプログラム・モジュールとの組み合わせでも実現できることは当業者には認められよう。
【００４０】
[0051]  一般に、プログラム・モジュールは、ルーチン、プログラム、コンポーネント、データー構造、およびその他のタイプの構造を含み、これらは特定のタスクを実行するかまたは特定の抽象データー型を実装する。更に、本発明の実施形態は、ハンドヘルド・デバイス、マルチプロセッサー・システム、マイクロプロセッサー・ベースまたはプログラマブル消費者用電子機器、ミニコンピューター、メインフレーム・コンピューター等を含む、他のコンピューター・システム構成とでも実施できることは当業者には認められよう。また、本発明は、分散型計算環境においても実施することができ、この場合、タスクは、通信ネットワークを通じてリンクされたリモート処理デバイスによって実行される。分散型計算環境では、プログラム・モジュールはローカルおよびリモート双方のメモリー記憶デバイスに配置することができる。
【００４１】
[0052]  図７に示すように、コンピューター２は、汎用サーバー、デスクトップ、ラップトップ、タブレット、または１つ以上のアプリケーション・プログラムを実行することができる他のタイプのコンピューターを含む。コンピューター２は、少なくとも１つの中央処理ユニット８（「ＣＰＵ」）、ランダム・アクセス・メモリー１８（「ＲＡＭ」）およびリード・オンリー・メモリー（「ＲＯＭ」）２０をシステム・メモリー１２、ならびにメモリーからＣＰＵ８までを結合するシステム・バス１２を含む。起動中におけるように、コンピューター内部のエレメント間で情報を移すのに役立つ基本ルーチンを含む基本入力／出力システムが、ＲＯＭ２０に格納される。コンピューター２は、更に、オペレーティング・システム２４、アプリケーション・プログラム、および他のプログラム・モジュール（例えば、アプリケーションおよび／またはプログラム・モジュール２６）を格納する大容量記憶デバイス１５も含む。
【００４２】
[0053]  大容量記憶デバイス１４は、バス１０に接続された大容量記憶コントローラー（図示せず）を介してＣＰＵ８に接続される。大容量記憶デバイス１４およびそれに関連するコンピューター読み取り可能媒体は、コンピューター２に不揮発性ストレージを設ける。本明細書に含まれるコンピューター読み取り可能媒体の説明は、ハード・ディスクまたはＣＤ−ＲＯＭのような大容量記憶デバイスに言及するが、コンピューター読み取り可能媒体は、コンピューター２によってアクセスおよび利用することができる任意の入手可能な媒体とすることができることは当業者には認められてしかるべきである。
【００４３】
[0054]  一例として、そして限定ではなく、コンピューター読み取り可能媒体は、コンピューター記憶媒体および通信媒体を含むことができる。コンピューター記憶媒体は、揮発性および不揮発性媒体、リムーバブルおよび非リムーバブル媒体を含み、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、または他のデーターというようないずれかの情報の記憶のための任意の方法または技術で実現される。コンピューター記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリーまたは他のソリッド・ステート・メモリー技術、ＣＤ−ＲＯＭ、ディジタル・バーサタイル・ディスク（ＤＶＤ）または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク記憶デバイスまたはその他の磁気記憶デバイス、あるいは所望の情報を格納するために用いることができ、計算デバイス２によってアクセスすることができる任意の他の媒体が含まれる。
【００４４】
[0055]  本発明の種々の実施形態によれば、コンピューター２は、例えば、ローカル・ネットワーク、インターネット等のようなネットワーク４を介して、リモート・コンピューターへの論理接続を用いてネットワーク接続環境において動作することもできる。コンピューター２は、バス１０に接続されたネットワーク・インターフェース・ユニット１６を介して、ネットワーク４に接続することができる。尚、ネットワーク・インターフェース・ユニット１６は、他のタイプのネットワークおよびリモート・コンピューター・システムに接続するために利用されてもよいことは認められてしかるべきである。また、コンピューター２は、キーボード、マウス等（図示せず）を含む複数の他のデバイスからの入力を受けて処理する入力／出力コントローラー２２も含むことができる。同様に、入力／出力コントローラー２２は、出力を表示画面、プリンター、または他のタイプの出力デバイスに供給することができる。
【００４５】
[0056]  先に端的に述べたように、複数のプログラム・モジュールおよびデーター・ファイルを、コンピューター２の大容量記憶デバイス１４およびＲＡＭ１８に格納することができ、ワシントン州、RedmondのMICROSOFT CORPORATIONからのWINDOWS（登録商標）オペレーティング・システムのような、ネットワーク接続されたパーソナル・コンピューターの動作を制御するのに適したオペレーティング・システム２４を含む。また、大容量記憶デバイス１４およびＲＡＭ１８は、１つ以上のプログラム・モジュールも格納することができる。具体的には、大容量記憶デバイス１４およびＲＡＭ１８は、限定ではなく、ウェブ・アプリケーション・プラットフォーム、文書処理、スプレッドシート、描画、電子メール、ならびに他のアプリケーションおよび／またはプログラム・モジュール等を含むことができるアプリケーションおよび／またはプログラム・モジュール２６を格納することができる。尚、ウェブ・アプリケーション・プラットフォームは、イントラネット・ポータル、エキストラネット、ウェブ・サイト、文書およびファイル管理、コラボレーション空間、ソーシャル・ツール、企業検索、業務情報、プロセス統合、システム統合、ワークフロー自動化、および第三者解決策のための中核インフラストラクチャの管理およびプロビジョニングに対処できることは理解されてしかるべきである。一実施形態によれば、アプリケーションおよび／またはプログラム・モジュール２６は、ワシントン州、RedmondのMICROSOFT CORPORATIONからのSHAREPOINTウェブ・アプリケーション・プラットフォームを含むことができる。
【００４６】
[0057]  種々の実施形態の論理動作は、（１）計算システムにおいて実行するコンピューター実施動作またはプログラム・モジュールのシーケンスとして、（２）計算システム内において相互接続されたマシン論理回路または回路モジュールとして実現されることは認められてしかるべきである。実現例は、本発明を実現する計算システムの性能要件に依存する選択事項である。したがって、関係するアルゴリズムを含む論理動作は、動作(operation)、構造的デバイス、アクト(act)、またはモジュールと様々に呼ばれる。尚、本明細書において定められる特許請求の範囲に記載される本発明の主旨や範囲から逸脱することなく、これらの動作、構造的デバイス、アクト、およびモジュールは、ソフトウェア、ファームウェア、特殊目的ディジタル・ロジック、およびその任意の組み合わせで実現できることは、当業者には認められよう。
【００４７】
[0058]  以上、種々の実施形態例と関連付けて本発明について説明したが、以下に続く特許請求の範囲内で多くの変更を行うことができることは、当業者には理解されよう。したがって、本発明の範囲は、以上の説明によって限定されることは全く意図せず、代わりに以下に続く特許請求の範囲を参照することによって全体的に判断されることと意図している。
【図１】
2015510632.tif 000003
【図２】
2015510632.tif 000004
【図３】
2015510632.tif 000005
【図４】
2015510632.tif 000006
【図５】
2015510632.tif 000007
【図６】
2015510632.tif 000008
【図７】
2015510632.tif 000009
【国際調査報告】
2015510632.tif 000010
2015510632.tif 000011