(57)【要約】【課題】既存のＷｅｂサイトはインターネット上に膨大に存在しており、これらの全てを作り直すことは、現実的に不可能である。さらに、新しくサイトを構築する場合においても、動的Ｗｅｂサイトの構築難易度の高さから、その構築には長い開発期間と多くの費用が必要であった。このように動的Ｗｅｂサイトの構築には多くの時間や費用が必要とされるという課題を解決する。【解決手段】ページ遷移型Ｗｅｂサイトと協調して動作する汎用スクリプトを用いて、Ｗｅｂサイト内の同期通信を用いたページ間遷移を非同期通信で代替実行し、非同期通信の結果取得したページと、現在表示しているページの差分のみを部分的に更新するための方法を備える。【選択図】図４
2011039668.tif 000002
【特許請求の範囲】
【請求項１】
演算処理を行うプロセッサと、前記プロセッサに接続された記憶部と、前記プロセッサに接続された表示装置と、ユーザからの操作を受け付ける入力部と、サーバとの間でＷｅｂページの授受を行う通信処理部と、を有する計算機が前記Ｗｅｂページをサーバに要求し、前記計算機は前記サーバから受信したＷｅｂページを解析して前記表示装置に出力するＷｅｂページの表示方法であって、
前記通信処理部で受信した前記Ｗｅｂページに含まれる情報を解析し、ページ遷移を発生するイベント情報を抽出するステップと、
前記抽出したイベント情報に対応する前記イベントが発行されたときに、当該イベント情報の処理を前記通信処理部で行うように前記イベント情報を上書きするステップと、
前記入力部で受け付けた前記操作に対応する前記イベントを発行するステップと、
前記イベントが発行されたときに、前記通信処理部が、他の処理部の処理と非同期で前記サーバと通信を行って、前記遷移先のＷｅｂページを前記サーバから受信するステップと、
前記イベントの発行時に前記表示装置に出力していたＷｅｂページと、前記通信処理部が前記サーバから受信したＷｅｂページの差分を抽出するステップと、
前記抽出した差分のみを前記表示装置に出力するステップと、
を含むことを特徴とするＷｅｂページの表示方法。
【請求項２】
請求項１に記載のＷｅｂページの表示方法であって、
前記イベントの発行時に前記表示装置に出力していたＷｅｂページと、前記通信処理部が受信したＷｅｂページの差分を抽出するステップは、
前記抽出された差分のうち、ユーザからの操作を受け付け可能な要素の差分情報を判別し、前記受け付けたユーザからの操作以外の差分情報のみを前記表示装置に反映することを特徴とするＷｅｂページの表示方法。
【請求項３】
請求項１に記載のＷｅｂページの表示方法であって、
前記発行したイベントを前記記憶部に設定したイベント記憶部に記憶するステップと、
前記抽出した遷移先のＷｅｂページを前記イベント記憶部に変更するステップと、
前記入力部で受け付けた前記操作に対応して発行された前記イベントを前記イベント記憶部に記憶するステップと、
前記通信処理部が前記サーバから受信したＷｅｂページの情報を、前記記憶したユーザの操作に基づいて発行されたイベントとを対応付けて前記イベント記憶部に記憶するステップと、をさらに含むことを特徴とするＷｅｂページの表示方法。
【請求項４】
請求項３に記載のＷｅｂページの表示方法であって、
前記抽出した差分のみを前記表示装置に出力するステップは、
前記差分のみを前記表示装置に出力した後に、前記イベント記憶部が記憶したイベントを用いて、前記ページ遷移のイベントが発生してから、前記通信処理部が前記サーバからＷｅｂページを受信するまでの間に発行したイベントを再現するステップを含むことを特徴とするＷｅｂページの表示方法。
【請求項５】
請求項１に記載のＷｅｂページの表示方法であって、
前記イベントが発行されたときに、前記通信処理部が、他の処理部の処理と非同期で前記サーバと通信を行って、前記遷移先のＷｅｂページを前記サーバから受信するステップは、
前記サーバが、前回応答したＷｅｂページと現在要求されているＷｅｂページの差分を抽出し、前記抽出された差分を前記計算機に送信するステップと、
前記通信処理部が、前記遷移先のＷｅｂページとして前記差分を受信するステップと、を含み、
前記イベントの発行時に前記表示装置に出力していたＷｅｂページと、前記通信処理部が前記サーバから受信したＷｅｂページの差分を抽出するステップは、
前記サーバから受信した差分を前記Ｗｅｂページと遷移先のＷｅｂページの差分とすることを特徴とするＷｅｂページの表示方法。
【請求項６】
請求項１に記載のＷｅｂページの表示方法であって、
前記計算機とサーバとの間で通信を中継するプロキシサーバを有し、
前記イベントが発行されたときに、前記通信処理部が、他の処理部の処理と非同期で前記サーバと通信を行って、前記遷移先のＷｅｂページを前記サーバから受信するステップは、
前記プロキシサーバが、前回応答したＷｅｂページと現在要求されているＷｅｂページの差分を抽出し、前記抽出された差分を前記計算機に送信するステップと、
前記通信処理部が、前記遷移先のＷｅｂページとして前記差分を受信するステップと、を含み、
前記イベントの発行時に前記表示装置に出力していたＷｅｂページと、前記通信処理部が前記サーバから受信したＷｅｂページの差分を抽出するステップは、
前記プロキシサーバから受信した差分を前記Ｗｅｂページと遷移先のＷｅｂページの差分とすることを特徴とするＷｅｂページの表示方法。
【請求項７】
演算処理を行うプロセッサと、前記プロセッサに接続された記憶部と、前記プロセッサに接続された表示装置と、ユーザからの操作を受け付ける入力部と、サーバからＷｅｂページを受信する通信処理部と、を有する計算機がＷｅｂページをサーバに要求し、前記計算機が前記サーバから受信したＷｅｂページを解析して前記表示装置に出力する計算機システムであって、
前記計算機は、
前記Ｗｅｂページに含まれる情報を解析して、当該情報を変更するＨＴＭＬ解析部と、
前記Ｗｅｂページの差分を抽出する差分抽出部と、を有し、
前記ＨＴＭＬ解析部は、
前記サーバからＷｅｂページを受信した際にページ遷移を発生するイベント情報と、遷移先のＷｅｂページを抽出し、前記抽出したイベントが発生した時の処理を前記通信処理部で行うようにイベント情報を上書きし、前記入力部で受け付けた前記操作に対応する前記イベントを発行し、
前記通信処理部は、
前記イベントが発行されたときに、他の処理部の処理と非同期で前記サーバと通信を行って、前記遷移先のＷｅｂページを前記サーバから受信し、
前記差分抽出部は、
前記イベントの発行時に前記表示装置に出力していたＷｅｂページと、前記通信処理部が前記サーバから受信した遷移先のＷｅｂページの差分を抽出して前記表示装置に出力することを特徴とする計算機システム。
【請求項８】
請求項７に記載の計算機システムであって、
前記差分抽出部は、
前記抽出された差分のうち、ユーザからの操作を受け付け可能な要素の差分情報を判別し、前記受け付けたユーザからの操作以外の差分情報のみを前記表示装置に反映することを特徴とする計算機システム。
【請求項９】
請求項７に記載の計算機システムであって、
前記発行したイベントを記憶するイベント記憶部をさらに有し、
前記抽出した遷移先のＷｅｂページを前記イベント記憶部に変更し、前記入力部で受け付けた前記操作に対応して発行された前記イベントを前記イベント記憶部に記憶し、前記通信処理部が前記サーバから受信したＷｅｂページの情報を、前記記憶したユーザの操作に基づいて発行されたイベントとを対応付けて前記イベント記憶部に記憶することを特徴とする計算機システム。
【請求項１０】
請求項９に記載の計算機システムであって、
前記差分抽出部は、
前記差分のみを前記表示装置に出力した後に、前記イベント記憶部が記憶したイベントを用いて、前記ページ遷移のイベントが発生してから、前記通信処理部が前記サーバからＷｅｂページを受信するまでの間に発行したイベントを再現することを特徴とする計算機システム。
【請求項１１】
請求項７に記載の計算機システムであって、
前記サーバは、前回応答したＷｅｂページと現在要求されているＷｅｂページの差分を抽出し、前記抽出された差分を前記計算機に送信し、
前記通信処理部は、前記遷移先のＷｅｂページとして前記差分を受信し、
前記差分抽出部は、
前記サーバから受信した差分を前記Ｗｅｂページと遷移先のＷｅｂページの差分とすることを特徴とする計算機システム。
【請求項１２】
請求項７に記載の計算機システムであって、
前記計算機とサーバとの間で通信を中継するプロキシサーバを有し、
前記プロキシサーバが、前回応答したＷｅｂページと現在要求されているＷｅｂページの差分を抽出し、前記抽出された差分を前記計算機に送信し、
前記通信処理部が、前記遷移先のＷｅｂページとして前記差分を受信し、
前記差分抽出部は、
前記プロキシサーバから受信した差分を前記Ｗｅｂページと遷移先のＷｅｂページの差分とすることを特徴とする計算機システム。
【請求項１３】
演算処理を行うプロセッサと、前記プロセッサに接続された記憶部と、前記プロセッサに接続された表示装置と、ユーザからの操作を受け付ける入力部と、サーバとの間でＷｅｂページの授受を行う通信処理部と、を有する計算機で前記Ｗｅｂページをサーバに要求し、前記サーバから受信したＷｅｂページを解析して前記表示装置に出力するプログラムであって、
前記で受信した前記Ｗｅｂページに含まれる情報を解析し、ページ遷移を発生するイベント情報を抽出する手順と、
前記抽出したイベント情報に対応する前記イベントが発行されたときに、当該イベント情報の処理を前記通信処理部で行うように前記イベント情報を上書きする手順と、
前記入力部で受け付けた前記操作に対応する前記イベントを発行する手順と、
前記イベントが発行されたときに、前記通信処理部が、他の処理部の処理と非同期で前記サーバと通信を行って、前記遷移先のＷｅｂページを前記サーバから受信する手順と、
前記イベントの発行時に前記表示装置に出力していたＷｅｂページと、前記通信処理部が前記サーバから受信したＷｅｂページの差分を抽出する手順と、
前記抽出した差分のみを前記表示装置に出力する手順と、
を前記計算機に実行させることを特徴とするプログラム。
【請求項１４】
請求項１３に記載のプログラムであって、
前記イベントの発行時に前記表示装置に出力していたＷｅｂページと、前記通信処理部が受信したＷｅｂページの差分を抽出する手順は、
前記抽出された差分のうち、ユーザからの操作を受け付け可能な要素の差分情報を判別し、前記受け付けたユーザからの操作以外の差分情報のみを前記表示装置に反映することを特徴とするプログラム。
【請求項１５】
請求項１３に記載のプログラムであって、
前記発行したイベントを前記記憶部に設定したイベント記憶部に記憶する手順と、
前記抽出した遷移先のＷｅｂページを前記イベント記憶部に変更する手順と、
前記入力部で受け付けた前記操作に対応して発行された前記イベントを前記イベント記憶部に記憶する手順と、
前記通信処理部が前記サーバから受信したＷｅｂページの情報を、前記記憶したユーザの操作に基づいて発行されたイベントとを対応付けて前記イベント記憶部に記憶する手順と、をさらに含むことを特徴とするプログラム。
【請求項１６】
請求項１５に記載のプログラムであって、
前記抽出した差分のみを前記表示装置に出力する手順は、
前記差分のみを前記表示装置に出力した後に、前記イベント記憶部が記憶したイベントを用いて、前記ページ遷移のイベントが発生してから、前記通信処理部が前記サーバからＷｅｂページを受信するまでの間に発行したイベントを再現する手順を含むことを特徴とするプログラム。
【請求項１７】
請求項１３に記載のプログラムであって、
前記イベントが発行されたときに、前記通信処理部が、他の処理部の処理と非同期で前記サーバと通信を行って、前記遷移先のＷｅｂページを前記サーバから受信する手順は、
前記通信処理部が、前回応答したＷｅｂページと現在要求されているＷｅｂページの差分を前記サーバから受信し、前記遷移先のＷｅｂページとして前記差分を受信する手順を含み、
前記イベントの発行時に前記表示装置に出力していたＷｅｂページと、前記通信処理部で前記サーバから受信したＷｅｂページの差分を抽出する手順は、
前記サーバから受信した差分を前記Ｗｅｂページと遷移先のＷｅｂページの差分とすることを特徴とするプログラム。
【請求項１８】
請求項１３に記載のプログラムであって、
前記イベントが発行されたときに、前記通信処理部が、他の処理部の処理と非同期で前記サーバと通信を行って、前記遷移先のＷｅｂページを前記サーバから受信する手順は、
前記サーバと計算機の間に配置したプロキシサーバから、前回応答したＷｅｂページと現在要求されているＷｅｂページの差分を前記遷移先のＷｅｂページとして前記差分を受信する手順を含み、
前記イベントの発行時に前記表示装置に出力していたＷｅｂページと、前記通信処理部が前記サーバから受信したＷｅｂページの差分を抽出する手順は、
前記プロキシサーバから受信した差分を前記Ｗｅｂページと遷移先のＷｅｂページの差分とすることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂサイトの操作性向上方法に関する。さらに詳しくは、Ｗｅｂサイト内の同期通信を用いたページ間遷移を非同期通信で代替実行することで、Ｗｅｂページの操作性を向上させる方法、装置、システム、及びプログラムに関する。
【背景技術】
【０００２】
従来、ＷｅｂページはＨＴＭＬ(HyperText Markup Language)を用いて記述されたページを単位として開発されてきた。これは、ＨＴＭＬではハイパーリンクを用いたページ間の関連付けを行うことが可能であり、このリンク定義を用いてページからページへと遷移することができるため、ページを単位としたコンテンツの開発(ページ遷移型Ｗｅｂサイトと呼ぶ)が理解しやすく、利用しやすい方法として受け入れられたためである。
【０００３】
近年、ＪａｖａＳｃｒｉｐｔ(登録商標)などを用いたＤＨＴＭＬ(Dynamic HTML)技術の発展により、Ｗｅｂサーバとの非同期通信や部分的なコンテンツを動的に更新を行うことで、操作性の高いコンテンツを提供するＷｅｂサイト(動的Ｗｅｂサイトと呼ぶ)の普及が進んでいる。動的Ｗｅｂサイトの特徴として、従来のページ遷移型Ｗｅｂサイトと異なり、ページを遷移することなく、単一のページ内で様々なコンテンツを表示することが挙げられる。
【０００４】
従来のページ遷移型Ｗｅｂサイトと動的Ｗｅｂサイトの相違点として、ユーザの操作継続性が挙げられる。ユーザの操作継続性とは、ユーザがＷｅｂサイトを利用する際に、その操作を阻害されることなく、快適に操作を続けることが可能かということを表す。ページ遷移型Ｗｅｂサイトでは、通常、ブラウザがサーバからコンテンツを取得するための通信処理はユーザの入力操作と同期的に実行される。このため、ブラウザが通信処理を実行している間、ユーザはブラウザに対し操作をすることができず、不要な待ち時間が発生してしまう。また、ページ遷移型Ｗｅｂサイトでは、ページを単位としてサイトが構成されているため、ページ内の極一部のコンテンツだけを変更する場合においても、ページ全体の情報をサーバから取得し、画面全体を再描画する必要があり、通信や描画のコストが高い。このような部分的な更新しか行われない場合でも長時間待たされることはユーザのメンタルモデルと合わないため、ユーザには待ち時間が長く感じられる。これらのことが、Ｗｅｂサイトに対してユーザが感じる不満の要因となっている。
【０００５】
一方、動的Ｗｅｂサイトでは、ブラウザとサーバ間の通信はユーザ操作とは非同期的に実行されるため、コンテンツをサーバから取得する間もユーザは操作を継続することができる。従って、動的Ｗｅｂサイトではユーザの操作継続性を高めることでユーザの不満を解消することができ、Ｗｅｂサイトに対するユーザの満足度向上に寄与している。
【０００６】
操作継続性の高い動的Ｗｅｂサイトが普及するにつれて、従来のページ遷移型Ｗｅｂサイトに対する不満が増加してきている。すなわち、動的Ｗｅｂサイトの操作継続性に慣れたユーザがページ遷移型Ｗｅｂサイトを訪問した場合、その操作継続性の低さから従来よりもサイトの動作が遅く感じられてしまう。このように、ページ遷移型Ｗｅｂサイトの操作継続性は相対的に低下するため、従来よりもＷｅｂサイトや、ひいてはＷｅｂサイトを提供している企業などの評判の悪化に繋がっているケースが存在する。
【０００７】
このような状況において、動的Ｗｅｂサイトの構築を簡易化するために様々なフレームワークやライブラリの開発が行われてきている。これらの多くは無料で利用でき、改変も可能であることなどから、広く利用されるようになってきている。しかし、これらのフレームワークやライブラリは、動的Ｗｅｂサイトを新規に開発する場合を対象としているため、既存のページ遷移型Ｗｅｂサイトを動的Ｗｅｂサイトに改修する場合には、Ｗｅｂサイトを全て作り直す必要がある。このため、大量に存在する既存のページ遷移型Ｗｅｂサイトを動的Ｗｅｂサイトに改修する場合には、その全てを作り直すことは現実的に難しく、これらのフレームワークやライブラリを用いても、動的Ｗｅｂサイトへ改修することはできない。また、このようなフレームワークやライブラリを用いたとしても、動的Ｗｅｂサイトの構築には幅広い知識と経験が必要とされるため、新たにＷｅｂサイトを作成する場合にも、容易には構築することができず、その構築に多くの費用や時間が必要となっている。
【０００８】
単一ページ内で様々なコンテンツを表示し、各コンテンツを部分的に更新するＷｅｂページを容易に構築する方法として、ＨＴＭＬのフレームを用いる方法がある。例えば、特許文献１では、ＨＴＭＬのフレームを用いてページの分割を行い、ＣＧＩ(Common Gateway Interface)を利用して各フレームが互いに独立に更新を行うことで、各フレームに表示される情報を最新の状態に保つことを可能にしている。しかし、この方法は各フレームが既存のページと対応付けられているため、既存ページの一部分が更新される場合にも、フレーム内の全ての情報が再描画されるため、従来のページ遷移型Ｗｅｂサイトと同等程度に操作継続性が低く、ユーザの不満を解消するためには十分な技術とは言えない。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平１０−１０５５１４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
従来の動的Ｗｅｂサイト構築手順では、既存のページ遷移型Ｗｅｂサイトが存在する場合、その多くを作り直す必要があったため、動的Ｗｅｂサイトの構築には多くの費用と時間が必要であった。Ｗｅｂサイトはインターネット上に膨大に存在しており、これらの全てを作り直すことは、現実的に不可能である。さらに、新しくＷｅｂサイトを構築する場合においても、動的Ｗｅｂサイトの構築難易度の高さから、その構築には長い開発期間と多くの費用が必要であった。
【００１１】
本発明は、このように動的Ｗｅｂサイトの構築には多くの時間や費用が必要とされるという課題を解決する。
【課題を解決するための手段】
【００１２】
本発明は、上記課題を解決するために、ページ遷移型Ｗｅｂサイトと協調して動作する汎用スクリプトを用いて、Ｗｅｂサイト内の同期通信を用いたページ間遷移を非同期通信で代替実行し、非同期通信の結果取得したページと、現在表示しているページの差分のみを部分的に更新するための方法を備えることとした。
【発明の効果】
【００１３】
本発明によれば、汎用スクリプトを用いることで既存のページ遷移型Ｗｅｂサイトをそのまま変更することなく、動的Ｗｅｂサイトへ移行することが可能となるため、動的Ｗｅｂサイトの構築にかかる膨大な費用や開発期間を削減することが可能となる。また、ページ遷移型Ｗｅｂサイトの構築に習熟した開発者が新規に動的Ｗｅｂサイトの構築に取り組む場合、本発明の汎用スクリプトを用いることで、従来のページ遷移型Ｗｅｂサイトを構築するだけで動的Ｗｅｂサイトを実現できるため、開発者の負荷を軽減する効果も得られる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態を示し、計算機資源システムの全体構成を示すブロック図である。
【図２】本発明の第１の実施形態を示し、クライアント端末の構成を示すブロック図である。
【図３】本発明の第１の実施形態を示し、ブラウザ内の機能構成を示すブロック図である。
【図４】本発明の第１の実施形態を示し、処理の手順を示すシーケンス図である。
【図５】本発明の第１の実施形態を示し、クライアント端末で行われる処理手順を示すフローチャートである。
【図６】本発明の第１の実施形態を示し、ＨＴＭＬ文書１の記述の一例を示す説明図である。
【図７】本発明の第１の実施形態を示し、ＨＴＭＬ文書２の記述の一例を示す説明図である。
【図８】本発明の第１の実施形態を示し、ＨＴＭＬ解析処理を文書１に適用した結果の一例を示す説明図である。
【図９Ａ】本発明の第１の実施形態を示し、ＨＴＭＬ解析処理のフローチャートである。
【図９Ｂ】本発明の第１の実施形態を示し、ＨＴＭＬ解析処理のフローチャートで、再帰処理のサブルーチンである。
【図１０】本発明の第１の実施形態を示し、イベント記憶テーブルの構成図である。
【図１１Ａ】本発明の第１の実施形態を示し、差分抽出処理のフローチャートである。
【図１１Ｂ】本発明の第１の実施形態を示し、差分抽出処理のフローチャートで、再帰処理のサブルーチンである。
【図１２】本発明の第２の実施形態を示し、計算機システムの全体構成を示すブロック図である。
【図１３】本発明の第３の実施形態を示し、計算機システムの全体構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、本発明の一実施形態を添付図面に基づいて説明する。
【００１６】
図１は、本発明の第１の実施形態に関わる計算機システムとその利用環境の概要を示すブロック図である。
【００１７】
クライアント端末１００はサーバ装置２００とネットワーク１０００を介して接続されており、クライアント端末１００上で動作するブラウザ１１０は、ユーザ４００の要求に応じて、ＨＴＴＰ（HyperText Transfer Protocol）リクエストをサーバ装置２００に送信し、サーバ装置２００から文書データが含まれたＨＴＴＰレスポンスを受信することにより、サーバ装置２００が管理する文書を取得し、クライアント端末１００上に表示することができる。
【００１８】
ここでブラウザ１１０はインターネット上のＷｅｂコンテンツを表示するための一般的なアプリケーションであるため詳細な説明は省略するが、ここでは今後の説明のため、特にＨＴＭＬ制御部１１２、及びＪａｖａＳｃｒｉｐｔ実行部１１１の存在を明記している。
【００１９】
以降の説明では、ＨＴＭＬ制御部１１２は、サーバ装置２００から受信したＨＴＴＰレスポンスに含まれるＨＴＭＬ、およびＣＳＳ（Cascading Style Sheet）を解析し、クライアント端末１００上に表示する機能を有し、ＪａｖａＳｃｒｉｐｔ実行部１１１は、サーバ装置２００から受信したＨＴＴＰレスポンスに含まれるＪａｖａＳｃｒｉｐｔを解析し、実行する機能を有するものとする。
【００２０】
サーバ装置２００は、ブラウザ１１０などから発行されるＨＴＴＰリクエストを常に待ち受けており、ＨＴＴＰリクエストを受信すると、ＨＴＴＰリクエストで指定された文書データをＨＴＴＰレスポンスとして応答するＷｅｂサーバ２１０を有する。また、本実施形態においては、Ｗｅｂサーバ２１０は文書編集機能を有する。文書編集機能とは、ＨＴＴＰレスポンスを送信する前に、該レスポンスに含める文書情報を改変する機能を示す。このような機能は一般的なＷｅｂサーバに搭載されている機能であるため、その詳細な実現方式は省略する。本実施形態では、文書編集機能を用いて、Ｗｅｂサーバ２１０が応答する文書情報に対し、汎用スクリプト３００を挿入する処理を行う。汎用スクリプト３００の構成は後記する。
【００２１】
図２は、本実施形態で使用するクライアント端末１００の詳細な構成を示している。クライアント端末１００は、ＣＰＵ９００とネットワークインタフェース９１０、グラフィックインタフェース９２０、ユーザ入力インタフェース９３０、主記憶装置９４０、二次記憶装置９５０、及びこれらを接続するシステムバス９６０から構成されている。
【００２２】
ネットワークインタフェース９１０は、ＣＰＵ９００の指示に従って、ネットワーク１０００を介して接続されている他の計算機などと通信を行う。ユーザ入力インタフェース９３０は、マウスやキーボードなどの入力装置からユーザの入力を受け付ける機能を持つ。グラフィックインタフェース９２０は、ディスプレイなどの画像表示装置９２１に表示する画像の処理を行う。主記憶装置９４０上には、ブラウザ１１０、ＯＳ（Operating System）９７０が格納され、ＣＰＵ９００の指示によって実行される。二次記憶装置９５０は、ＣＰＵ９００からの指示に従い、データの入出力を行う。主記憶装置９４０はメモリ等の揮発性記憶装置であり、二次記憶装置９５０はハードディスクなどの磁気記憶装置や、ＣＤ、ＤＶＤドライブなどの光学記憶装置などの不揮発性記憶装置であるが、これらに限定されるものではない。
【００２３】
サーバ装置２００のハードウェア構成は図２同様であるが、主記憶装置上に格納されＣＰＵ９００によって実行されるプログラムがＷｅｂサーバプログラム（Ｗｅｂサーバ２１０）である点が異なる。また、Ｗｅｂサーバ２１０が管理する文書データ２２１〜２２３は、主記憶装置９４０上に格納されてもよく、または、二次記憶装置９５０に格納されていてもよい。
【００２４】
図３は、クライアント端末１００のブラウザ１１０の詳細な構成を示すブロック図である。
【００２５】
ＨＴＭＬ解析部３１０は、汎用Ｓｃｒｉｐｔ３００が付加されたＨＴＭＬコンテンツが描画された際、ＨＴＭＬコンテンツの内容を解析し、ページ遷移を伴うリンク情報の抽出を行い、ページの遷移先をイベント記憶部３２０に変更する処理を行う。なお、ページ遷移とは、前記従来例でも述べたように、ハイパーリンクを用いたＷｅｂページ間の関連付けであり、ハイパーリンクの定義（リンク情報）を用いて現在のＷｅｂページから他のＷｅｂページへと遷移することを指す。
【００２６】
イベント記憶部３２０は、ユーザ４００がブラウザ１１０に対して行った操作内容と、操作内容に対する結果を関連付けてイベント記憶テーブル７００に記憶する。イベント記憶テーブル７００の詳細な構成は後記する。
【００２７】
通信処理部３３０は、ユーザ４００がページ遷移を伴うリンクをクリックした際、該リンクの遷移先コンテンツの取得を行う。なお、コンテンツの取得時に実行する通信処理は非同期通信処理を利用する。
【００２８】
差分抽出部３４０は、通信処理部３３０が取得したコンテンツと、現在画面に表示されているコンテンツの差分を抽出し、その結果抽出された差分のコンテンツのみを、ＤＯＭ（Document Object Model）を操作することで反映する。
【００２９】
上記各処理部３００〜３４０はプログラムとして主記憶装置９４０にロードされてＣＰＵ９００で実行される。これら各処理部３００〜３４０は記憶媒体としての二次記憶装置９５０に格納される。
【００３０】
以降の説明においては、ＣＰＵ９００の指示に従って実行される上述の各プログラムを処理の主体として説明する。
【００３１】
図４は、本実施形態のクライアント端末１００のブラウザ１１０とサーバ装置２００のＷｅｂサーバ２１０で行われる処理の実施手順を示すシーケンス図である。
【００３２】
本実施形態では、はじめにユーザ４００がブラウザ１１０に対して、あるＷｅｂページ（ここでは文書１（２２１））の表示を要求する操作を行い、ブラウザ１１０は当該操作をユーザ入力インターフェースから受け付ける（Ｓ１）。
【００３３】
要求を受けたブラウザ１１０は、Ｗｅｂサーバ２１０へ文書１（２２１）を取得するためのリクエストを送信する（Ｓ２）。
【００３４】
要求を受け付けたＷｅｂサーバ２１０は、文書１を特定する。次に、Ｗｅｂサーバ２１０、は文書編集部２１１を用いて文書１に対し後述の汎用Script３００を挿入する処理を実行する（Ｓ３）。最後に、Ｗｅｂサーバ２１０は、汎用Script３００が挿入された文書１を生成して、レスポンスデータとしてブラウザ１１０に送信する（Ｓ４）。
【００３５】
Ｗｅｂサーバ２１０からの応答（Ｗｅｂページ）を受けたブラウザ１１０は、文書１の内容を解析し、解析結果をクライアント端末１００のグラフィックインターフェース９２０に描画する（Ｓ５）ことで、ユーザ４００の要求に応える。上記レスポンスデータの描画と同時（あるいは描画処理の後）に、ブラウザ１１０はJavaScript実行部１１１を用いて、文書１に同梱された汎用Script３００の処理を開始する。
【００３６】
汎用Script３００は、クライアント端末１００のグラフィックインターフェース９２０に文書情報が描画されると同時に、JavaScript実行部１１１がＨＴＭＬ解析部３１０を呼び出すようにプログラムされている。ＨＴＭＬ解析部３１０は、ブラウザ１１０に読み込まれた時点で動作（処理を開始）し、文書１に含まれるリンク情報をイベント記憶部３２０に上書きする処理を行う（Ｓ６）。汎用Script３００はさらに、ＨＴＭＬ解析部３１０の処理終了後は、ユーザ４００の操作に基づいてブラウザ１１０が何かしらのイベントを発行するまで待機するようにプログラムされている。ＨＴＭＬ解析部３１０が実行する処理の具体的な内容は後記する。
【００３７】
続いて、ユーザ４００が文書１の内容を確認後、文書１に含まれる文書２へのリンクをクリックしたとする（Ｓ７）。この時、従来例であればブラウザ１１０はＷｅｂサーバ２１０に文書２の取得について直接要求を行っていたが、上述の通り、ＨＴＭＬ解析部３１０により遷移先が上書きされているため、ブラウザ１１０はJavaScript実行部１１１に格納されているイベント記憶部３２０の呼び出しを行う。
【００３８】
イベント記憶部３２０では、ユーザ４００が文書２へのリンクをクリックしたことをイベント記憶テーブル７００に記憶し（Ｓ８）、通信処理部３３０の呼び出しを行う。イベント記憶テーブル７００の詳細な構成は後記する。
【００３９】
通信処理部３３０は、リンクに定義された文書２を取得するために、文書２の取得をＷｅｂサーバ２１０に要求する（Ｓ９）。なお、通信処理部３３０が発行するＨＴＴＰリクエストは非同期通信を利用しているため、通信処理部３３０が動作している間、ユーザ４００が待たされることはない。
【００４０】
通信処理部３３０からのＨＴＴＰリクエストを受け付けたＷｅｂサーバ２１０は、文書２をＨＴＴＰレスポンスとして応答する（Ｓ１０）。
【００４１】
応答を受信した通信処理部３３０は、文書２を受信結果としてイベント記憶部３２０へ通知する。イベント記憶部３２０は先に記憶したリンクのクリックイベントと関連付けて、文書２を記憶した後、差分抽出部３４０の呼び出しを行う（Ｓ１１）。
【００４２】
差分抽出部３４０では、現在ユーザ４００に表示されているＨＴＭＬ文書（文書１）と文書２の差分抽出を行う（Ｓ１２）。さらに差分抽出部３４０は、差分抽出を行った結果、差分とみなされた部分コンテンツのみを、ＨＴＭＬ制御部１１２が管理するＤＯＭ（Document Object Model）を操作することなどにより表示内容に反映する（Ｓ１３）。
【００４３】
なお、イベント記憶部３２０がユーザのクリックイベントをイベント記憶テーブル７００にイベントを記憶するステップ（Ｓ８）と、イベント記憶部３２０が受信結果をクリックイベントと関連付けてイベント記憶テーブル７００に記憶するステップ（Ｓ１１）を実施することは必須ではなく、省略してもよい。
【００４４】
差分抽出部３４０が実行する差分抽出処理は後述するが、本発明における差分抽出処理の特徴は、差分抽出処理において抽出された差分が入力要素の入力情報であった場合、該差分を差分とはみなさない点である。これは、従来のページ遷移型Ｗｅｂサイトでは、ユーザ操作と通信処理が同期的に実行されていたのに対し、本発明の方式では、ユーザ操作と通信処理が非同期的に実行される。このため、通信処理中にユーザが入力操作を行った場合、この入力操作結果情報は通信結果として得られるコンテンツには含まれないため、差分として抽出される。仮に単純に差分抽出を行った結果を反映した場合、この入力操作結果情報が消失してしまい、ユーザの不満を増長させてしまう可能性がある。このような状況を防止するために、差分抽出結果から入力要素に対する差分を除去することが望ましい。
【００４５】
なお、ユーザ操作の消失を防ぐための方法としては、このような特殊な差分抽出結果の取捨選択を行う方法ではなく、後述するイベント記憶部３２０の記録内容からユーザ操作を復元してもよい。具体的には、イベント記憶部３２０は、ユーザの操作履歴情報を時系列で記録する処理を行う。このため、後述するイベント記憶テーブルを参照することで、通信が開始されて以降、ユーザがどのような操作を行い、操作に対する結果がどのようなものであったかを参照することができる。これを利用すると、単純な差分抽出結果を画面に反映し、一度ユーザ操作を消失させてから、イベント記憶部３２０が記録しているイベントデータ情報を再度画面に反映させることで、ユーザ操作を再現することができるため、このような方法を用いてもよい。
【００４６】
図５は、上記図４の手順において、ブラウザ１１０内で実行される処理のフローチャートによる表現例である。
【００４７】
本実施形態では、はじめにブラウザ１１０は、ユーザ４００からあるＷｅｂページ（ここでは文書１）の表示の要求を受け付けるステップ５０１を実行する。
要求を受けたブラウザ１１０は、Ｗｅｂサーバ２１０から文書１を取得するステップ５０２を実行する。
【００４８】
Ｗｅｂサーバ２１０からの応答を受けたブラウザ１１０は、ブラウザ１１０はJavaScript実行部１１１を用いて、文書１に同梱された汎用Script３００の処理（ＨＴＭＬ解析処理）を開始するステップ５０３を実行する。ＨＴＭＬ解析処理の具体的な内容は後記する。
【００４９】
続いて、ブラウザ１１０は、ユーザがブラウザを閉じるか、もしくは異なるサイトに移動するまで、以下の処理を繰り返す。
【００５０】
はじめに、ブラウザ１１０は、ユーザ４００がマウスクリックや、キーボード入力などの操作を行うまで待機し、ユーザ４００が操作を行ったら、当該イベントを検知し、イベント記憶部３２０に通知する（ステップ５０５）。
【００５１】
イベント記憶部３２０は、ユーザ４００が行った操作内容をイベント記憶テーブル７００に記憶するステップ５０５を実行する。イベント記憶テーブル７００の構成は後記する。
【００５２】
次に、イベント記憶部３２０は、ユーザ４００が行った操作が、通信を伴う操作であるかどうかを判断するステップ５０６を実行する。通信を伴う操作の場合は、ステップ５０７へ進む。なお、ユーザ操作が通信を伴う操作であるかどうかは、ユーザ４００の操作に基づいてブラウザ１１０が発行したイベントの種別、及びユーザ４００が操作したＨＴＭＬ要素の種別により判別することができる。
【００５３】
ユーザ４００が行った操作が通信を伴わない操作である場合、イベント記憶部３２０は、前記ステップ５０５で記憶したイベントと関連付けて、ユーザ操作を記録するステップ５１０を実行し、次のユーザ操作が行われるまで待機する。
【００５４】
ユーザ４００が行った操作が通信を伴う操作である場合、通信処理部３３０は非同期通信を用いてサーバ装置２００から文書情報を取得するステップ５０７を実行する。
【００５５】
サーバ装置２００から文書情報を取得したら、通信処理部３３０は受信した情報をイベント記憶部３２０へ通知し、イベント記憶部３２０は該情報を、ステップ５０５で記憶したイベントと関連付けて記憶するステップ５０８を実行する。
【００５６】
最後に、差分抽出部３４０は、通信処理部３３０が受信した文書情報と現在ブラウザ１１０が表示している文書情報の差分抽出処理、及び差分更新処理を行うステップ５０９を実行し、次のユーザ操作が行われるまで待機する。差分抽出部３４０が実行する処理の詳細は後述する。
【００５７】
なお、前述の通り、イベント記憶部３２０が実行するステップ（５０５、５０８、５１０）は必須ではなく、省略してもよい。
【００５８】
図６は、Ｗｅｂサーバ２１０のＨＴＭＬ文書である文書１のソースと画面の例を示している。
【００５９】
文書１には、文書２、文書３へのリンク(図中のａタグで示される要素)と、フォーム要素が含まれている。フォーム要素には、ユーザの操作に基づいてブラウザ１１０が入力可能なテキストフィールドと、サーバ装置２００にリクエストを発行するためのボタンが含まれている。
【００６０】
図７は、Ｗｅｂサーバ２１０のＨＴＭＬ文書である文書２の例を示している。
文書２の構成は文書１とほぼ同じであるが、文書１に含まれていた文書２へのリンクが、文書１へのリンクになっている点が異なる。このように、従来のページ遷移型Ｗｅｂサイトには、ほとんど差異のないコンテンツが多数格納されるケースが多く存在する。
【００６１】
図８は、汎用Ｓｃｒｉｐｔ３００に含まれるＨＴＭＬ解析部３１０が文書１の解析を行った結果のＨＴＭＬ文書の例である。図６との違いは、文書２へのリンクを表す「ａ」タグにおいて、その遷移先を定義しているhref属性の値が、図６ではサーバ装置２００上の文書２を示す「文書２」という値になっていたのに対し、図８では「javascript:%200voiｄ」に変更され、さらに「ｏｎｃｌｉｃｋ」属性が付与されている点である。この定義により、文書２へのリンクをユーザ４００がクリックした場合、ブラウザ１１０は直接文書２を取得するのではなく、汎用Script３００に含まれるイベント記憶部３２０を呼び出すための処理「recordEvent」を実行する。
【００６２】
同様に、ユーザ４００がフォームの送信を行った場合や、テキストフィールドの内容を更新した場合に、当該イベントがイベント記憶部３２０に通知されるように、フォーム要素にはonsubmit属性、テキストフィールドにはonchange属性が付与されている。
【００６３】
図９Ａ、図９Ｂは、ＨＴＭＬ解析部３１０が実行するＨＴＭＬ文書の解析処理フローの例を示している。以下、図６及び図８を例として、ＨＴＭＬ解析処理の詳細を示す。
【００６４】
ＨＴＭＬ解析部３１０は、図９Ａにおいて、はじめに現在表示されているＨＴＭＬコンテンツのルート要素を取得するステップ６０１を実行する。ここでルート要素とは、ＨＴＭＬコンテンツを構成するタグの最上位に存在するタグを表し、例えば図６では、ｈｔｍｌタグがこれに対応する。
【００６５】
次に、ＨＴＭＬ解析部３１０は、ルート要素を引数として再帰処理を適用するステップ６０２を実行し、処理を終了する。
【００６６】
図９Ｂを用いて、ＨＴＭＬ解析部３１０が実行するステップ６０２の再帰処理について説明する。
【００６７】
ＨＴＭＬ解析部３１０は、はじめに、与えられた要素の全ての子要素を列挙するステップ６０３を実行する。ここで、与えられた要素の全ての子要素とは、与えられた要素の直下に存在する要素全体の集合を表し、例えば図６のｈｔｍｌタグに対応する子要素としては、headタグ、bodyタグが対応する。
【００６８】
ＨＴＭＬ解析部３１０は、ステップ６０３で列挙された各要素Childに対し、以下の処理を適用する。
【００６９】
ＨＴＭＬ解析部３１０は、はじめに、Childが入力要素であるかを調査するステップ６０４を実行する。Childが入力要素でない場合、ステップ６０６に進む。
【００７０】
Childが入力要素である場合、ＨＴＭＬ解析部３１０は、ユーザがChildに対して入力操作を行った際に、それをイベント記憶部３２０が検知できるように、Child要素にイベントを設定するステップ６０５を実行する。
【００７１】
ここで、入力要素とはテキスト入力フィールドやラジオボタン、チェックボックスなど、ユーザが操作可能な要素を表す。Child要素が入力要素である場合には、Childにonclickイベント、もしくはonchangeイベントなど、ユーザの操作に基づいてブラウザが発行するイベントに対して、イベントが発行された際に実行する処理を設定することで、該イベント発生時の処理としてイベント記憶部３２０が呼び出されるようにする。具体的には、図８においてid属性がqueryである要素のように、onchange属性の値として「recordEvent(this)」を設定する。イベントを設定したら、ステップ６０８へ進む。
【００７２】
ＨＴＭＬ解析部３１０は、Childが入力要素でない場合には、Childがリンク要素であるかどうかを判定するステップ６０６を実行する。Childが入力要素でない場合、ステップ６０８に進む。
【００７３】
Childがリンク要素である場合、ＨＴＭＬ解析部３１０は、Childのリンク先をイベント記憶部３２０に上書きするステップ６０７を実行する。ここで、リンク要素とは、図６、図８の「ａ」タグや、formタグなど、他の文書へ遷移するためのリンクを表す要素を指す。具体的な処理例としては、図８に示すように、「ａ」タグのhref属性を「javascript%200void」に変更し、さらにonclick属性を追加し、その値を「recordEvent(this, リンク先文書, ＨＴＴＰメソッド名)」とすることで、当該リンクがクリックされた場合に、イベント記憶部３２０が呼び出されるように設定する。form要素の場合も同様に、action属性、及びsubmit属性を上書きすることで、フォーム送信時にイベント記憶部３２０が呼び出されるように設定する。
【００７４】
続いてＨＴＭＬ解析部３１０は、Childが子要素を持つかどうかを調査するステップ６０８を実行する。Childが子要素を持つ場合には、Childに対して再帰処理を実行するステップ６０９を実行する。Childが子要素を持たない場合には、Childrenに含まれる次の要素に対して、同様の処理を繰り返す。また、ChildがChildrenに含まれる最後の子要素である場合には、再帰処理を終了する。
【００７５】
以上の処理により、サーバ装置２００から受信したＨＴＭＬに含まれる全ての入力要素、及びリンク要素の抽出、及び抽出した要素に対してイベントが発行された際に実行される処理の上書きを行うことができるため、ユーザ４００が何かしらの操作を行うたびに、操作の内容がイベント記憶部３２０に通知される。
【００７６】
図１０は、ブラウザ１１０が保持するイベント記憶テーブル７００の構成を示している。イベント記憶テーブル７００は、汎用Script３００に含まれるイベント記憶部３２０が記憶するデータを記憶するためのテーブルである。なお、図１０ではテーブルの形式を利用しているが、データベースに限定されるものではなく、JavaScriptの変数や、Cookieなどの領域に記録されてもよく、特に制限を設けるものではない。
【００７７】
イベント記憶テーブル７００は、ユーザの操作に基づいてブラウザ１１０が発行したイベントの名称を記録するカラム７０１と、イベントの発行元要素のid属性を表すカラム７０２と、イベントが発行された結果を格納するためのカラム７０３から構成される。なお、カラム７０２に格納される情報はＨＴＭＬ要素を識別可能な情報であればよく、id属性に限定されるものではない。
【００７８】
イベント記憶部３２０は、ユーザ４００が入力要素、もしくはリンク要素に対して操作を行った際、当該操作を契機に実行される。イベント記憶部３２０は、イベント名とイベント発行元のＨＴＭＬ要素、及び当該イベントにより実行された結果を記録する。
【００７９】
具体的には、リンク要素をユーザ４００がクリックした場合は、クリックしたリンク先であるＨＴＭＬ文書が記録される。それ以外のユーザ入力要素（テキストフィールドなど）が変更された場合には、変更された結果の値が記録される。図１０では、まずユーザ４００がidが文書２である要素をクリックし、クリックの結果、文書２が取得され、続いてユーザ４００がidがqueryである要素に「key word」と入力し、続いてユーザ４００がidが文書１である要素をクリックし、その結果文書１が取得され、更にユーザ４００はidがsubmitである要素をクリックしたことで、「key word」に関連するページの検索結果が取得されたことが記録されている。
【００８０】
図１１Ａ、図１１Ｂは、汎用Script３００に含まれる差分抽出部３４０が実行するＨＴＭＬ文書の差分抽出処理、及び抽出した差分の反映処理の一例を示すフローチャートである。
【００８１】
差分抽出部３４０は、図１１Ａにおいて、はじめに現在表示されている文書のルート要素を変数「oElm」、通信処理部３３０が受信した変更後に表示すべき文書のルート要素を変数「nElm」に設定するステップ８０１を実行する。例えば、図６に示した文書１から図７に示した文書２へ遷移した場合、変数「oElm」には文書１のｈｔｍｌタグ、変数「nElm」には文書２のｈｔｍｌタグが設定される。
【００８２】
差分抽出部３４０は、上記で設定した変数「oElm」、及び変数「nElm」を引数として再帰処理を適用するステップ８０２を実行し、処理を終了する。再帰処理は、図１１Ｂで示すように、変数「nElm」を構成する要素の探索を行い、変数「oElm」との差分抽出を行い、検出した差分を画像表示装置９２１の画面に反映するための処理である。
【００８３】
以下では、差分抽出部３４０が実行する再帰処理について、図１１Ｂを参照しながら説明する。
【００８４】
差分抽出部３４０は、はじめに、変数「oElm」の全ての子要素をoChildrenに登録するステップ８０３を実行する。例えば、変数「oElm」が文書１のｈｔｍｌタグである場合には、oChildrenには文書１のheadタグ、及びbodyタグが登録される。
【００８５】
差分抽出部３４０は、変数「nElm」の全ての子要素(nChild)に対して、以下の処理を適用する。これは、例えば、変数「nElm」が文書２のｈｔｍｌタグである場合には、文書２のheadタグ、及びbodyタグをnChildとして、それぞれに対して以下の処理を適用することとなる。
【００８６】
差分抽出部３４０は、はじめに、matchedにfalseを設定するステップ８０４を実行する。
【００８７】
次に、差分抽出部３４０は、matchedがfalseである間、oChildrenに含まれる要素(oChildとする)に対して、以下の処理を繰り返す。
【００８８】
差分抽出部３４０は、nChildがoChildと一致するかどうかを判定するステップ８０５を実行し、一致しない場合は次のoChildを選択し、本ステップを繰り返す。一致した場合は、次のステップ８０６に進む。ここで、nChildとoChildが一致するとは、例えばＨＴＭＬのid属性の値が一致することで、識別することができる。その他、ＨＴＭＬの要素が一致しているかどうかは、要素の属性値やＨＴＭＬの子要素の構成などから判断することができ、これを詳細化することで、より精度の高い差分抽出を実現することができるが、この詳細は本発明の本質とは関わりがなく、従来の差分抽出技術を利用することが可能なため、ここでは説明を省略する。
【００８９】
差分抽出部３４０は、次に、oChildがユーザが編集可能な要素であり、かつ、通信中に変更されたかどうかを判断するステップ８０６を実行する。oChildが変更されている場合、ステップ８０９に進み、変数「oChild」をoChildrenから削除した後、ステップ８１１においてmatched変数をtrueに設定することで、ループ２を終了する。
【００９０】
差分抽出部３４０は、oChildがユーザが編集可能な要素でない場合、oChildに子要素が存在するかどうかを判定するステップ８０７を実行する。
【００９１】
差分抽出部３４０は、oChildに子要素が存在する場合、oChild、及びnChildを引数として、再帰処理の呼び出しを行う（ステップ８０８）。
【００９２】
差分抽出部３４０は、oChildに子要素が存在しない場合には、変数「oChild」をoChildrenから削除するステップ８０９を実行し、ステップ８１０においてmatched変数をtrueに設定することで、ループ２を終了する。
【００９３】
差分抽出部３４０は、ループ２の終了後、matched変数がfalseであるかどうかを調べるステップ８１１を実行する。matched変数がfalseの場合、nChildは現在表示中の画面には含まれていない新たな要素であると判断できる。この場合、まずnChildを引数として図９に示したＨＴＭＬ解析処理５０３の再帰処理を実行するステップ８１２を実行する。これにより、差分として抽出された要素に対してユーザ４００がイベントを発行した場合にも、イベント記憶部３２０に通知されるようになる。  続いて、差分抽出部３４０は、変数「oElm」の子要素としてnChildを追加するステップ８１３を実行する。matchedがtrueの場合には、ステップ８１４へ進む。
【００９４】
差分抽出部３４０は、最後に、oChildrenに残っている要素を、変数「oElm」から削除するステップ８１４を実行する。これは、oChildrenに残っている要素は現在表示されている文書には含まれているが、変更後の文書には含まれていない要素のため、変数「oElm」から削除する必要があるためである。
【００９５】
上述の手順により、本発明によれば、既存ページが持つリンク要素を上書きし、非同期通信を用いて取得したリンク先コンテンツと現在表示されているコンテンツの差分情報のみを画面に反映することで、既存のページ遷移型Ｗｅｂサイトをそのまま利用しながらも、動的Ｗｅｂサイトと同等程度に操作継続性の高いＷｅｂサイトを構築することができるため、動的Ｗｅｂサイトの構築にかかる費用や時間を削減することができる。
【００９６】
また、本発明を用いてページ遷移型Ｗｅｂサイトを動的Ｗｅｂサイトに移行することで、Ｗｅｂサイトのユーザにとっては、Ｗｅｂサイト閲覧時の不要な待ち時間が削減されるなど操作継続性が改善されるため、Ｗｅｂサイト閲覧時の快適性が向上する効果が得られる。
【００９７】
＜第２実施形態＞
次に、第二の実施形態について、図面を用いて説明を行う。
【００９８】
図１２は、第二の実施形態における機能構成の概略図である。本実施形態では、第一の実施形態において汎用Script３００に包含されていた差分抽出部３４０を、Ｗｅｂサーバ２１０に配備している。
【００９９】
本実施形態を用いれば、Ｗｅｂサーバ２１０がブラウザ１１０にコンテンツを送信する前に、前回送信した文書と今回送信する文書の差分抽出を行うことで、通信量を削減することが可能となる。差分抽出部３４０の処理内容は、前記第１実施形態における差分抽出部３４０の処理と同等である。
【０１００】
Ｗｅｂサーバ２１０はブラウザ１１０から文書取得要求を受け付けると、該当する文書に汎用Script３００を挿入する処理と、前回ブラウザ１１０に応答した文書情報と、今回ブラウザ１１０から要求された文書情報の差分（部分コンテンツ）を抽出し、差分情報のみをブラウザ１１０に送信する。差分情報を受信したブラウザ１１０においては、JavaScript実行部１１１において汎用Script３００が実行され、差分情報のみがブラウザ１１０の表示に反映される。
【０１０１】
＜第３実施形態＞
続いて、第三の実施形態について、図面を用いて説明を行う。
【０１０２】
図１３は、第三の実施形態における機能構成の概略図である。本実施形態では、第二の実施形態においてＷｅｂサーバ２１０に配備されていた文書編集部２１１、及び差分抽出部３４０が、ブラウザ１１０とＷｅｂサーバ２１０の仲介を行うプロキシサーバ装置１１００上で稼働するＷｅｂプロキシサーバ１１１０に配備されている。
【０１０３】
プロキシサーバ装置１１００は、クライアント端末１００と同様の構成を持つ汎用計算機であり、また、Ｗｅｂプロキシサーバ１１１０は汎用のＷｅｂプロキシプログラムで実現可能なため、ここでは詳細な説明は省略する。
【０１０４】
Ｗｅｂプロキシサーバ１１１０はブラウザ１１０から文書取得要求を受け付けると、受け付けた要求をそのままＷｅｂサーバ２１０に転送する。要求を受け付けたＷｅｂサーバ２１０は、該当文書情報をＷｅｂプロキシサーバ１１１０に応答する。文書情報を取得したＷｅｂプロキシサーバ１１１０は、文書に汎用Script３００を挿入する処理と、前回ブラウザ１１０に応答した文書情報と、今回Ｗｅｂサーバ２１０から受信した文書情報の差分を抽出し、差分情報のみをブラウザ１１０に送信する。差分情報を受信したブラウザ１１０においては、JavaScript実行部１１１において汎用Script３００が実行され、差分情報のみがブラウザ１１０の表示に反映される。この処理は、第二の実施形態における差分反映処理と同様である。
【産業上の利用可能性】
【０１０５】
以上のように、本発明はＷｅｂサーバとブラウザを実行するクライアント端末を備えた計算機システムや、ブラウザ、Ｗｅｂサーバあるいはプロキシサーバのプログラムに適用することができる。
【符号の説明】
【０１０６】
１００  クライアント端末
１１０  ブラウザ
１１１  ＪａｖａＳｃｒｉｐｔ実行部
１１２  ＨＴＭＬ制御部
２００  サーバ装置
２１０  Ｗｅｂサーバ
２１１  文書編集部
３００  汎用Ｓｃｒｉｐｔ
３１０  ＨＴＭＬ解析部
３２０  イベント記憶部
３３０  通信処理部
３４０  差分抽出部
９００  ＣＰＵ
９１０  ネットワークインタフェース
９２０  グラフィックインタフェース
９２１  画像表示装置
９３０  ユーザ入力インタフェース
９４０  主記憶装置
９５０  二次記憶装置
９６０  システムバス
９７０  ＯＳ
１０００  ネットワーク
１１００  プロキシサーバ装置
１１１０  Ｗｅｂプロキシサーバ
【図１】
2011039668.tif 000003
【図２】
2011039668.tif 000004
【図３】
2011039668.tif 000005
【図４】
2011039668.tif 000006
【図５】
2011039668.tif 000007
【図６】
2011039668.tif 000008
【図７】
2011039668.tif 000009
【図８】
2011039668.tif 000010
【図９Ａ】
2011039668.tif 000011
【図９Ｂ】
2011039668.tif 000012
【図１０】
2011039668.tif 000013
【図１１Ａ】
2011039668.tif 000014
【図１１Ｂ】
2011039668.tif 000015
【図１２】
2011039668.tif 000016
【図１３】
2011039668.tif 000017