JP2018101214A - 情報処理装置、情報処理方法 - Google Patents
情報処理装置、情報処理方法 Download PDFInfo
- Publication number
- JP2018101214A JP2018101214A JP2016245860A JP2016245860A JP2018101214A JP 2018101214 A JP2018101214 A JP 2018101214A JP 2016245860 A JP2016245860 A JP 2016245860A JP 2016245860 A JP2016245860 A JP 2016245860A JP 2018101214 A JP2018101214 A JP 2018101214A
- Authority
- JP
- Japan
- Prior art keywords
- dom tree
- file
- information processing
- processing apparatus
- text file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Document Processing Apparatus (AREA)
Abstract
【課題】Webページの処理に割り当てられる処理能力が少ない機器であっても、Webページの処理を再開する速度を向上させるための技術を提供すること。【解決手段】マークアップ言語で記述されたテキストファイルを取得すると、該テキストファイルのDOMツリーを生成する。テキストファイルと、DOMツリーと、DOMツリーの変更操作を実行可能な外部ファイルと、に基づくWebページの処理を実行する。DOMツリーが外部ファイルにより変更されたか否かを、規定のイベントが発生したことに応じて判断する。DOMツリーが外部ファイルにより変更されていないと判断したことに応じて、規定のイベントの発生後のWebページの処理を、テキストファイルと、DOMツリーと、外部ファイルと、に基づいて実行する。【選択図】図3
Description
本発明は、Webページの処理技術に関するものである。
現在、Webブラウザを搭載し、該Webブラウザ上でWebページを閲覧できる機能を有する装置が普及している。Webページの用途は、ただ閲覧するものから、ユーザの操作に応じてサーバや装置上の情報を操作するものまで幅広い。これに伴い、利用中のWebページの処理を途中で中断し、後で再開できるようにする提案もなされている(特許文献1)。特許文献1では、Webアプリケーション上で商品の発注処理を行う場合、それら処理の中断・再開をできるようにする方法を提案している。特許文献1に記載の技術では、Webページにおいて中断中の処理に関する情報を、サーバ側で保持しておく。そしてWebページを再開する際に、その情報をサーバから取得して再開する。
特許文献1に記載の技術では、特定用途のWebページの利用中にWebページの処理を中断し、後程再開することができるため、ユーザの利便性が向上することが見込める。しかしながら、Webページを表示する装置の中には、組込み機器や、Webブラウザに割り当てられる処理能力が少ない機器も含まれており、それらの装置でWebページを再開するには処理負荷が大きいため、ユーザを待たせてしまうという問題があった。
本発明はこのような問題に鑑みてなされたものであり、Webページの処理に割り当てられる処理能力が少ない機器であっても、Webページの処理を再開する速度を向上させるための技術を提供する。
本発明の一様態は、マークアップ言語で記述されたテキストファイルを取得すると、該テキストファイルのDOMツリーを生成する生成手段と、前記テキストファイルと、前記DOMツリーと、前記DOMツリーの変更操作を実行可能な外部ファイルと、に基づくWebページの処理を実行する実行手段とを備え、前記実行手段は、前記DOMツリーが前記外部ファイルにより変更されたか否かを、規定のイベントが発生したことに応じて判断し、前記DOMツリーが前記外部ファイルにより変更されていないと判断したことに応じて、前記規定のイベントの発生後のWebページの処理を、前記テキストファイルと、前記DOMツリーと、前記外部ファイルと、に基づいて実行することを特徴とする。
本発明の構成によれば、Webページの処理に割り当てられる処理能力が少ない機器であっても、Webページの処理を再開する速度を向上させることができる。
以下、添付図面を参照し、本発明の実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の1つである。
[第1の実施形態]
以下では、次のような構成を有する情報処理装置の一例について説明する。すなわち、この情報処理装置は、マークアップ言語で記述されたテキストファイルを取得すると、該テキストファイルのDOMツリーを生成する。そしてこの情報処理装置は、テキストファイルと、DOMツリーと、DOMツリーの変更操作を実行可能な外部ファイルと、に基づくWebページの処理を実行する。このWebページの処理の実行においては、DOMツリーが外部ファイルにより変更されたか否かを、規定のイベントが発生したことに応じて判断し、変更されていないと判断したことに応じて、規定のイベントの発生後のWebページの処理を、テキストファイルと、DOMツリーと、外部ファイルと、に基づいて実行する。
以下では、次のような構成を有する情報処理装置の一例について説明する。すなわち、この情報処理装置は、マークアップ言語で記述されたテキストファイルを取得すると、該テキストファイルのDOMツリーを生成する。そしてこの情報処理装置は、テキストファイルと、DOMツリーと、DOMツリーの変更操作を実行可能な外部ファイルと、に基づくWebページの処理を実行する。このWebページの処理の実行においては、DOMツリーが外部ファイルにより変更されたか否かを、規定のイベントが発生したことに応じて判断し、変更されていないと判断したことに応じて、規定のイベントの発生後のWebページの処理を、テキストファイルと、DOMツリーと、外部ファイルと、に基づいて実行する。
なお、ここでいうところのWebページの処理とは、テキストファイル(以下ではHTMLファイル)のDOMツリーを元に該テキストファイルの記述を実行することである。テキストファイルの記述には、外部ファイル(以下ではJavaScript(登録商標))への参照(リンク)を示す記述もあり、この記述を実行した場合、該外部ファイルを取得して実行することになる。つまり、外部ファイルを取得して実行する、という処理もWebページの処理に含まれる。
先ず、本実施形態に係る情報処理装置の機能構成例について、図2のブロック図を用いて説明する。なお、図2に示した情報処理装置200の機能構成は、以下に説明する処理に要する構成の一例に過ぎず、全ての機能部が必須であることに限らない。例えば、幾つかの機能部を、該幾つかの機能部の機能を実現する1つの機能部に置き換えても良いし、1つの機能部の代わりに複数の機能部を設けて、該複数の機能部のそれぞれに該1つの機能部の機能を分散させても良い。また、処理の目的などに応じて、幾つかの機能部を削除しても良い。また、以下に説明する各処理は説明順に実行しても良いし、処理によっては順番を逆にしても良いし、並列に行うようにしても良い。
制御部299は、情報処理装置200を構成する各機能部の動作制御を行う。
HTML解釈部202は、Webページを構成するHTMLファイル201を取得し、該取得したHTMLファイル201を解析して該HTMLファイル201のDOMツリー203を生成する。HTMLファイルからDOMツリーを生成する技術については周知の技術であるため、これに係る詳細な説明は省略する。なお、HTML解釈部202はHTMLファイル201を外部の装置(例えばインターネット等のネットワークを介して情報処理装置200と通信可能なサーバ装置)から取得しても良いし、情報処理装置200内のメモリから取得しても良い。つまり、HTML解釈部202によるHTMLファイル201の取得元は、特定の取得元に限らない。そしてHTML解釈部202は、生成したDOMツリー203をDOMツリー保存部210に格納する。ここで、DOMツリー203の保存形式は、木構造を表現した形式であっても良いし、文字列形式に出力した形式であっても良い。
HTML実行部204は、DOMツリー保存部210に格納されたDOMツリー203を元に、標準仕様に合わせてHTMLファイル201の記述を実行する。DOMツリーを元に標準仕様に合わせてHTMLファイルの記述を実行する技術については周知の技術であるため、これに係る詳細な説明は省略する。
表示部205は、HTML実行部204による実行結果を画像や文字などでもって、情報処理装置200が有する表示装置の表示画面上に表示させる。なお、HTML実行部204による実行結果の出力先は情報処理装置200の表示画面に限らず、例えば、外部の装置の表示画面であっても良い。
JavaScript実行部207は、Webページを構成する要素の1つであるJavaScriptファイル206を取得し、該取得したJavaScriptファイル206を実行する。JavaScript実行部207は、例えば、HTMLファイル201内に記述されている「JavaScriptファイル206が保存されているアドレス」を取得し、該取得したアドレスにアクセスしてJavaScriptファイル206を取得する。なお、JavaScriptファイル206の取得形態は特定の取得形態に限らない。JavaScriptファイル206は、DOMツリー保存部210に格納されているDOMツリー203の要素を変更する処理を実行可能なファイルである。
文字列出力部208は、HTML解釈部202がHTMLファイル201の取得時に生成したDOMツリー203(HTMLファイル201から最初に生成したDOMツリー203)を、後述する文字列形式でDOMツリー保存部210に格納する。更に文字列出力部208は、Webページの処理を中断した後で該処理を再開する指示が入力された場合、この時点でDOMツリー保存部210に格納されているDOMツリー203を、後述する文字列形式でDOMツリー保存部210に格納する。
差分抽出部209は、文字列出力部208がDOMツリー保存部210に格納したそれぞれの文字列形式のDOMツリーに差異があるか否かを判断する。
次に、HTMLファイル201及びJavaScriptファイル206が情報処理装置200に入力された場合に情報処理装置200が行う処理について、同処理のフローチャートを示す図3を用いて説明する。
ステップS301では、HTML解釈部202は、取得したHTMLファイル201を解析(解釈)する処理を行う。ステップS302では、HTML解釈部202は、ステップS301における解析(解釈)処理の結果、HTMLファイル201のDOMツリー203を生成する。そしてステップS303では、HTML解釈部202は、ステップS302において生成したDOMツリー203をDOMツリー保存部210に格納する。
ステップS304では、文字列出力部208は、ステップS302においてHTML解釈部202が生成したDOMツリー203を文字列形式でDOMツリー保存部210に格納する。
ここで、文字列出力部208によるDOMツリー203を文字列形式で出力する例について、図4を用いて説明する。図4(A)にはHTMLファイル201の一例を示し、図4(B)には、図4(A)に示したHTMLファイル201のDOMツリー203を文字列形式で出力した結果を示している。また、図4(C)にはHTMLファイル201の一例を示し、図4(D)には、図4(C)に示したHTMLファイル201のDOMツリー203を文字列形式で出力した結果を示している。
まずは図4の出力例における文字列出力規則を説明する。図4の出力例では、一つの行に一つの要素を表現する。ここで言う「要素」とは、HTML標準仕様におけるelementを示す。また図4の出力例では、行の冒頭に、html要素から対象の要素までの階層を数字で示すこととする。出力例の一行には先頭から、「数字」、「コロン」、「要素を表現する文字列」という順に記載する。「コロン」は「数字」と「要素を表現する文字列」の区切り文字である。
続いて、「要素を表現する文字列」を出力する規則を説明する。要素を表現する場合、要素の名前と要素の値を「イコール」で結ぶ。また、属性の名前と属性の値も「イコール」で結ぶ。さらに、要素に関する記述と属性に関する記述を「カンマ」で結ぶ。属性が複数存在する場合は、一行の中に連続して属性に関する記述を記載し、それぞれを「カンマ」で結合する。
図4(A)のHTMLファイル201は、script要素を一つ、body要素を一つ、body要素の中にp要素とdiv要素をそれぞれ一つずつ有するHTMLファイルの一例である。この図4(A)に示したHTMLファイル201のDOMツリー203の文字列を前述した文字列出力規則に従って出力した結果が図4(B)の文字列となる。図4(C)のHTMLファイル201は、body要素を一つ持ち、div要素の中にdiv要素を持つ入れ子構造を一つ有するHTMLファイルの一例である。この図4(C)に示したHTMLファイル201のDOMツリー203の文字列を前述した文字列出力規則に従って出力した結果が図4(D)の文字列となる。
図3に戻って、次に、ステップS305では、JavaScript実行部207は、取得したJavaScriptファイル206を実行する。ステップS306では、制御部299は、Webページの処理を中断する指示が入力されたか否かを判断する。Webページの処理を中断する指示は、例えば、Webブラウザを閉じるボタンがユーザにより押下されたことに応じて、例えばOS(オペレーティングシステム)等から入力される。またWebページの処理を中断する指示は、例えば、情報処理装置200が有する不図示の処理負荷監視モジュールが、情報処理装置200上で動作するその他の処理に処理負荷を集中させるように指示したことで、例えばOS(オペレーティングシステム)等から入力される。
ステップS306における判断の結果、Webページの処理を中断する指示が入力された場合には、処理はステップS309に進み、Webページの処理を中断する指示が入力されていない場合には、処理はステップS307に進む。
ステップS307では、HTML実行部204は、DOMツリー保存部210に格納されているDOMツリー203を元に、標準仕様に合わせてHTMLファイル201の記述を実行する。
ステップS308では、表示部205は、HTML実行部204による実行結果を画像や文字などでもって、情報処理装置200が有する表示装置の表示画面上に表示させる。
一方、ステップS309では、制御部299は、中断中のWebページの処理を再開させる指示(再開指示)が入力されたか否かを判断する。この判断の結果、中断中のWebページの処理を再開させる指示が入力された場合には、処理はステップS311に進み、中断中のWebページの処理を再開させる指示が入力されていない場合には、処理はステップS310に進む。
ステップS310では、制御部299は、規定の時間待機する。そして規定の時間が経過すると、処理はステップS309に進み、再度、ステップS309において、中断中のWebページの処理を再開させる指示が入力されたか否かを判断する。
一方、ステップS311では、文字列出力部208は、この時点でDOMツリー保存部210に格納されているDOMツリー203を文字列形式でDOMツリー保存部210に格納する。ステップS302で生成されたDOMツリー203は、ステップS302以降、Webページの処理を中断するまでの間の期間中にJavaScriptファイル206の実行によりその内容(ツリーの構造や保持する情報)が変更されている可能性がある。つまり、この時点でDOMツリー保存部210に格納されているDOMツリー203は、ステップS302で生成されたDOMツリー203からJavaScriptファイル206の実行によって変更されている可能性がある。
現時点でDOMツリー保存部210に格納されているDOMツリー203が、ステップS302で生成されたDOMツリー203から変更されていない場合、ステップS304において文字列形式で格納されたDOMツリーと、ステップS311において文字列形式で格納されたDOMツリーと、は全く同じである。しかし、現時点でDOMツリー保存部210に格納されているDOMツリー203が、ステップS302で生成されたDOMツリー203から変更されている場合、ステップS304において文字列形式で格納されたDOMツリーと、ステップS311において文字列形式で格納されたDOMツリーと、は異なっている。
ステップS312では、差分抽出部209は、ステップS304において文字列形式で格納されたDOMツリー(文字列1)と、ステップS311において文字列形式で格納されたDOMツリー(文字列2)と、を比較する。この比較の結果、文字列1と文字列2とが同じであれば、ステップS303でDOMツリー保存部210に格納されたDOMツリー203には変化がないことになり、その結果、該DOMツリー203はWebページの処理の再開後に再利用可能と判断される。一方、文字列1と文字列2とが同じではない場合、ステップS303でDOMツリー保存部210に格納されたDOMツリー203には変化があることになり、その結果、該DOMツリー203はWebページの処理の再開後に再利用不可能と判断される。
ステップS312における比較の結果、文字列1と文字列2とが同じであれば、処理はステップS313を介してステップS305に進み、この時点でDOMツリー保存部210に格納されているDOMツリー203を用いて以降の処理が行われる。
一方、ステップS312における比較の結果、文字列1と文字列2とが異なる場合には、処理はステップS313を介してステップS301に進み、以降の処理によって、HTMLファイル201のDOMツリー203を再度生成する。
ここで、DOMツリー203を再利用できるJavaScriptの記述例と、再利用できないJavaScriptの記述例について、図5を用いて説明する。上記の通り、JavaScriptファイル206には、DOMツリー保存部210に格納されているDOMツリー203を変更しないものと変更するものとがある。前者のJavaScriptファイル206は、実行してもDOMツリー保存部210に格納されているDOMツリー203は変更されないため、DOMツリー203を再利用できるJavaScriptに該当する。一方、後者のJavaScriptファイル206は、実行するとDOMツリー保存部210に格納されているDOMツリー203を変更するため、DOMツリー203を再利用できないJavaScriptに該当する。
図5(A)のJavaScriptファイル206は、DOMツリー203から“filterNum”というIdの要素を取得し、その要素の値を数値として取得し、その後、該数値に1を足して“filterNum”というIdの要素の値に上書きする。然るに図5(A)のJavaScriptファイル206を実行すると、DOMツリー203における属性の値が変更されてしまうため、このDOMツリー203は再利用できなくなる。もし図5(A)のJavaScriptファイル206を実行したことで要素の値が変更されたDOMツリー203を再利用したとすると、Webページの処理を中断して再開する度に“filterNum”というIdの要素の値が増加してしまう恐れがある。
一方、図5(B)のJavaScriptファイル206は、情報処理装置200(他の装置でも良い)上に保持されているデータを取得し、該取得したデータの内容をユーザに提示する。このJavaScriptファイル206を実行しても、データの取得は行っているが、データの変更は行っていないため、DOMツリー203には何等影響がなく、このDOMツリー203は再利用できる。もし図5(B)のJavaScriptファイル206を実行した後に、該実行の前からDOMツリー保存部210に格納されているDOMツリー203を再利用したとしても、Webページの処理を中断した後で再開する際にユーザに提示される値は、毎回同じ値となる。
このように本実施形態では、当初のWebページから生成して保存したDOMツリーが変更されない限りは、以降、Webページの処理の中断及び再開があったとしても、DOMツリーを再度生成する必要はなく、この保存しているDOMツリーを再利用してWebページの処理を再開させることができる。これにより、例えば、Webページの表示を中断して再開する際には、再開までに必要な時間を低減することが可能となる。
<変形例>
第1の実施形態では、最初に格納したDOMツリーから変更があったか否かを、DOMツリーを文字列形式で出力した出力結果同士の差分に基づいて判断していたが、これは、DOMツリーに変更があったか否かを判断する判断方法の一例に過ぎない。つまり、最初に格納したDOMツリーから変更があったかを判断するための方法は、第1の実施形態で説明した方法に限らない。
第1の実施形態では、最初に格納したDOMツリーから変更があったか否かを、DOMツリーを文字列形式で出力した出力結果同士の差分に基づいて判断していたが、これは、DOMツリーに変更があったか否かを判断する判断方法の一例に過ぎない。つまり、最初に格納したDOMツリーから変更があったかを判断するための方法は、第1の実施形態で説明した方法に限らない。
[第2の実施形態]
以下では、次のような構成を有する情報処理装置の一例について説明する。すなわちこの情報処理装置は、マークアップ言語で記述されたテキストファイルを取得すると、該テキストファイルのDOMツリーを生成する。そしてこの情報処理装置は、テキストファイルと、DOMツリーと、DOMツリーの変更操作を実行可能な外部ファイルと、に基づくWebページの処理を実行するが、外部ファイルの実行によりDOMツリーが変更された場合には、DOMツリーを削除する。ここで、このWebページの処理の実行においては、DOMツリーが削除されているか否かを、規定のイベントが発生したことに応じて判断し、削除されていないと判断したことに応じて、上記発生後のWebページの処理を、テキストファイルと、DOMツリーと、外部ファイルと、に基づいて実行する。
以下では、次のような構成を有する情報処理装置の一例について説明する。すなわちこの情報処理装置は、マークアップ言語で記述されたテキストファイルを取得すると、該テキストファイルのDOMツリーを生成する。そしてこの情報処理装置は、テキストファイルと、DOMツリーと、DOMツリーの変更操作を実行可能な外部ファイルと、に基づくWebページの処理を実行するが、外部ファイルの実行によりDOMツリーが変更された場合には、DOMツリーを削除する。ここで、このWebページの処理の実行においては、DOMツリーが削除されているか否かを、規定のイベントが発生したことに応じて判断し、削除されていないと判断したことに応じて、上記発生後のWebページの処理を、テキストファイルと、DOMツリーと、外部ファイルと、に基づいて実行する。
第1の実施形態では、最初に格納したDOMツリー203を再利用可能であるか否かを、DOMツリー203を文字列形式で出力した結果同士の差分に基づいて判断していた。本実施形態では、DOMツリーを変更するAPIであるJavaScriptAPIがWebページの処理中に呼び出されたか否かに応じて、最初に格納したDOMツリーを再利用可能であるか否かを判断する。
本実施形態を含め、以下の各実施形態では、第1の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第1の実施形態と同様であるものとする。本実施形態に係る情報処理装置200の機能構成例について、図7のブロック図を用いて説明する。図7において図2と同じ機能部には同じ参照番号を付しており、該機能部に係る説明は省略する。
DOM変更APIリスト211は、JavaScriptに記載されるAPIであって、実行することによりDOMツリーの内容を変更するAPI(DOM変更API)を示す情報(DOM変更API情報)が登録されたリストである。
判定部212は、JavaScript実行部207がJavaScriptファイル206を実行中に呼び出したAPIがDOM変更APIであるか否かを、DOM変更APIリスト211を用いて判定する。
次に、HTMLファイル201及びJavaScriptファイル206が情報処理装置200に入力された場合に情報処理装置200が行う処理について、同処理のフローチャートを示す図6を用いて説明する。図6において図3に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。
ステップS601では、判定部212は、JavaScript実行部207がJavaScriptファイル206を実行中に呼び出したAPIがDOM変更APIであるか否かを、DOM変更APIリスト211を用いて判定する。つまり判定部212は、DOM変更APIリスト211に登録されているDOM変更API情報が示すAPIがJavaScript実行部207によって呼び出されたか否かを判定する。この判定の結果、DOM変更APIが呼び出された場合には、処理はステップS602に進み、DOM変更APIが呼び出されていない場合には、処理はステップS306に進む。ステップS602では、判定部212は、DOMツリー保存部210に格納されているDOMツリー203を削除する。
そして、ステップS309での判断の結果、中断中のWebページの処理を再開させる指示が入力された場合には、処理はステップS603に進む。ステップS603では、制御部299は、DOMツリー保存部210にDOMツリー203が格納されているか否かを判断する。この判断の結果、格納されていると判断した場合、DOM変更APIは呼び出されておらず、従って格納したDOMツリー203は何等変更されていないので、このDOMツリー203は再利用可能と判断し、処理はステップS305に進む。一方、格納されていないと判断した場合、DOM変更APIは呼び出されており、従って格納したDOMツリー203はDOM変更APIによって変更されているので、このDOMツリー203は再利用不可能と判断し、処理はステップS301に進む。
[第3の実施形態]
本実施形態では、最初に格納したDOMツリーの構成が複雑であるのか簡素であるのかに応じて、中断中のWebページの処理を再開させる際にDOMツリーを新たに生成するのか、それとも最初に格納したDOMツリーを再利用するのかを判断する。例えば、シンプルな構成のWebページであれば、HTMLファイルから生成されるDOMツリーもまた簡素な構成を有することになり、このような簡素な構成のDOMツリーは比較的短い時間で生成(構築)することができる。従って、シンプルな構成のWebページを対象とする場合、最初に格納したDOMツリーが再利用可能であるか否かを判断せずにDOMツリーを生成してしまった方が早くWebページの処理を行うことができる場合がある。一方で、複雑な構成のWebページであれば、HTMLファイルから生成されるDOMツリーもまた複雑な構成を有することになり、このような複雑な構成のDOMツリーの生成(構築)には比較的長い時間を要することになる。従って複雑な構成のWebページを対象とする場合、DOMツリーを新たに生成するよりも、先ずは最初に格納したDOMツリーが再利用可能であるか否かを判断した方が、早くWebページの処理を行うことができる場合がある。
本実施形態では、最初に格納したDOMツリーの構成が複雑であるのか簡素であるのかに応じて、中断中のWebページの処理を再開させる際にDOMツリーを新たに生成するのか、それとも最初に格納したDOMツリーを再利用するのかを判断する。例えば、シンプルな構成のWebページであれば、HTMLファイルから生成されるDOMツリーもまた簡素な構成を有することになり、このような簡素な構成のDOMツリーは比較的短い時間で生成(構築)することができる。従って、シンプルな構成のWebページを対象とする場合、最初に格納したDOMツリーが再利用可能であるか否かを判断せずにDOMツリーを生成してしまった方が早くWebページの処理を行うことができる場合がある。一方で、複雑な構成のWebページであれば、HTMLファイルから生成されるDOMツリーもまた複雑な構成を有することになり、このような複雑な構成のDOMツリーの生成(構築)には比較的長い時間を要することになる。従って複雑な構成のWebページを対象とする場合、DOMツリーを新たに生成するよりも、先ずは最初に格納したDOMツリーが再利用可能であるか否かを判断した方が、早くWebページの処理を行うことができる場合がある。
本実施形態に係る情報処理装置200の機能構成例について、図9のブロック図を用いて説明する。なお、図9において図2に示した機能部と同じ機能部には同じ参照番号を付しており、該機能部に係る説明は省略する。
算出部213は、HTML解釈部202が生成したDOMツリー203の複雑度を算出する。そして算出部213は、算出した複雑度が閾値以上である場合には、DOMツリー保存部210に格納されているDOMツリー203を削除する。
次に、HTMLファイル201及びJavaScriptファイル206が情報処理装置200に入力された場合に情報処理装置200が行う処理について、同処理のフローチャートを示す図8を用いて説明する。図8において図3,6に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。
ステップS801では、算出部213は、HTML解釈部202が生成したDOMツリー203の複雑度を算出する。ここで、算出部213によるDOMツリー203の複雑度の算出方法について説明する。
本実施形態では、複雑度の算出に、DOMツリー203に含まれる要素数、属性数、要素の値の数、要素の入れ子の深さ、を利用する。算出式は“複雑度=要素数+属性数+要素の値の数+要素の入れ子の深さ”とする。本実施形態では複雑度の算出に、要素数、属性数、要素の値の数、要素の入れ子の深さ、を利用したが、これら以外の項目を利用してもよいし、これらの項目全てを利用しなくてもよい(1つ以上でよい)。つまり、複雑度を算出するための算出式は特定の算出式に限らない。
図4(A)を例にとると、図4(A)のHTMLファイル(DOMツリー203でも説明は同様)にはhtml、script、body、p、divの5個の要素が存在する。よって、要素数は5である。次に、src要素のみ属性を持つため、属性数は1である。続いて、値を持つ要素はp要素とdiv要素であるため、要素の値の数は2である。最後に、要素の入れ子の深さは2である。よって複雑度は、5+1+2+2=10となる。
図4(C)を例にとると、図4(C)のHTMLファイル(DOMツリー203でも説明は同様)にはhtml、body、div、divの4個の要素が存在する。よって、要素数は4である。次に、属性を持つ要素がないため、属性数は0である。続いて、値を持つ要素は2つのdiv要素であるため、要素の値の数は2である。最後に、要素の入れ子の深さは3である。よって複雑度は、4+0+2+3=9となる。
図8に戻って、次に、ステップS802では、算出部213は、ステップS801において算出した複雑度が閾値以上であるか否かを判断する。この判断の結果、ステップS801において算出した複雑度が閾値以上、すなわちDOMツリー203が複雑であると判断した場合には、処理はステップS803に進む。一方、ステップS801において算出した複雑度が閾値未満、すなわちDOMツリー203が複雑ではないと判断した場合には、処理はステップS301に進む。
図4(A)、(C)を例にとると、それぞれのDOMツリー203の複雑度は10,9である。ここで閾値を10とすると、図4(A)のDOMツリー203の複雑度は10であり閾値以上であるから、図4(A)のDOMツリー203は複雑であると判断される。一方、図4(C)のDOMツリー203の複雑度は9であり閾値未満であるから、図4(C)のDOMツリー203は簡素であると判断される。
ステップS803では、制御部299は、第1の実施形態や第2の実施形態で説明した方法によって、ステップS302で生成されたDOMツリーに変更があったか否かを判断する。この判断の結果、ステップS302で生成されたDOMツリーに変更があった場合には、処理はステップS301に進み、変更がなかった場合には、処理はステップS305に進む。
このような図8のフローチャートに従った処理によれば、ステップS302で生成したDOMツリー203が簡素であれば、以降ではWebページの処理を再開するたびにDOMツリー203を新たに生成することになる。
<変形例1>
第1の実施形態や第2の実施形態においてDOMツリー203の生成後、該DOMツリー203の複雑度が閾値以上であれば第1の実施形態や第2の実施形態を実施し、該複雑度が閾値未満であれば、Webページの処理を再開する度にDOMツリー203を新たに生成するようにしても良い。
第1の実施形態や第2の実施形態においてDOMツリー203の生成後、該DOMツリー203の複雑度が閾値以上であれば第1の実施形態や第2の実施形態を実施し、該複雑度が閾値未満であれば、Webページの処理を再開する度にDOMツリー203を新たに生成するようにしても良い。
[第4の実施形態]
第1〜3の実施形態では、DOMツリー203が変更されたか否かの判断や、DOMツリー203が削除されているか否かの判断を、中断中のWebページの処理を再開させるための指示が入力されたことに応じて発生するイベントの発生に応じて行っていた。しかし、これらの判断のトリガとなるイベント(判断用イベント)は、「中断中のWebページの処理を再開させるための指示が入力される、というイベント」に限らない。つまり、これらの判断を要する機会は何も「中断中のWebページの処理を再開させるための指示が入力されたとき」に限らない。例えば、定期的に発生するイベントを判断用イベントに利用しても良いし、規定の情報の表示を行うイベントを判断用イベントに利用しても良い。以上説明した第1〜4の実施形態の一部若しくは全部は、適宜組み合わせても構わないし、選択的に使用しても構わない。
第1〜3の実施形態では、DOMツリー203が変更されたか否かの判断や、DOMツリー203が削除されているか否かの判断を、中断中のWebページの処理を再開させるための指示が入力されたことに応じて発生するイベントの発生に応じて行っていた。しかし、これらの判断のトリガとなるイベント(判断用イベント)は、「中断中のWebページの処理を再開させるための指示が入力される、というイベント」に限らない。つまり、これらの判断を要する機会は何も「中断中のWebページの処理を再開させるための指示が入力されたとき」に限らない。例えば、定期的に発生するイベントを判断用イベントに利用しても良いし、規定の情報の表示を行うイベントを判断用イベントに利用しても良い。以上説明した第1〜4の実施形態の一部若しくは全部は、適宜組み合わせても構わないし、選択的に使用しても構わない。
[第5の実施形態]
図2,7,9に示した情報処理装置200の各機能部は何れもハードウェアで構成しても良いが、DOMツリー保存部210をメモリで実装し、DOMツリー保存部210以外の各機能部をソフトウェア(コンピュータプログラム)で実装しても良い。後者の場合、DOMツリー保存部210をメモリとして有し、DOMツリー保存部210以外の各機能部に対応するソフトウェアを実行可能なプロセッサを有するコンピュータ装置は、第1〜4の実施形態に係る情報処理装置200に適用可能である。第1〜4の実施形態に係る情報処理装置200に適用可能なコンピュータ装置のハードウェア構成例について、図1のブロック図を用いて説明する。
図2,7,9に示した情報処理装置200の各機能部は何れもハードウェアで構成しても良いが、DOMツリー保存部210をメモリで実装し、DOMツリー保存部210以外の各機能部をソフトウェア(コンピュータプログラム)で実装しても良い。後者の場合、DOMツリー保存部210をメモリとして有し、DOMツリー保存部210以外の各機能部に対応するソフトウェアを実行可能なプロセッサを有するコンピュータ装置は、第1〜4の実施形態に係る情報処理装置200に適用可能である。第1〜4の実施形態に係る情報処理装置200に適用可能なコンピュータ装置のハードウェア構成例について、図1のブロック図を用いて説明する。
CPU101はRAM103やROM102に格納されているコンピュータプログラムやデータを用いて処理を実行する。これによりCPU101は、コンピュータ装置全体の動作制御を行うと共に、第1〜4の実施形態に係る情報処理装置200が行うものとして上述した各処理を実行若しくは制御する。
ROM102には、書き換え不要の本装置の設定データやブートプログラムなどが格納されている。
RAM103は、外部記憶装置104やROM102からロードされたコンピュータプログラムやデータを格納するためのエリア、CPU101が各種の処理を実行する際に用いるワークエリアを有する。このようにRAM103は、各種のエリアを適宜提供することができる。
外部記憶装置104は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置104には、OS(オペレーティングシステム)や、第1〜4の実施形態に係る情報処理装置200が行うものとして上述した各処理をCPU101に実行若しくは制御させるためのコンピュータプログラムやデータが保存されている。外部記憶装置104に保存されているコンピュータプログラムには、図2,7,9においてDOMツリー保存部210以外の各機能部の機能をCPU101に実行させるためのコンピュータプログラムが含まれている。外部記憶装置104に保存されているデータには、HTMLファイル201、JavaScriptファイル206、DOM変更APIリスト211、DOMツリー203が含まれている。また、以上の説明において既知の情報として説明したもの(例えば閾値)も外部記憶装置104に保存されている。
外部記憶装置104に保存されているコンピュータプログラムやデータは、CPU101による制御に従って適宜RAM103にロードされ、CPU101による処理対象となる。なお、DOMツリー保存部210は、RAM103で実装しても良いし、外部記憶装置104で実装しても良い。
表示装置105はCRTや液晶画面、プロジェクタ装置などにより構成されおり、CPU101による処理結果を画像や文字などでもって表示、投影することができる。また、表示装置105は、タッチパネル画面であっても構わない。
CPU101、ROM102、RAM103、外部記憶装置104、表示装置105は何れもバス106に接続されている。なお、第1〜4の実施形態に係る情報処理装置200に適用可能なコンピュータ装置のハードウェア構成例は図1に示した構成に限らない。例えば、HTMLファイル201やJavaScriptファイル206をインターネットなどのネットワークを介して外部のサーバ装置から取得するために通信インタフェースを設けても良い。また、Webページの処理を中断する指示を入力したり、中断中のWebページの処理を再開させる指示を入力するために、キーボードやマウスなどのユーザインターフェースを設けても良い。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
202:HTML解釈部 204:HTML実行部204 207:JavaScript実行部 208:文字列出力部 209:差分抽出部
Claims (13)
- マークアップ言語で記述されたテキストファイルを取得すると、該テキストファイルのDOMツリーを生成する生成手段と、
前記テキストファイルと、前記DOMツリーと、前記DOMツリーの変更操作を実行可能な外部ファイルと、に基づくWebページの処理を実行する実行手段と
を備え、
前記実行手段は、
前記DOMツリーが前記外部ファイルにより変更されたか否かを、規定のイベントが発生したことに応じて判断し、前記DOMツリーが前記外部ファイルにより変更されていないと判断したことに応じて、前記規定のイベントの発生後のWebページの処理を、前記テキストファイルと、前記DOMツリーと、前記外部ファイルと、に基づいて実行する
ことを特徴とする情報処理装置。 - 前記実行手段は、
前記DOMツリーが前記外部ファイルにより変更されていると判断したことに応じて、前記テキストファイルのDOMツリーを新たに生成し、前記発生後のWebページの処理を、前記テキストファイルと、前記新たに生成したDOMツリーと、前記外部ファイルと、に基づいて実行することを特徴とする請求項1に記載の情報処理装置。 - マークアップ言語で記述されたテキストファイルを取得すると、該テキストファイルのDOMツリーを生成する生成手段と、
前記テキストファイルと、前記DOMツリーと、前記DOMツリーの変更操作を実行可能な外部ファイルと、に基づくWebページの処理を実行する実行手段と、
前記外部ファイルの実行により前記DOMツリーが変更された場合には、前記DOMツリーを削除する削除手段と
を備え、
前記実行手段は、
前記削除手段により前記DOMツリーが削除されているか否かを、規定のイベントが発生したことに応じて判断し、前記削除手段により前記DOMツリーが削除されていないと判断したことに応じて、前記規定のイベントの発生後のWebページの処理を、前記テキストファイルと、前記DOMツリーと、前記外部ファイルと、に基づいて実行する
ことを特徴とする情報処理装置。 - 前記実行手段は、
前記削除手段により前記DOMツリーが削除されていると判断したことに応じて、前記テキストファイルのDOMツリーを新たに生成し、前記発生後のWebページの処理を、前記テキストファイルと、前記新たに生成したDOMツリーと、前記外部ファイルと、に基づいて実行することを特徴とする請求項3に記載の情報処理装置。 - 前記実行手段は、前記DOMツリーの複雑度が閾値未満であれば、前記判断を行うことなく前記テキストファイルのDOMツリーを新たに生成し、前記発生後のWebページの処理を、前記テキストファイルと、前記新たに生成したDOMツリーと、前記外部ファイルと、に基づいて実行することを特徴とする請求項1乃至4の何れか1項に記載の情報処理装置。
- 前記実行手段は、前記DOMツリーの複雑度を、該DOMツリーに含まれる要素数、属性数、要素の値の数、要素の入れ子の深さ、のうち1つ以上に基づいて求めることを特徴とする請求項5に記載の情報処理装置。
- 前記規定のイベントは、前記Webページの処理の中断の後に該処理を再開する指示が入力されたことに応じて発生するイベントであることを特徴とする請求項1乃至6の何れか1項に記載の情報処理装置。
- 前記テキストファイルは、HTMLファイルであることを特徴とする請求項1乃至7の何れか1項に記載の情報処理装置。
- 前記外部ファイルは、前記テキストファイルに記述されているリンクによって特定されるファイルであることを特徴とする請求項1乃至8の何れか1項に記載の情報処理装置。
- 前記外部ファイルは、JavaScriptファイルであることを特徴とする請求項1乃至9の何れか1項に記載の情報処理装置。
- 情報処理装置が行う情報処理方法であって、
前記情報処理装置の生成手段が、マークアップ言語で記述されたテキストファイルを取得すると、該テキストファイルのDOMツリーを生成する生成工程と、
前記情報処理装置の実行手段が、前記テキストファイルと、前記DOMツリーと、前記DOMツリーの変更操作を実行可能な外部ファイルと、に基づくWebページの処理を実行する実行工程と
を備え、
前記実行工程では、
前記DOMツリーが前記外部ファイルにより変更されたか否かを、規定のイベントが発生したことに応じて判断し、前記DOMツリーが前記外部ファイルにより変更されていないと判断したことに応じて、前記規定のイベントの発生後のWebページの処理を、前記テキストファイルと、前記DOMツリーと、前記外部ファイルと、に基づいて実行する
ことを特徴とする情報処理方法。 - 情報処理装置が行う情報処理方法であって、
前記情報処理装置の生成手段が、マークアップ言語で記述されたテキストファイルを取得すると、該テキストファイルのDOMツリーを生成する生成工程と、
前記情報処理装置の実行手段が、前記テキストファイルと、前記DOMツリーと、前記DOMツリーの変更操作を実行可能な外部ファイルと、に基づくWebページの処理を実行する実行工程と、
前記情報処理装置の削除手段が、前記外部ファイルの実行により前記DOMツリーが変更された場合には、前記DOMツリーを削除する削除工程と
を備え、
前記実行工程では、
前記削除工程で前記DOMツリーが削除されているか否かを、規定のイベントが発生したことに応じて判断し、前記削除工程で前記DOMツリーが削除されていないと判断したことに応じて、前記規定のイベントの発生後のWebページの処理を、前記テキストファイルと、前記DOMツリーと、前記外部ファイルと、に基づいて実行する
ことを特徴とする情報処理方法。 - コンピュータを、請求項1乃至10の何れか1項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016245860A JP2018101214A (ja) | 2016-12-19 | 2016-12-19 | 情報処理装置、情報処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016245860A JP2018101214A (ja) | 2016-12-19 | 2016-12-19 | 情報処理装置、情報処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018101214A true JP2018101214A (ja) | 2018-06-28 |
Family
ID=62714378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016245860A Pending JP2018101214A (ja) | 2016-12-19 | 2016-12-19 | 情報処理装置、情報処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018101214A (ja) |
-
2016
- 2016-12-19 JP JP2016245860A patent/JP2018101214A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10169481B2 (en) | Method for intelligent web reference preloading based on user behavior prediction | |
US10545749B2 (en) | System for cloud computing using web components | |
WO2021174928A1 (zh) | 页面预渲染方法、装置、电子设备及存储介质 | |
KR102108583B1 (ko) | 인스턴스화가능한 제스처 객체 | |
RU2507573C2 (ru) | Способы для модификации документа с использованием скрытой поверхности переноса | |
US20150012815A1 (en) | Optimization schemes for controlling user interfaces through gesture or touch | |
US9069432B2 (en) | Copy and paste buffer | |
KR20140038989A (ko) | 자동화된 사용자 인터페이스 객체 변환 및 코드 생성 | |
TW201911020A (zh) | 頁面更新方法和裝置 | |
US20180060447A1 (en) | Scoping searches within websites | |
US20170004221A1 (en) | Establishment of state representation of a web page represented in a web browser | |
CA3039009A1 (en) | A method and system for providing and executing web applications | |
KR102040359B1 (ko) | 상태 정보를 위한 동기화 지점 | |
US20240020350A1 (en) | Method and system for navigation control | |
EP3008697B1 (en) | Coalescing graphics operations | |
JP2018101214A (ja) | 情報処理装置、情報処理方法 | |
US11704126B2 (en) | Non-transitory recording medium having computer-readable program recorded thereon, server apparatus, function graph display control apparatus, and function graph display control method | |
WO2017107659A1 (zh) | 在浏览器窗口上展现定制信息的方法、装置和计算设备 | |
US20160170945A1 (en) | Information processing device, information processing method, and computer program product | |
US10885685B2 (en) | Electronic apparatus for drawing graphs of mathematical expressions | |
US9811323B2 (en) | Methods, apparatus, systems and computer readable media for use in association with partitioning and/or rendering | |
US20190187960A1 (en) | Reducing memory usage in software applications | |
US20180246734A1 (en) | Cognitive scrollbar | |
JP4762087B2 (ja) | 画面遷移制御方法、画面提供システム、遷移実行装置及びコンピュータプログラム | |
JP2017004208A (ja) | テスト支援装置、及びテスト支援方法 |