(57)【要約】      （修正有）【課題】Ｗｅｂページの処理に割り当てられる処理能力が少ない機器であっても、Ｗｅｂページの処理を再開する速度を向上させるための技術を提供すること。【解決手段】マークアップ言語で記述されたテキストファイルを取得すると、該テキストファイルのＤＯＭツリーを生成する。テキストファイルと、ＤＯＭツリーと、ＤＯＭツリーの変更操作を実行可能な外部ファイルと、に基づくＷｅｂページの処理を実行する。ＤＯＭツリーが外部ファイルにより変更されたか否かを、規定のイベントが発生したことに応じて判断する。ＤＯＭツリーが外部ファイルにより変更されていないと判断したことに応じて、規定のイベントの発生後のＷｅｂページの処理を、テキストファイルと、ＤＯＭツリーと、外部ファイルと、に基づいて実行する。【選択図】図３
2018101214.tif 000002
【特許請求の範囲】
【請求項１】
マークアップ言語で記述されたテキストファイルを取得すると、該テキストファイルのＤＯＭツリーを生成する生成手段と、
前記テキストファイルと、前記ＤＯＭツリーと、前記ＤＯＭツリーの変更操作を実行可能な外部ファイルと、に基づくＷｅｂページの処理を実行する実行手段と
を備え、
前記実行手段は、
前記ＤＯＭツリーが前記外部ファイルにより変更されたか否かを、規定のイベントが発生したことに応じて判断し、前記ＤＯＭツリーが前記外部ファイルにより変更されていないと判断したことに応じて、前記規定のイベントの発生後のＷｅｂページの処理を、前記テキストファイルと、前記ＤＯＭツリーと、前記外部ファイルと、に基づいて実行する
ことを特徴とする情報処理装置。
【請求項２】
前記実行手段は、
前記ＤＯＭツリーが前記外部ファイルにより変更されていると判断したことに応じて、前記テキストファイルのＤＯＭツリーを新たに生成し、前記発生後のＷｅｂページの処理を、前記テキストファイルと、前記新たに生成したＤＯＭツリーと、前記外部ファイルと、に基づいて実行することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
マークアップ言語で記述されたテキストファイルを取得すると、該テキストファイルのＤＯＭツリーを生成する生成手段と、
前記テキストファイルと、前記ＤＯＭツリーと、前記ＤＯＭツリーの変更操作を実行可能な外部ファイルと、に基づくＷｅｂページの処理を実行する実行手段と、
前記外部ファイルの実行により前記ＤＯＭツリーが変更された場合には、前記ＤＯＭツリーを削除する削除手段と
を備え、
前記実行手段は、
前記削除手段により前記ＤＯＭツリーが削除されているか否かを、規定のイベントが発生したことに応じて判断し、前記削除手段により前記ＤＯＭツリーが削除されていないと判断したことに応じて、前記規定のイベントの発生後のＷｅｂページの処理を、前記テキストファイルと、前記ＤＯＭツリーと、前記外部ファイルと、に基づいて実行する
ことを特徴とする情報処理装置。
【請求項４】
前記実行手段は、
前記削除手段により前記ＤＯＭツリーが削除されていると判断したことに応じて、前記テキストファイルのＤＯＭツリーを新たに生成し、前記発生後のＷｅｂページの処理を、前記テキストファイルと、前記新たに生成したＤＯＭツリーと、前記外部ファイルと、に基づいて実行することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記実行手段は、前記ＤＯＭツリーの複雑度が閾値未満であれば、前記判断を行うことなく前記テキストファイルのＤＯＭツリーを新たに生成し、前記発生後のＷｅｂページの処理を、前記テキストファイルと、前記新たに生成したＤＯＭツリーと、前記外部ファイルと、に基づいて実行することを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記実行手段は、前記ＤＯＭツリーの複雑度を、該ＤＯＭツリーに含まれる要素数、属性数、要素の値の数、要素の入れ子の深さ、のうち１つ以上に基づいて求めることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記規定のイベントは、前記Ｗｅｂページの処理の中断の後に該処理を再開する指示が入力されたことに応じて発生するイベントであることを特徴とする請求項１乃至６の何れか１項に記載の情報処理装置。
【請求項８】
前記テキストファイルは、ＨＴＭＬファイルであることを特徴とする請求項１乃至７の何れか１項に記載の情報処理装置。
【請求項９】
前記外部ファイルは、前記テキストファイルに記述されているリンクによって特定されるファイルであることを特徴とする請求項１乃至８の何れか１項に記載の情報処理装置。
【請求項１０】
前記外部ファイルは、ＪａｖａＳｃｒｉｐｔファイルであることを特徴とする請求項１乃至９の何れか１項に記載の情報処理装置。
【請求項１１】
情報処理装置が行う情報処理方法であって、
前記情報処理装置の生成手段が、マークアップ言語で記述されたテキストファイルを取得すると、該テキストファイルのＤＯＭツリーを生成する生成工程と、
前記情報処理装置の実行手段が、前記テキストファイルと、前記ＤＯＭツリーと、前記ＤＯＭツリーの変更操作を実行可能な外部ファイルと、に基づくＷｅｂページの処理を実行する実行工程と
を備え、
前記実行工程では、
前記ＤＯＭツリーが前記外部ファイルにより変更されたか否かを、規定のイベントが発生したことに応じて判断し、前記ＤＯＭツリーが前記外部ファイルにより変更されていないと判断したことに応じて、前記規定のイベントの発生後のＷｅｂページの処理を、前記テキストファイルと、前記ＤＯＭツリーと、前記外部ファイルと、に基づいて実行する
ことを特徴とする情報処理方法。
【請求項１２】
情報処理装置が行う情報処理方法であって、
前記情報処理装置の生成手段が、マークアップ言語で記述されたテキストファイルを取得すると、該テキストファイルのＤＯＭツリーを生成する生成工程と、
前記情報処理装置の実行手段が、前記テキストファイルと、前記ＤＯＭツリーと、前記ＤＯＭツリーの変更操作を実行可能な外部ファイルと、に基づくＷｅｂページの処理を実行する実行工程と、
前記情報処理装置の削除手段が、前記外部ファイルの実行により前記ＤＯＭツリーが変更された場合には、前記ＤＯＭツリーを削除する削除工程と
を備え、
前記実行工程では、
前記削除工程で前記ＤＯＭツリーが削除されているか否かを、規定のイベントが発生したことに応じて判断し、前記削除工程で前記ＤＯＭツリーが削除されていないと判断したことに応じて、前記規定のイベントの発生後のＷｅｂページの処理を、前記テキストファイルと、前記ＤＯＭツリーと、前記外部ファイルと、に基づいて実行する
ことを特徴とする情報処理方法。
【請求項１３】
コンピュータを、請求項１乃至１０の何れか１項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂページの処理技術に関するものである。
【背景技術】
【０００２】
現在、Ｗｅｂブラウザを搭載し、該Ｗｅｂブラウザ上でＷｅｂページを閲覧できる機能を有する装置が普及している。Ｗｅｂページの用途は、ただ閲覧するものから、ユーザの操作に応じてサーバや装置上の情報を操作するものまで幅広い。これに伴い、利用中のＷｅｂページの処理を途中で中断し、後で再開できるようにする提案もなされている（特許文献１）。特許文献１では、Ｗｅｂアプリケーション上で商品の発注処理を行う場合、それら処理の中断・再開をできるようにする方法を提案している。特許文献１に記載の技術では、Ｗｅｂページにおいて中断中の処理に関する情報を、サーバ側で保持しておく。そしてＷｅｂページを再開する際に、その情報をサーバから取得して再開する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2015-46818号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の技術では、特定用途のＷｅｂページの利用中にＷｅｂページの処理を中断し、後程再開することができるため、ユーザの利便性が向上することが見込める。しかしながら、Ｗｅｂページを表示する装置の中には、組込み機器や、Ｗｅｂブラウザに割り当てられる処理能力が少ない機器も含まれており、それらの装置でＷｅｂページを再開するには処理負荷が大きいため、ユーザを待たせてしまうという問題があった。
【０００５】
本発明はこのような問題に鑑みてなされたものであり、Ｗｅｂページの処理に割り当てられる処理能力が少ない機器であっても、Ｗｅｂページの処理を再開する速度を向上させるための技術を提供する。
【課題を解決するための手段】
【０００６】
本発明の一様態は、マークアップ言語で記述されたテキストファイルを取得すると、該テキストファイルのＤＯＭツリーを生成する生成手段と、前記テキストファイルと、前記ＤＯＭツリーと、前記ＤＯＭツリーの変更操作を実行可能な外部ファイルと、に基づくＷｅｂページの処理を実行する実行手段とを備え、前記実行手段は、前記ＤＯＭツリーが前記外部ファイルにより変更されたか否かを、規定のイベントが発生したことに応じて判断し、前記ＤＯＭツリーが前記外部ファイルにより変更されていないと判断したことに応じて、前記規定のイベントの発生後のＷｅｂページの処理を、前記テキストファイルと、前記ＤＯＭツリーと、前記外部ファイルと、に基づいて実行することを特徴とする。
【発明の効果】
【０００７】
本発明の構成によれば、Ｗｅｂページの処理に割り当てられる処理能力が少ない機器であっても、Ｗｅｂページの処理を再開する速度を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】コンピュータ装置のハードウェア構成例を示すブロック図。
【図２】情報処理装置の機能構成例を示すブロック図。
【図３】情報処理装置２００が行う処理のフローチャート。
【図４】文字列形式の出力例を説明する図。
【図５】ＪａｖａＳｃｒｉｐｔの記述例を説明する図。
【図６】情報処理装置２００が行う処理のフローチャート。
【図７】情報処理装置２００の機能構成例を示すブロック図。
【図８】情報処理装置２００が行う処理のフローチャート。
【図９】情報処理装置２００の機能構成例を示すブロック図。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照し、本発明の実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の１つである。
【００１０】
［第１の実施形態］
以下では、次のような構成を有する情報処理装置の一例について説明する。すなわち、この情報処理装置は、マークアップ言語で記述されたテキストファイルを取得すると、該テキストファイルのＤＯＭツリーを生成する。そしてこの情報処理装置は、テキストファイルと、ＤＯＭツリーと、ＤＯＭツリーの変更操作を実行可能な外部ファイルと、に基づくＷｅｂページの処理を実行する。このＷｅｂページの処理の実行においては、ＤＯＭツリーが外部ファイルにより変更されたか否かを、規定のイベントが発生したことに応じて判断し、変更されていないと判断したことに応じて、規定のイベントの発生後のＷｅｂページの処理を、テキストファイルと、ＤＯＭツリーと、外部ファイルと、に基づいて実行する。
【００１１】
なお、ここでいうところのＷｅｂページの処理とは、テキストファイル（以下ではＨＴＭＬファイル）のＤＯＭツリーを元に該テキストファイルの記述を実行することである。テキストファイルの記述には、外部ファイル（以下ではＪａｖａＳｃｒｉｐｔ（登録商標））への参照（リンク）を示す記述もあり、この記述を実行した場合、該外部ファイルを取得して実行することになる。つまり、外部ファイルを取得して実行する、という処理もＷｅｂページの処理に含まれる。
【００１２】
先ず、本実施形態に係る情報処理装置の機能構成例について、図２のブロック図を用いて説明する。なお、図２に示した情報処理装置２００の機能構成は、以下に説明する処理に要する構成の一例に過ぎず、全ての機能部が必須であることに限らない。例えば、幾つかの機能部を、該幾つかの機能部の機能を実現する１つの機能部に置き換えても良いし、１つの機能部の代わりに複数の機能部を設けて、該複数の機能部のそれぞれに該１つの機能部の機能を分散させても良い。また、処理の目的などに応じて、幾つかの機能部を削除しても良い。また、以下に説明する各処理は説明順に実行しても良いし、処理によっては順番を逆にしても良いし、並列に行うようにしても良い。
【００１３】
制御部２９９は、情報処理装置２００を構成する各機能部の動作制御を行う。
【００１４】
ＨＴＭＬ解釈部２０２は、Ｗｅｂページを構成するＨＴＭＬファイル２０１を取得し、該取得したＨＴＭＬファイル２０１を解析して該ＨＴＭＬファイル２０１のＤＯＭツリー２０３を生成する。ＨＴＭＬファイルからＤＯＭツリーを生成する技術については周知の技術であるため、これに係る詳細な説明は省略する。なお、ＨＴＭＬ解釈部２０２はＨＴＭＬファイル２０１を外部の装置（例えばインターネット等のネットワークを介して情報処理装置２００と通信可能なサーバ装置）から取得しても良いし、情報処理装置２００内のメモリから取得しても良い。つまり、ＨＴＭＬ解釈部２０２によるＨＴＭＬファイル２０１の取得元は、特定の取得元に限らない。そしてＨＴＭＬ解釈部２０２は、生成したＤＯＭツリー２０３をＤＯＭツリー保存部２１０に格納する。ここで、ＤＯＭツリー２０３の保存形式は、木構造を表現した形式であっても良いし、文字列形式に出力した形式であっても良い。
【００１５】
ＨＴＭＬ実行部２０４は、ＤＯＭツリー保存部２１０に格納されたＤＯＭツリー２０３を元に、標準仕様に合わせてＨＴＭＬファイル２０１の記述を実行する。ＤＯＭツリーを元に標準仕様に合わせてＨＴＭＬファイルの記述を実行する技術については周知の技術であるため、これに係る詳細な説明は省略する。
【００１６】
表示部２０５は、ＨＴＭＬ実行部２０４による実行結果を画像や文字などでもって、情報処理装置２００が有する表示装置の表示画面上に表示させる。なお、ＨＴＭＬ実行部２０４による実行結果の出力先は情報処理装置２００の表示画面に限らず、例えば、外部の装置の表示画面であっても良い。
【００１７】
ＪａｖａＳｃｒｉｐｔ実行部２０７は、Ｗｅｂページを構成する要素の１つであるＪａｖａＳｃｒｉｐｔファイル２０６を取得し、該取得したＪａｖａＳｃｒｉｐｔファイル２０６を実行する。ＪａｖａＳｃｒｉｐｔ実行部２０７は、例えば、ＨＴＭＬファイル２０１内に記述されている「ＪａｖａＳｃｒｉｐｔファイル２０６が保存されているアドレス」を取得し、該取得したアドレスにアクセスしてＪａｖａＳｃｒｉｐｔファイル２０６を取得する。なお、ＪａｖａＳｃｒｉｐｔファイル２０６の取得形態は特定の取得形態に限らない。ＪａｖａＳｃｒｉｐｔファイル２０６は、ＤＯＭツリー保存部２１０に格納されているＤＯＭツリー２０３の要素を変更する処理を実行可能なファイルである。
【００１８】
文字列出力部２０８は、ＨＴＭＬ解釈部２０２がＨＴＭＬファイル２０１の取得時に生成したＤＯＭツリー２０３（ＨＴＭＬファイル２０１から最初に生成したＤＯＭツリー２０３）を、後述する文字列形式でＤＯＭツリー保存部２１０に格納する。更に文字列出力部２０８は、Ｗｅｂページの処理を中断した後で該処理を再開する指示が入力された場合、この時点でＤＯＭツリー保存部２１０に格納されているＤＯＭツリー２０３を、後述する文字列形式でＤＯＭツリー保存部２１０に格納する。
【００１９】
差分抽出部２０９は、文字列出力部２０８がＤＯＭツリー保存部２１０に格納したそれぞれの文字列形式のＤＯＭツリーに差異があるか否かを判断する。
【００２０】
次に、ＨＴＭＬファイル２０１及びＪａｖａＳｃｒｉｐｔファイル２０６が情報処理装置２００に入力された場合に情報処理装置２００が行う処理について、同処理のフローチャートを示す図３を用いて説明する。
【００２１】
ステップＳ３０１では、ＨＴＭＬ解釈部２０２は、取得したＨＴＭＬファイル２０１を解析（解釈）する処理を行う。ステップＳ３０２では、ＨＴＭＬ解釈部２０２は、ステップＳ３０１における解析（解釈）処理の結果、ＨＴＭＬファイル２０１のＤＯＭツリー２０３を生成する。そしてステップＳ３０３では、ＨＴＭＬ解釈部２０２は、ステップＳ３０２において生成したＤＯＭツリー２０３をＤＯＭツリー保存部２１０に格納する。
【００２２】
ステップＳ３０４では、文字列出力部２０８は、ステップＳ３０２においてＨＴＭＬ解釈部２０２が生成したＤＯＭツリー２０３を文字列形式でＤＯＭツリー保存部２１０に格納する。
【００２３】
ここで、文字列出力部２０８によるＤＯＭツリー２０３を文字列形式で出力する例について、図４を用いて説明する。図４（Ａ）にはＨＴＭＬファイル２０１の一例を示し、図４（Ｂ）には、図４（Ａ）に示したＨＴＭＬファイル２０１のＤＯＭツリー２０３を文字列形式で出力した結果を示している。また、図４（Ｃ）にはＨＴＭＬファイル２０１の一例を示し、図４（Ｄ）には、図４（Ｃ）に示したＨＴＭＬファイル２０１のＤＯＭツリー２０３を文字列形式で出力した結果を示している。
【００２４】
まずは図４の出力例における文字列出力規則を説明する。図４の出力例では、一つの行に一つの要素を表現する。ここで言う「要素」とは、ＨＴＭＬ標準仕様におけるｅｌｅｍｅｎｔを示す。また図４の出力例では、行の冒頭に、ｈｔｍｌ要素から対象の要素までの階層を数字で示すこととする。出力例の一行には先頭から、「数字」、「コロン」、「要素を表現する文字列」という順に記載する。「コロン」は「数字」と「要素を表現する文字列」の区切り文字である。
【００２５】
続いて、「要素を表現する文字列」を出力する規則を説明する。要素を表現する場合、要素の名前と要素の値を「イコール」で結ぶ。また、属性の名前と属性の値も「イコール」で結ぶ。さらに、要素に関する記述と属性に関する記述を「カンマ」で結ぶ。属性が複数存在する場合は、一行の中に連続して属性に関する記述を記載し、それぞれを「カンマ」で結合する。
【００２６】
図４（Ａ）のＨＴＭＬファイル２０１は、ｓｃｒｉｐｔ要素を一つ、ｂｏｄｙ要素を一つ、ｂｏｄｙ要素の中にｐ要素とｄｉｖ要素をそれぞれ一つずつ有するＨＴＭＬファイルの一例である。この図４（Ａ）に示したＨＴＭＬファイル２０１のＤＯＭツリー２０３の文字列を前述した文字列出力規則に従って出力した結果が図４（Ｂ）の文字列となる。図４（Ｃ）のＨＴＭＬファイル２０１は、ｂｏｄｙ要素を一つ持ち、ｄｉｖ要素の中にｄｉｖ要素を持つ入れ子構造を一つ有するＨＴＭＬファイルの一例である。この図４（Ｃ）に示したＨＴＭＬファイル２０１のＤＯＭツリー２０３の文字列を前述した文字列出力規則に従って出力した結果が図４（Ｄ）の文字列となる。
【００２７】
図３に戻って、次に、ステップＳ３０５では、ＪａｖａＳｃｒｉｐｔ実行部２０７は、取得したＪａｖａＳｃｒｉｐｔファイル２０６を実行する。ステップＳ３０６では、制御部２９９は、Ｗｅｂページの処理を中断する指示が入力されたか否かを判断する。Ｗｅｂページの処理を中断する指示は、例えば、Ｗｅｂブラウザを閉じるボタンがユーザにより押下されたことに応じて、例えばＯＳ（オペレーティングシステム）等から入力される。またＷｅｂページの処理を中断する指示は、例えば、情報処理装置２００が有する不図示の処理負荷監視モジュールが、情報処理装置２００上で動作するその他の処理に処理負荷を集中させるように指示したことで、例えばＯＳ（オペレーティングシステム）等から入力される。
【００２８】
ステップＳ３０６における判断の結果、Ｗｅｂページの処理を中断する指示が入力された場合には、処理はステップＳ３０９に進み、Ｗｅｂページの処理を中断する指示が入力されていない場合には、処理はステップＳ３０７に進む。
【００２９】
ステップＳ３０７では、ＨＴＭＬ実行部２０４は、ＤＯＭツリー保存部２１０に格納されているＤＯＭツリー２０３を元に、標準仕様に合わせてＨＴＭＬファイル２０１の記述を実行する。
【００３０】
ステップＳ３０８では、表示部２０５は、ＨＴＭＬ実行部２０４による実行結果を画像や文字などでもって、情報処理装置２００が有する表示装置の表示画面上に表示させる。
【００３１】
一方、ステップＳ３０９では、制御部２９９は、中断中のＷｅｂページの処理を再開させる指示（再開指示）が入力されたか否かを判断する。この判断の結果、中断中のＷｅｂページの処理を再開させる指示が入力された場合には、処理はステップＳ３１１に進み、中断中のＷｅｂページの処理を再開させる指示が入力されていない場合には、処理はステップＳ３１０に進む。
【００３２】
ステップＳ３１０では、制御部２９９は、規定の時間待機する。そして規定の時間が経過すると、処理はステップＳ３０９に進み、再度、ステップＳ３０９において、中断中のＷｅｂページの処理を再開させる指示が入力されたか否かを判断する。
【００３３】
一方、ステップＳ３１１では、文字列出力部２０８は、この時点でＤＯＭツリー保存部２１０に格納されているＤＯＭツリー２０３を文字列形式でＤＯＭツリー保存部２１０に格納する。ステップＳ３０２で生成されたＤＯＭツリー２０３は、ステップＳ３０２以降、Ｗｅｂページの処理を中断するまでの間の期間中にＪａｖａＳｃｒｉｐｔファイル２０６の実行によりその内容（ツリーの構造や保持する情報）が変更されている可能性がある。つまり、この時点でＤＯＭツリー保存部２１０に格納されているＤＯＭツリー２０３は、ステップＳ３０２で生成されたＤＯＭツリー２０３からＪａｖａＳｃｒｉｐｔファイル２０６の実行によって変更されている可能性がある。
【００３４】
現時点でＤＯＭツリー保存部２１０に格納されているＤＯＭツリー２０３が、ステップＳ３０２で生成されたＤＯＭツリー２０３から変更されていない場合、ステップＳ３０４において文字列形式で格納されたＤＯＭツリーと、ステップＳ３１１において文字列形式で格納されたＤＯＭツリーと、は全く同じである。しかし、現時点でＤＯＭツリー保存部２１０に格納されているＤＯＭツリー２０３が、ステップＳ３０２で生成されたＤＯＭツリー２０３から変更されている場合、ステップＳ３０４において文字列形式で格納されたＤＯＭツリーと、ステップＳ３１１において文字列形式で格納されたＤＯＭツリーと、は異なっている。
【００３５】
ステップＳ３１２では、差分抽出部２０９は、ステップＳ３０４において文字列形式で格納されたＤＯＭツリー（文字列１）と、ステップＳ３１１において文字列形式で格納されたＤＯＭツリー（文字列２）と、を比較する。この比較の結果、文字列１と文字列２とが同じであれば、ステップＳ３０３でＤＯＭツリー保存部２１０に格納されたＤＯＭツリー２０３には変化がないことになり、その結果、該ＤＯＭツリー２０３はＷｅｂページの処理の再開後に再利用可能と判断される。一方、文字列１と文字列２とが同じではない場合、ステップＳ３０３でＤＯＭツリー保存部２１０に格納されたＤＯＭツリー２０３には変化があることになり、その結果、該ＤＯＭツリー２０３はＷｅｂページの処理の再開後に再利用不可能と判断される。
【００３６】
ステップＳ３１２における比較の結果、文字列１と文字列２とが同じであれば、処理はステップＳ３１３を介してステップＳ３０５に進み、この時点でＤＯＭツリー保存部２１０に格納されているＤＯＭツリー２０３を用いて以降の処理が行われる。
【００３７】
一方、ステップＳ３１２における比較の結果、文字列１と文字列２とが異なる場合には、処理はステップＳ３１３を介してステップＳ３０１に進み、以降の処理によって、ＨＴＭＬファイル２０１のＤＯＭツリー２０３を再度生成する。
【００３８】
ここで、ＤＯＭツリー２０３を再利用できるＪａｖａＳｃｒｉｐｔの記述例と、再利用できないＪａｖａＳｃｒｉｐｔの記述例について、図５を用いて説明する。上記の通り、ＪａｖａＳｃｒｉｐｔファイル２０６には、ＤＯＭツリー保存部２１０に格納されているＤＯＭツリー２０３を変更しないものと変更するものとがある。前者のＪａｖａＳｃｒｉｐｔファイル２０６は、実行してもＤＯＭツリー保存部２１０に格納されているＤＯＭツリー２０３は変更されないため、ＤＯＭツリー２０３を再利用できるＪａｖａＳｃｒｉｐｔに該当する。一方、後者のＪａｖａＳｃｒｉｐｔファイル２０６は、実行するとＤＯＭツリー保存部２１０に格納されているＤＯＭツリー２０３を変更するため、ＤＯＭツリー２０３を再利用できないＪａｖａＳｃｒｉｐｔに該当する。
【００３９】
図５（Ａ）のＪａｖａＳｃｒｉｐｔファイル２０６は、ＤＯＭツリー２０３から“ｆｉｌｔｅｒＮｕｍ”というＩｄの要素を取得し、その要素の値を数値として取得し、その後、該数値に１を足して“ｆｉｌｔｅｒＮｕｍ”というＩｄの要素の値に上書きする。然るに図５（Ａ）のＪａｖａＳｃｒｉｐｔファイル２０６を実行すると、ＤＯＭツリー２０３における属性の値が変更されてしまうため、このＤＯＭツリー２０３は再利用できなくなる。もし図５（Ａ）のＪａｖａＳｃｒｉｐｔファイル２０６を実行したことで要素の値が変更されたＤＯＭツリー２０３を再利用したとすると、Ｗｅｂページの処理を中断して再開する度に“ｆｉｌｔｅｒＮｕｍ”というＩｄの要素の値が増加してしまう恐れがある。
【００４０】
一方、図５（Ｂ）のＪａｖａＳｃｒｉｐｔファイル２０６は、情報処理装置２００（他の装置でも良い）上に保持されているデータを取得し、該取得したデータの内容をユーザに提示する。このＪａｖａＳｃｒｉｐｔファイル２０６を実行しても、データの取得は行っているが、データの変更は行っていないため、ＤＯＭツリー２０３には何等影響がなく、このＤＯＭツリー２０３は再利用できる。もし図５（Ｂ）のＪａｖａＳｃｒｉｐｔファイル２０６を実行した後に、該実行の前からＤＯＭツリー保存部２１０に格納されているＤＯＭツリー２０３を再利用したとしても、Ｗｅｂページの処理を中断した後で再開する際にユーザに提示される値は、毎回同じ値となる。
【００４１】
このように本実施形態では、当初のＷｅｂページから生成して保存したＤＯＭツリーが変更されない限りは、以降、Ｗｅｂページの処理の中断及び再開があったとしても、ＤＯＭツリーを再度生成する必要はなく、この保存しているＤＯＭツリーを再利用してＷｅｂページの処理を再開させることができる。これにより、例えば、Ｗｅｂページの表示を中断して再開する際には、再開までに必要な時間を低減することが可能となる。
【００４２】
＜変形例＞
第１の実施形態では、最初に格納したＤＯＭツリーから変更があったか否かを、ＤＯＭツリーを文字列形式で出力した出力結果同士の差分に基づいて判断していたが、これは、ＤＯＭツリーに変更があったか否かを判断する判断方法の一例に過ぎない。つまり、最初に格納したＤＯＭツリーから変更があったかを判断するための方法は、第１の実施形態で説明した方法に限らない。
【００４３】
［第２の実施形態］
以下では、次のような構成を有する情報処理装置の一例について説明する。すなわちこの情報処理装置は、マークアップ言語で記述されたテキストファイルを取得すると、該テキストファイルのＤＯＭツリーを生成する。そしてこの情報処理装置は、テキストファイルと、ＤＯＭツリーと、ＤＯＭツリーの変更操作を実行可能な外部ファイルと、に基づくＷｅｂページの処理を実行するが、外部ファイルの実行によりＤＯＭツリーが変更された場合には、ＤＯＭツリーを削除する。ここで、このＷｅｂページの処理の実行においては、ＤＯＭツリーが削除されているか否かを、規定のイベントが発生したことに応じて判断し、削除されていないと判断したことに応じて、上記発生後のＷｅｂページの処理を、テキストファイルと、ＤＯＭツリーと、外部ファイルと、に基づいて実行する。
【００４４】
第１の実施形態では、最初に格納したＤＯＭツリー２０３を再利用可能であるか否かを、ＤＯＭツリー２０３を文字列形式で出力した結果同士の差分に基づいて判断していた。本実施形態では、ＤＯＭツリーを変更するＡＰＩであるＪａｖａＳｃｒｉｐｔＡＰＩがＷｅｂページの処理中に呼び出されたか否かに応じて、最初に格納したＤＯＭツリーを再利用可能であるか否かを判断する。
【００４５】
本実施形態を含め、以下の各実施形態では、第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第１の実施形態と同様であるものとする。本実施形態に係る情報処理装置２００の機能構成例について、図７のブロック図を用いて説明する。図７において図２と同じ機能部には同じ参照番号を付しており、該機能部に係る説明は省略する。
【００４６】
ＤＯＭ変更ＡＰＩリスト２１１は、ＪａｖａＳｃｒｉｐｔに記載されるＡＰＩであって、実行することによりＤＯＭツリーの内容を変更するＡＰＩ（ＤＯＭ変更ＡＰＩ）を示す情報（ＤＯＭ変更ＡＰＩ情報）が登録されたリストである。
【００４７】
判定部２１２は、ＪａｖａＳｃｒｉｐｔ実行部２０７がＪａｖａＳｃｒｉｐｔファイル２０６を実行中に呼び出したＡＰＩがＤＯＭ変更ＡＰＩであるか否かを、ＤＯＭ変更ＡＰＩリスト２１１を用いて判定する。
【００４８】
次に、ＨＴＭＬファイル２０１及びＪａｖａＳｃｒｉｐｔファイル２０６が情報処理装置２００に入力された場合に情報処理装置２００が行う処理について、同処理のフローチャートを示す図６を用いて説明する。図６において図３に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。
【００４９】
ステップＳ６０１では、判定部２１２は、ＪａｖａＳｃｒｉｐｔ実行部２０７がＪａｖａＳｃｒｉｐｔファイル２０６を実行中に呼び出したＡＰＩがＤＯＭ変更ＡＰＩであるか否かを、ＤＯＭ変更ＡＰＩリスト２１１を用いて判定する。つまり判定部２１２は、ＤＯＭ変更ＡＰＩリスト２１１に登録されているＤＯＭ変更ＡＰＩ情報が示すＡＰＩがＪａｖａＳｃｒｉｐｔ実行部２０７によって呼び出されたか否かを判定する。この判定の結果、ＤＯＭ変更ＡＰＩが呼び出された場合には、処理はステップＳ６０２に進み、ＤＯＭ変更ＡＰＩが呼び出されていない場合には、処理はステップＳ３０６に進む。ステップＳ６０２では、判定部２１２は、ＤＯＭツリー保存部２１０に格納されているＤＯＭツリー２０３を削除する。
【００５０】
そして、ステップＳ３０９での判断の結果、中断中のＷｅｂページの処理を再開させる指示が入力された場合には、処理はステップＳ６０３に進む。ステップＳ６０３では、制御部２９９は、ＤＯＭツリー保存部２１０にＤＯＭツリー２０３が格納されているか否かを判断する。この判断の結果、格納されていると判断した場合、ＤＯＭ変更ＡＰＩは呼び出されておらず、従って格納したＤＯＭツリー２０３は何等変更されていないので、このＤＯＭツリー２０３は再利用可能と判断し、処理はステップＳ３０５に進む。一方、格納されていないと判断した場合、ＤＯＭ変更ＡＰＩは呼び出されており、従って格納したＤＯＭツリー２０３はＤＯＭ変更ＡＰＩによって変更されているので、このＤＯＭツリー２０３は再利用不可能と判断し、処理はステップＳ３０１に進む。
【００５１】
［第３の実施形態］
本実施形態では、最初に格納したＤＯＭツリーの構成が複雑であるのか簡素であるのかに応じて、中断中のＷｅｂページの処理を再開させる際にＤＯＭツリーを新たに生成するのか、それとも最初に格納したＤＯＭツリーを再利用するのかを判断する。例えば、シンプルな構成のＷｅｂページであれば、ＨＴＭＬファイルから生成されるＤＯＭツリーもまた簡素な構成を有することになり、このような簡素な構成のＤＯＭツリーは比較的短い時間で生成（構築）することができる。従って、シンプルな構成のＷｅｂページを対象とする場合、最初に格納したＤＯＭツリーが再利用可能であるか否かを判断せずにＤＯＭツリーを生成してしまった方が早くＷｅｂページの処理を行うことができる場合がある。一方で、複雑な構成のＷｅｂページであれば、ＨＴＭＬファイルから生成されるＤＯＭツリーもまた複雑な構成を有することになり、このような複雑な構成のＤＯＭツリーの生成（構築）には比較的長い時間を要することになる。従って複雑な構成のＷｅｂページを対象とする場合、ＤＯＭツリーを新たに生成するよりも、先ずは最初に格納したＤＯＭツリーが再利用可能であるか否かを判断した方が、早くＷｅｂページの処理を行うことができる場合がある。
【００５２】
本実施形態に係る情報処理装置２００の機能構成例について、図９のブロック図を用いて説明する。なお、図９において図２に示した機能部と同じ機能部には同じ参照番号を付しており、該機能部に係る説明は省略する。
【００５３】
算出部２１３は、ＨＴＭＬ解釈部２０２が生成したＤＯＭツリー２０３の複雑度を算出する。そして算出部２１３は、算出した複雑度が閾値以上である場合には、ＤＯＭツリー保存部２１０に格納されているＤＯＭツリー２０３を削除する。
【００５４】
次に、ＨＴＭＬファイル２０１及びＪａｖａＳｃｒｉｐｔファイル２０６が情報処理装置２００に入力された場合に情報処理装置２００が行う処理について、同処理のフローチャートを示す図８を用いて説明する。図８において図３，６に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。
【００５５】
ステップＳ８０１では、算出部２１３は、ＨＴＭＬ解釈部２０２が生成したＤＯＭツリー２０３の複雑度を算出する。ここで、算出部２１３によるＤＯＭツリー２０３の複雑度の算出方法について説明する。
【００５６】
本実施形態では、複雑度の算出に、ＤＯＭツリー２０３に含まれる要素数、属性数、要素の値の数、要素の入れ子の深さ、を利用する。算出式は“複雑度＝要素数＋属性数＋要素の値の数＋要素の入れ子の深さ”とする。本実施形態では複雑度の算出に、要素数、属性数、要素の値の数、要素の入れ子の深さ、を利用したが、これら以外の項目を利用してもよいし、これらの項目全てを利用しなくてもよい（１つ以上でよい）。つまり、複雑度を算出するための算出式は特定の算出式に限らない。
【００５７】
図４（Ａ）を例にとると、図４（Ａ）のＨＴＭＬファイル（ＤＯＭツリー２０３でも説明は同様）にはｈｔｍｌ、ｓｃｒｉｐｔ、ｂｏｄｙ、ｐ、ｄｉｖの５個の要素が存在する。よって、要素数は５である。次に、ｓｒｃ要素のみ属性を持つため、属性数は１である。続いて、値を持つ要素はｐ要素とｄｉｖ要素であるため、要素の値の数は２である。最後に、要素の入れ子の深さは２である。よって複雑度は、５＋１＋２＋２＝１０となる。
【００５８】
図４（Ｃ）を例にとると、図４（Ｃ）のＨＴＭＬファイル（ＤＯＭツリー２０３でも説明は同様）にはｈｔｍｌ、ｂｏｄｙ、ｄｉｖ、ｄｉｖの４個の要素が存在する。よって、要素数は４である。次に、属性を持つ要素がないため、属性数は０である。続いて、値を持つ要素は２つのｄｉｖ要素であるため、要素の値の数は２である。最後に、要素の入れ子の深さは３である。よって複雑度は、４＋０＋２＋３＝９となる。
【００５９】
図８に戻って、次に、ステップＳ８０２では、算出部２１３は、ステップＳ８０１において算出した複雑度が閾値以上であるか否かを判断する。この判断の結果、ステップＳ８０１において算出した複雑度が閾値以上、すなわちＤＯＭツリー２０３が複雑であると判断した場合には、処理はステップＳ８０３に進む。一方、ステップＳ８０１において算出した複雑度が閾値未満、すなわちＤＯＭツリー２０３が複雑ではないと判断した場合には、処理はステップＳ３０１に進む。
【００６０】
図４（Ａ）、（Ｃ）を例にとると、それぞれのＤＯＭツリー２０３の複雑度は１０，９である。ここで閾値を１０とすると、図４（Ａ）のＤＯＭツリー２０３の複雑度は１０であり閾値以上であるから、図４（Ａ）のＤＯＭツリー２０３は複雑であると判断される。一方、図４（Ｃ）のＤＯＭツリー２０３の複雑度は９であり閾値未満であるから、図４（Ｃ）のＤＯＭツリー２０３は簡素であると判断される。
【００６１】
ステップＳ８０３では、制御部２９９は、第１の実施形態や第２の実施形態で説明した方法によって、ステップＳ３０２で生成されたＤＯＭツリーに変更があったか否かを判断する。この判断の結果、ステップＳ３０２で生成されたＤＯＭツリーに変更があった場合には、処理はステップＳ３０１に進み、変更がなかった場合には、処理はステップＳ３０５に進む。
【００６２】
このような図８のフローチャートに従った処理によれば、ステップＳ３０２で生成したＤＯＭツリー２０３が簡素であれば、以降ではＷｅｂページの処理を再開するたびにＤＯＭツリー２０３を新たに生成することになる。
【００６３】
＜変形例１＞
第１の実施形態や第２の実施形態においてＤＯＭツリー２０３の生成後、該ＤＯＭツリー２０３の複雑度が閾値以上であれば第１の実施形態や第２の実施形態を実施し、該複雑度が閾値未満であれば、Ｗｅｂページの処理を再開する度にＤＯＭツリー２０３を新たに生成するようにしても良い。
【００６４】
［第４の実施形態］
第１〜３の実施形態では、ＤＯＭツリー２０３が変更されたか否かの判断や、ＤＯＭツリー２０３が削除されているか否かの判断を、中断中のＷｅｂページの処理を再開させるための指示が入力されたことに応じて発生するイベントの発生に応じて行っていた。しかし、これらの判断のトリガとなるイベント（判断用イベント）は、「中断中のＷｅｂページの処理を再開させるための指示が入力される、というイベント」に限らない。つまり、これらの判断を要する機会は何も「中断中のＷｅｂページの処理を再開させるための指示が入力されたとき」に限らない。例えば、定期的に発生するイベントを判断用イベントに利用しても良いし、規定の情報の表示を行うイベントを判断用イベントに利用しても良い。以上説明した第１〜４の実施形態の一部若しくは全部は、適宜組み合わせても構わないし、選択的に使用しても構わない。
【００６５】
［第５の実施形態］
図２，７，９に示した情報処理装置２００の各機能部は何れもハードウェアで構成しても良いが、ＤＯＭツリー保存部２１０をメモリで実装し、ＤＯＭツリー保存部２１０以外の各機能部をソフトウェア（コンピュータプログラム）で実装しても良い。後者の場合、ＤＯＭツリー保存部２１０をメモリとして有し、ＤＯＭツリー保存部２１０以外の各機能部に対応するソフトウェアを実行可能なプロセッサを有するコンピュータ装置は、第１〜４の実施形態に係る情報処理装置２００に適用可能である。第１〜４の実施形態に係る情報処理装置２００に適用可能なコンピュータ装置のハードウェア構成例について、図１のブロック図を用いて説明する。
【００６６】
ＣＰＵ１０１はＲＡＭ１０３やＲＯＭ１０２に格納されているコンピュータプログラムやデータを用いて処理を実行する。これによりＣＰＵ１０１は、コンピュータ装置全体の動作制御を行うと共に、第１〜４の実施形態に係る情報処理装置２００が行うものとして上述した各処理を実行若しくは制御する。
【００６７】
ＲＯＭ１０２には、書き換え不要の本装置の設定データやブートプログラムなどが格納されている。
【００６８】
ＲＡＭ１０３は、外部記憶装置１０４やＲＯＭ１０２からロードされたコンピュータプログラムやデータを格納するためのエリア、ＣＰＵ１０１が各種の処理を実行する際に用いるワークエリアを有する。このようにＲＡＭ１０３は、各種のエリアを適宜提供することができる。
【００６９】
外部記憶装置１０４は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置１０４には、ＯＳ（オペレーティングシステム）や、第１〜４の実施形態に係る情報処理装置２００が行うものとして上述した各処理をＣＰＵ１０１に実行若しくは制御させるためのコンピュータプログラムやデータが保存されている。外部記憶装置１０４に保存されているコンピュータプログラムには、図２，７，９においてＤＯＭツリー保存部２１０以外の各機能部の機能をＣＰＵ１０１に実行させるためのコンピュータプログラムが含まれている。外部記憶装置１０４に保存されているデータには、ＨＴＭＬファイル２０１、ＪａｖａＳｃｒｉｐｔファイル２０６、ＤＯＭ変更ＡＰＩリスト２１１、ＤＯＭツリー２０３が含まれている。また、以上の説明において既知の情報として説明したもの（例えば閾値）も外部記憶装置１０４に保存されている。
【００７０】
外部記憶装置１０４に保存されているコンピュータプログラムやデータは、ＣＰＵ１０１による制御に従って適宜ＲＡＭ１０３にロードされ、ＣＰＵ１０１による処理対象となる。なお、ＤＯＭツリー保存部２１０は、ＲＡＭ１０３で実装しても良いし、外部記憶装置１０４で実装しても良い。
【００７１】
表示装置１０５はＣＲＴや液晶画面、プロジェクタ装置などにより構成されおり、ＣＰＵ１０１による処理結果を画像や文字などでもって表示、投影することができる。また、表示装置１０５は、タッチパネル画面であっても構わない。
【００７２】
ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、外部記憶装置１０４、表示装置１０５は何れもバス１０６に接続されている。なお、第１〜４の実施形態に係る情報処理装置２００に適用可能なコンピュータ装置のハードウェア構成例は図１に示した構成に限らない。例えば、ＨＴＭＬファイル２０１やＪａｖａＳｃｒｉｐｔファイル２０６をインターネットなどのネットワークを介して外部のサーバ装置から取得するために通信インタフェースを設けても良い。また、Ｗｅｂページの処理を中断する指示を入力したり、中断中のＷｅｂページの処理を再開させる指示を入力するために、キーボードやマウスなどのユーザインターフェースを設けても良い。
【００７３】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７４】
２０２：ＨＴＭＬ解釈部  ２０４：ＨＴＭＬ実行部２０４  ２０７：ＪａｖａＳｃｒｉｐｔ実行部  ２０８：文字列出力部  ２０９：差分抽出部
【図１】
2018101214.tif 000003
【図２】
2018101214.tif 000004
【図３】
2018101214.tif 000005
【図４】
2018101214.tif 000006
【図５】
2018101214.tif 000007
【図６】
2018101214.tif 000008
【図７】
2018101214.tif 000009
【図８】
2018101214.tif 000010
【図９】
2018101214.tif 000011