(57)【要約】【課題】  マークアップ言語で記述されたテキストデータに基づく初回の画面表示をより高速に行うための技術を提供すること。【解決手段】  マークアップ言語で記述されたテキストデータを取得する。テキストデータにおけるノードのうち、テキストデータに基づく初回の画面表示に影響がないノードとして指定された指定ノード以外のノードを用いてＤＯＭツリーを生成する。【選択図】  図１
2017201490.tif 000002
【特許請求の範囲】
【請求項１】
マークアップ言語で記述されたテキストデータを取得する取得手段と、
前記テキストデータにおけるノードのうち、前記テキストデータに基づく初回の画面表示に影響がないノードとして指定された指定ノード以外のノードを用いてＤＯＭツリーを生成する生成手段と
を備えることを特徴とする情報処理装置。
【請求項２】
更に、
前記指定ノードの子ノードと、前記ＤＯＭツリーにおいて前記指定ノードに該当する位置と、を関連づけてデータベースに登録する登録手段を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記位置はＸＰａｔｈ式であることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記生成手段は、前記テキストデータに基づく画面を表示するブラウザがサポートしていないノードを前記ＤＯＭツリーに登録し、該ノードの子ノードは該ＤＯＭツリーには登録しないことを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記生成手段は、前記テキストデータにおいて表示に関連しないノードは前記ＤＯＭツリーには登録しないことを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
更に、
前記テキストデータに基づく画面において、前記ＤＯＭツリーを操作する入力があった場合、該操作の対象となるノードの子ノードを解析し、該解析の結果を前記ＤＯＭツリーに登録する更新手段
を備えることを特徴とする請求項２に記載の情報処理装置。
【請求項７】
前記更新手段は、
前記解析の結果を、前記操作の対象となるノード以下に前記解析の結果を登録することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
情報処理装置が行う情報処理方法であって、
前記情報処理装置の取得手段が、マークアップ言語で記述されたテキストデータを取得する取得工程と、
前記情報処理装置の生成手段が、前記テキストデータにおけるノードのうち、前記テキストデータに基づく初回の画面表示に影響がないノードとして指定された指定ノード以外のノードを用いてＤＯＭツリーを生成する生成工程と
を備えることを特徴とする情報処理方法。
【請求項９】
コンピュータを、請求項１乃至７の何れか１項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マークアップ言語で記述されたテキストデータに基づく画面の生成技術に関するものである。
【背景技術】
【０００２】
従来から、ユーザはWebブラウザを用いることによって、Webサイト閲覧、オンラインショッピング、文書作成、写真管理、チャットやビデオによるオンラインコミュニケーション、複数人参加型のゲームのプレイ、等を行うことができた。また、パソコンに限らず、携帯電話などのモバイル機器にもWebブラウザが搭載され、外出先におけるWebブラウジングも一般的になった。
【０００３】
ユーザがWebブラウザに対してWebサイト閲覧を指示すると、WebブラウザはHTTP通信やHTTPS暗号通信を用いて、WebサーバからHTML・JavaScript（登録商標）・CSSスタイルシートなどのWebコンテンツを取得する。近年では、従来のHTTP通信を高速化するHTTP2プロトコル、Webサーバとの双方向性通信を可能にするWebSocketプロトコル、を活用したWebサービスも普及しつつある。図１（ａ）の左側は、Webサーバから取得したHTMLデータの一例を示しており、HTMLのマークアップ、JavaScript（登録商標）コード、図１（ｂ）のCSSスタイルシートへの外部参照を含んでいる。
【０００４】
そして、Webブラウザは図１（ｃ）に示す順番でこれらHTMLコンテンツの解析を開始する。WebブラウザはHTMLデータ１０１を受信すると、マークアップに含まれる要素や属性を、ＨＴＭＬパーサ１０２を用いて逐次解析する。解析結果は、図１（ａ）の右側に示す如く開始タグ、終了タグ、要素内容などのイベント毎に取得し、図２（ａ）のツリー構造のDOMツリー１０３をRAM上に逐次構築していく。図２（ｂ）は、DOMツリーの各ノード情報を格納する構造体の一般的な定義を示しており、ノードの型、名前空間、親ノード・子ノードへのポインタ、隣接ノードへのポインタ、属性ノードへのポインタを含む。また、HTMLデータ１０１から参照しているＣＳＳスタイルシート（CSSデータ１０４）をＣＳＳパーサ１０５によって解析し、HTMLデータ１０１の各GUI部品の装飾情報であるスタイルルール１０６をRAM上に構築する。そして、構築したDOMツリー１０３にスタイルルール１０６を適用することによって、DOMツリー１０３とは別に、レンダーツリー１０７と呼ばれるツリー構造の描画データを作成する。そして、レンダーツリー１０７の描画情報を基に、各HTMLコンテンツの配置を決定するレイアウト処理１０８を行う。次に、レイアウト処理１０８を行ったレンダーツリー１０７を、Webブラウザの画面表示に用いるバッファ領域であるサーフェスに描画する（描画１０９）ことによって、ユーザは図３のような、文字や画像、動画を含んだWebページを閲覧可能になる。もし、ユーザによるテキストフィールドへの文字入力や、JavaScript（登録商標）やCSSによるアニメーションが発生した場合には、DOMツリー１０３を更新したのち、レンダーツリー１０７に対して再度レイアウト処理１０８を行い、サーフェスに再描画する。この再レイアウト処理を、例えば30fpsで逐次繰り返すことによって、ユーザは自然なアニメーション表現で、Webページを閲覧することが可能になる。
【０００５】
係る点、従来技術としては、WebブラウザとWebサーバの中間サーバでWebコンテンツを描画し、描画結果のラスタ画像をクライアントに送信することによって、Webブラウザの描画処理を効率化するものがあった（特許文献１）。マウスによる操作入力や文字入力等のユーザ操作情報を中間サーバに送信することによって、インタラクティブなブラウザ操作を実現していた。
【０００６】
また、DOMツリーの構築後に、サイズ情報を持つ属性ノードに対して、サイズを所定割合で一括変更して縮小表示することによって、ユーザによるスクロール操作の手間を省かせるものがあった（特許文献２）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開2011-257988号公報
【特許文献２】特開2014-216682号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来のWebブラウザでは、Webコンテンツの内容にかかわらずHTML全体のDOMツリーを構築するので、RAMサイズに制限のある装置では、データサイズの大きなWebコンテンツを表示できなかった。また、データサイズの大きなWebコンテンツを表示した場合、初期画面を表示するまでに一定の時間がかかるので、ユーザのWebコンテンツ閲覧体験の低下を招いていた。本発明はこのような問題に鑑みてなされたものであり、マークアップ言語で記述されたテキストデータに基づく初回の画面表示をより高速に行うための技術を提供する。
【課題を解決するための手段】
【０００９】
本発明の一様態は、マークアップ言語で記述されたテキストデータを取得する取得手段と、前記テキストデータにおけるノードのうち、前記テキストデータに基づく初回の画面表示に影響がないノードとして指定された指定ノード以外のノードを用いてＤＯＭツリーを生成する生成手段とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明の構成によれば、マークアップ言語で記述されたテキストデータに基づく初回の画面表示をより高速に行うことができる。
【図面の簡単な説明】
【００１１】
【図１】HTMLデータ及びＣＳＳデータの一例、ＨＴＭＬコンテンツの解析の流れを示す図。
【図２】ＤＯＭツリーの一例、DOMツリーの構造体の一般的な定義を示す図。
【図３】Ｗｅｂページの一例を示す図。
【図４】システム、デジタルカメラ２０３の構成例を示すブロック図。
【図５】デジタルカメラ２０３の機能構成例、デジタルカメラ２０３の処理の流れを示す図。
【図６】デジタルカメラ２０３のフローチャート、データベース４０５の構成例を示す図。
【図７】ＤＯＭツリー４０９の構成例、Ｗｅｂページの構成例を示す図。
【図８】更新部４０６が行う処理のフローチャート。
【図９】ＤＯＭツリー４０９の構成例を示す図。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照し、本発明の実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の１つである。
【００１３】
［第１の実施形態］
本実施形態では、取得したＨＴＭＬデータを逐次的に解析してＤＯＭツリーを生成する上記のＤＯＭツリー生成過程において、該ＨＴＭＬデータに基づく初回の画面表示に影響がないノードとして指定された指定ノードはＤＯＭツリーには加えないようにする。このような構成により、上記で説明したＤＯＭツリーよりもデータサイズの小さいＤＯＭツリーを生成することができ、従来よりも高速に上記初回の画面表示を行うことができる。
【００１４】
先ず、本実施形態に係るシステムの構成例について、図４（ａ）を用いて説明する。図４（ａ）に示す如く、本実施形態に係るシステムは、ＰＣ（パーソナルコンピュータ）２０１、デジタルカメラ２０３、プリンタ２０４、サーバ２０５を有しており、それぞれの装置はＬＡＮ２０２に接続されている。ＬＡＮ２０２は有線／無線の何れであっても良いし、その組み合わせであっても良い。
【００１５】
サーバ２０５には、Ｗｅｂコンテンツ（ＨＴＭＬデータ、ＣＳＳデータ、JavaScript（登録商標）のデータ）が登録されている。ＰＣ２０１、デジタルカメラ２０３、プリンタ２０４はサーバ２０５からＷｅｂコンテンツを取得することで、該Ｗｅｂコンテンツに基づく画面を表示することができる。以下では、デジタルカメラ２０３がサーバ２０５からＷｅｂコンテンツを取得した場合における該デジタルカメラ２０３の動作について説明するが、同様の説明は、ＰＣ２０１やプリンタ２０４がＷｅｂコンテンツを取得した場合にも適用可能である。
【００１６】
また、図４（ａ）に示したシステムの構成は一例に過ぎず、例えば、ＬＡＮ２０２に接続されている機器は図４（ａ）に示した機器に限らず、スマートフォンやタブレット端末機器など、他の種類の機器をＬＡＮ２０２に接続しても構わない。然るに、以下に説明するデジタルカメラ２０３の動作は、該他の種類の機器が行っても構わない。また、ＬＡＮ２０２の代わりに若しくは加えてインターネットなど他の種類のネットワークを使用しても構わない。
【００１７】
次に、デジタルカメラ２０３のハードウェア構成例について、図４（ｂ）を用いて説明する。なお、図４（ｂ）は、以下の説明に関連する主要な構成を示したものであり、デジタルカメラ２０３の全ての構成を示しているわけではない。
【００１８】
ＣＰＵ３０１は、ＲＯＭ３０２やＲＡＭ３０３に格納されているコンピュータプログラムやデータを用いて処理を実行することで、デジタルカメラ２０３全体の動作制御を行う。
【００１９】
ＲＯＭ３０２には、デジタルカメラ２０３の動作制御をＣＰＵ３０１に実行若しくは制御させるためのコンピュータプログラムやデータが格納されている。例えばＲＯＭ３０２には、デジタルカメラ２０３が行うものとして後述する各処理をＣＰＵ３０１に実行若しくは制御させるためのコンピュータプログラムやデータが格納されている。
【００２０】
ＲＡＭ３０３は、SRAM、DRAMなどで構成され、記憶部３０４からロードされたコンピュータプログラムやデータを格納するためのエリア、ＬＡＮ  Ｉ／Ｆ３０７を介してＬＡＮ２０２上の機器から受信したデータを格納するためのエリアを有する。更にＲＡＭ３０３は、ＵＳＢ  Ｉ／Ｆ３０９に接続されたＵＳＢ機器から取得したデータを格納するためのエリア、ＣＰＵ３０１が各種の処理を実行する際に用いるワークエリア、を有する。このようにＲＡＭ３０３は、各種のエリアを適宜提供することができる。なお、ＲＡＭ３０３は、汎用ＰＣ等のメモリリソースが潤沢な機器に搭載されているＲＡＭ等のメモリと比べて、その容量は小さい、若しくは本実施形態で説明されるWebブラウジングに使用可能な容量が小さく制限されたメモリである。
【００２１】
記憶部３０４は、ハードディスクドライブ装置などの大容量情報記憶装置である。記憶部３０４には、ＯＳ（オペレーティングシステム）や、撮像した画像のファイルなど、様々な情報が保存されている。なお、ＲＯＭ３０２に格納されているものとして説明したコンピュータプログラムやデータの一部若しくは全部をこの記憶部３０４に保存させても良い。記憶部３０４に保存されているコンピュータプログラムやデータは、ＣＰＵ３０１による制御に従って適宜ＲＡＭ３０３にロードされ、ＣＰＵ３０１による処理対象となる。
【００２２】
操作部３０５は、シャッターボタンや、Ｗｅｂブラウザを操作するために使用するボタン群などの様々なユーザインターフェースにより構成されており、ユーザが操作することで、各種の指示をＣＰＵ３０１に対して入力することができる。
【００２３】
表示部３０６は、液晶画面により構成されており、ＣＰＵ３０１による処理結果を画像や文字などでもって表示することができる。表示部３０６は、例えば、タッチパネル画面である。
【００２４】
ＬＡＮ  Ｉ／Ｆ３０７は、デジタルカメラ２０３を上記のＬＡＮ２０２に接続するためのインターフェースである。ＵＳＢ  Ｉ／Ｆ３０９は、ＵＳＢ機器をデジタルカメラ２０３に直接的若しくは間接的に接続するためのインターフェースである。
【００２５】
本実施形態では、デジタルカメラ２０３の操作者が操作部３０５を操作してサーバ２０５に対してＨＴＭＬデータの送信要求（例えば所望のWebサイトの閲覧指示の送信）を行ったケースについて説明する。この場合、サーバ２０５はデジタルカメラ２０３に対し、該送信要求に応じたＨＴＭＬデータ（必要に応じてＣＳＳデータやJavaScript（登録商標）のデータも）をＬＡＮ２０２を介して送信する。デジタルカメラ２０３は、サーバ２０５から送信されたＨＴＭＬデータをＬＡＮ  Ｉ／Ｆ３０７を介して受信してＲＡＭ３０３や記憶部３０４に取得する。そしてデジタルカメラ２０３は、受信したＨＴＭＬデータの解析処理を実行する。デジタルカメラ２０３において、ＨＴＭＬデータの解析処理（ＤＯＭツリーの生成処理を含む）及びＨＴＭＬデータに基づく画面表示処理に係る機能構成の一例について、図５（ａ）のブロック図を用いて説明する。なお、以下では、図５（ａ）に示した機能部（データベース４０５を除く）を処理の主体として説明するが、実際には、該機能部に対応するコンピュータプログラムをＣＰＵ３０１が実行することで、該機能部の機能が実現される。しかし、図５（ａ）に示した機能部のうち１以上をハードウェアで構成しても構わない。
【００２６】
逐次解析部４０２は、サーバ２０５から取得したＨＴＭＬデータを解析してＤＯＭツリー４０９を生成し、該生成したＤＯＭツリー４０９をＲＡＭ３０３や記憶部３０４に格納する。逐次解析部４０２は判別部４０３を有しており、該判別部４０３は、ＨＴＭＬデータ内の各ノードについて、該ノードが、ＨＴＭＬデータに基づく初回の表示に影響がないノードとして予め指定された指定ノードであるか否かを判断する。そして判別部４０３は、ＨＴＭＬデータにおいて指定ノードに該当するノードを保存部４０４に通知する。
【００２７】
保存部４０４は、判別部４０３から通知されたノードの子ノードと、該ノードをＤＯＭツリーに配置する場合における該ノードのＤＯＭツリーにおける配置位置ＸＰａｔｈ式と、を関連づけてデータベース４０５に登録する。データベース４０５は、ＲＡＭ３０３や記憶部３０４内に設けられるものである。
【００２８】
更新部４０６は判別部４０７及び解析部４０８を有し、ユーザからの操作がＤＯＭツリー４０９に対する操作であれば、データベース４０５に登録された情報に基づいてＤＯＭツリー４０９を更新する。
【００２９】
次に、逐次解析部４０２が行うＨＴＭＬデータの逐次解析処理（ＤＯＭツリーの生成処理を含む）について、同処理のフローチャートを示す図６（ａ）、同処理の流れを示す図５（ｂ）を用いて説明する。以下では、逐次解析部４０２が図１（ａ）のＨＴＭＬデータを取得して解析する例について説明する。また、図５（ｂ）において図１（ｃ）と同様の部分には同じ参照番号を付しており、その説明は上記の通りであるから省略する。
【００３０】
ステップＳ１０２では、逐次解析部４０２は、図１（ａ）のＨＴＭＬデータ１０１を受けると、ＤＯＭツリー４０９を初期化する。次にステップＳ１０３では、逐次解析部４０２は、ＳＡＸパーサを用いたＨＴＭＬデータ１０１の解析処理を開始する。以降、ＳＡＸパーサによるＨＴＭＬデータ１０１の解析処理は、図６（ａ）のフローチャートに従った処理と並行して行われているものとする。
【００３１】
次に、ステップＳ１０４では、逐次解析部４０２は、SAXパーサからＨＴＭＬデータ１０１の解析終了を示すEndDocumentイベントを受け取ったか否かを判断する。この判断の結果、EndDocumentイベントを受け取った場合には、図６（ａ）のフローチャートに従った処理は終了する。一方、EndDocumentイベントを受け取っていない場合には、処理はステップＳ１０５に進む。
【００３２】
ステップＳ１０５では、判別部４０３は、ＳＡＸパーサがこれから解析しようとする対象ノードが表示に関連するノードであるか否かを判断する。この判断の結果、対象ノードが表示に関連するノードであれば、処理はステップＳ１０７に進み、対象ノードが表示に関連しないノードであれば、処理はステップＳ１０６に進む。
【００３３】
図１（ａ）のＨＴＭＬデータは、head要素以下にmeta要素を用いて本ＨＴＭＬデータのキーワードを含んでいるが、このキーワードは主に検索エンジンへのヒント情報であり、表示に関連しないノードである。また、ＨＴＭＬデータがmeta要素を用いて、例えば＜meta name='robots' content='index, nofollow'＞を含む場合がある。これは、検索サービスの巡回プログラムに対して、本ＨＴＭＬデータに対するインデックス処理の扱いを指示するものであるから、表示に関連しないノードである。
【００３４】
ステップＳ１０６では、逐次解析部４０２は、ＳＡＸパーサに対象ノードの解析はスキップさせる。つまり、ＳＡＸパーサは対象ノードの解析はスキップし、次のノードを対象ノードとする。そして処理はステップＳ１０４に戻る。
【００３５】
一方、ステップＳ１０７では、逐次解析部４０２は、対象ノードが、スタイルシートの記述を含むstyle要素であるか否かを判断する。この判断の結果、対象ノードがスタイルシートの記述を含むstyle要素である場合には、処理はステップＳ１０８に進み、対象ノードがスタイルシートの記述を含むstyle要素ではない場合には、処理はステップＳ１０９に進む。
【００３６】
ステップＳ１０８では、逐次解析部４０２は、ＣＳＳパーサ１０５を用いて、対象ノードに対応するスタイルシートであるＣＳＳデータ１０４を解析する。そして処理はステップＳ１０４に戻る。
【００３７】
ステップＳ１０９では、逐次解析部４０２は、対象ノードが、デジタルカメラ２０３に搭載されているＷｅｂブラウザがサポートしている要素であるか否かを判断する。この判断の結果、対象ノードが、デジタルカメラ２０３に搭載されているＷｅｂブラウザがサポートしている要素である場合には、処理はステップＳ１１１に進む。一方、対象ノードが、デジタルカメラ２０３に搭載されているＷｅｂブラウザがサポートしていない要素である場合には、処理はステップＳ１１０に進む。
【００３８】
ステップＳ１１０では、逐次解析部４０２は、対象ノードをＤＯＭツリー４０９に追加し、対象ノードの子ノードはＤＯＭツリー４０９には追加しない。その理由は、ＨＴＭＬデータが表すＷｅｂページのレイアウトを維持するためである。本実施形態では、Webブラウザはvideo要素による動画再生に未対応であると仮定する。この場合、本ステップでは、video要素のみをＤＯＭツリー４０９に追加し、その子要素のsource要素はＤＯＭツリー４０９には追加しない。
【００３９】
ステップＳ１１１では、判別部４０３は、対象ノードが、ＨＴＭＬデータ１０１に基づく初回の画面表示に影響がないノードとして指定された指定ノードに該当するか否かを判断する。この判断の結果、対象ノードが指定ノードに該当する場合には、処理はステップＳ１１２に進む。一方、対象ノードが指定ノードに該当しない場合には、処理はステップＳ１１３に進む。
【００４０】
ＨＴＭＬデータ１０１が参照するＣＳＳデータ１０４が図１（ｂ）のCSSスタイルシートの場合、クラスnextのプロパティvisibilityの値はhiddenであるから、クラスnextが指定された要素以下は指定ノードに該当する。他に、CSSプロパティdisplayに対して値noneの指定のあるノードを含む場合も同様に、指定ノードに該当する。
【００４１】
ステップＳ１１２では、判別部４０３は対象ノードを保存部４０４に通知する。保存部４０４は、対象ノードの子ノードと、対象ノードをＤＯＭツリーに配置する場合における該対象ノードのＤＯＭツリーにおける配置位置ＸＰａｔｈ式と、を関連づけてデータベース４０５に登録する。
【００４２】
データベース４０５に登録した子ノード及び配置情報ＸＰａｔｈ式の位置例を図６（ｂ）に示す。図１（ａ）のＨＴＭＬデータ１０１においてbody要素以下の２番目のdiv要素は、ＣＳＳデータ１０４によって初期状態では非表示と指定しているので、対象ノードに該当する。然るにこの場合は、２番目のdiv要素の子ノード（対比した部分ＨＴＭＬ）と、２番目のdiv要素のＤＯＭツリーにおける配置位置ＸＰａｔｈ式と、がデータベース４０５に登録される。
【００４３】
ステップＳ１１３では、逐次解析部４０２は、対象ノードをＤＯＭツリー４０９に追加する。図６（ａ）のフローチャートに従った処理によって生成されたＤＯＭツリー４０９の構成例を図７（ａ）に示す。図７（ａ）に示す如く、ＤＯＭツリー４０９には、ＨＴＭＬデータ１０１に基づく初回の画面表示に影響がないノードは登録されていない。図７（ａ）のＤＯＭツリー４０９に沿って生成される表示画面（Ｗｅｂページ）の一例を図７（ｂ）に示す。上記の通り本実施形態では、Webブラウザはvideo要素による動画再生に未対応であると仮定した。そのため、２番目のdiv要素の子ノードはＤＯＭツリー４０９に登録されておらず、然るに表示画面には動画は表示されずに動画の矩形枠（動画枠）が表示される。
【００４４】
ここで、ユーザが操作部３０５を操作して動画再生ボタンを指示したとする。このとき、更新部４０６は、図８のフローチャートに従った処理を行う。動画再生ボタンが指示されると、onclick属性の値に指定したJavaScript（登録商標）コードを実行するものとする。
【００４５】
ステップＳ２０２では、更新部４０６は、JavaScript（登録商標）コードの実行を終了したか否かを判断する。この判断の結果、JavaScript（登録商標）コードの実行を終了した場合には、図８のフローチャートに従った処理は終了する。一方、JavaScript（登録商標）コードの実行を終了していない場合には、処理はステップＳ２０３に進む。
【００４６】
ステップＳ２０３では、更新部４０６は、次の未処理の１ラインに相当するコマンド（JavaScript（登録商標））を実行する。そしてステップＳ２０４では更新部４０６は、実行したJavaScript（登録商標）がＤＯＭツリー４０９に対する操作か否かを判断する。この判断の結果、実行したJavaScript（登録商標）がＤＯＭツリー４０９に対する操作であれば、処理はステップＳ２０５に進む。一方、実行したJavaScript（登録商標）がＤＯＭツリー４０９に対する操作ではない場合には、処理はステップＳ２０２に戻る。
【００４７】
ステップＳ２０５では、判別部４０７は、実行したJavaScript（登録商標）による操作対象となるＤＯＭツリー４０９のノードが、データベース４０５に登録されたノードであるか否かを、データベース４０５の各レコードのXPath式を用いて判断する。この判断の結果、実行したJavaScript（登録商標）による操作対象となるＤＯＭツリー４０９のノードが、データベース４０５に登録されたノードである場合には、処理はステップＳ２０６に進む。一方、実行したJavaScript（登録商標）による操作対象となるＤＯＭツリー４０９のノードが、データベース４０５に登録されたノードではない場合には、処理はステップＳ２０２に戻る。
【００４８】
ステップＳ２０６では、解析部４０８は、実行したJavaScript（登録商標）による操作対象となるＤＯＭツリー４０９のノード（データベース４０５に登録されたノード）を、図６（ａ）の処理手順でもって解析する。
【００４９】
ステップＳ２０７では、更新部４０６は、実行したJavaScript（登録商標）による操作対象となるＤＯＭツリー４０９のノード（データベース４０５に登録されたノード）と関連づけてデータベース４０５に登録されているＸＰａｔｈ式を特定する。そして更新部４０６は、ＤＯＭツリー４０９において、該特定したＸＰａｔｈ式が示すノード以下に、ステップＳ２０６における解析結果を子ノードとして追加する。
【００５０】
図８のフローチャートに沿った処理により更新されたＤＯＭツリー４０９の構成例を図９（ａ）に示す。JavaScript（登録商標）コードのDOM操作によって、XPath式"／html／body／div[0]"のノードは非表示になり、XPath式"／html／body／div[1]"のノードは表示状態になり、９月分のアルバム内容が表示される。
【００５１】
以上説明した第１の実施形態によれば、従来よりデータサイズの小さいＤＯＭツリーを生成することができるため、RAMの容量が制限された場合でもWebブラウザ起動時の画面表示を高速に行うことができる。なお、第１の実施形態は、デジタルカメラ２０３に組み込まれたWebブラウザの利用時の動作を説明したが、これは一例であり、本実施形態は例えばプリンタ２０４等、他の電子機器に組み込まれたWebブラウザの利用時の動作にも同様に適用可能である。
【００５２】
［第２の実施形態］
第１の実施形態では、マークアップ言語の一例としてＨＴＭＬを採用したが、他の種類のマークアップ言語を採用しても構わない。即ち、第１の実施形態で説明したデジタルカメラ２０３は、次のような構成の情報処理装置の一例である。即ち、マークアップ言語で記述されたテキストデータを取得し、該テキストデータにおけるノードのうち該テキストデータに基づく初回の画面表示に影響がないノードとして指定された指定ノード以外のノードを用いてＤＯＭツリーを生成する構成である。
【００５３】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５４】
４０２：逐次解析部  ４０３：判別部  ４０４：保存部  ４０５：データベース  ４０９：ＤＯＭツリー
【図１】
2017201490.tif 000003
【図２】
2017201490.tif 000004
【図３】
2017201490.tif 000005
【図４】
2017201490.tif 000006
【図５】
2017201490.tif 000007
【図６】
2017201490.tif 000008
【図７】
2017201490.tif 000009
【図８】
2017201490.tif 000010
【図９】
2017201490.tif 000011