(57)【要約】【課題】マークアップ言語ファイルをサーバからブラウザにロードし、格納するとき、速度を増し、コンピュータ・リソースの要求を減少させる。【解決手段】サーバにおいて、ブラウザから少なくとも１つのマークアップ言語ページの要求を受け取り、どのカスケーディング・スタイル・シート（ＣＳＳ）クラスが前記マークアップ言語ページと共に使用されるかを判断し、前記マークアップ言語ページを前記ブラウザにロードし、前記マークアップ言語ページと共に使用されるＣＳＳクラスだけを前記ブラウザにロードし、該ブラウザが、前記ＣＳＳクラスを該マークアップ言語ページ内の表示可能なオブジェクトに適用し、かつ、該マークアップ言語ページを表示することを可能にする、ステップを含む。【選択図】図１
2007287146.tif 000002
【特許請求の範囲】
【請求項１】
サーバにおいて、ブラウザから少なくとも１つのマークアップ言語ページの要求を受け取り、
どのカスケーディング・スタイル・シート（ＣＳＳ）クラスが前記マークアップ言語ページと共に使用されるかを判断し、
前記マークアップ言語ページを前記ブラウザにロードし、
前記マークアップ言語ページと共に使用されるＣＳＳクラスだけを前記ブラウザにロードし、該ブラウザが、前記ＣＳＳクラスを該マークアップ言語ページ内の表示可能なオブジェクトに適用し、かつ、該マークアップ言語ページを表示することを可能にする、
ステップを含むことを特徴とする方法。
【請求項２】
サーバにおいて、ブラウザから少なくとも１つのマークアップ言語ページの要求を受け取り、
どのカスケーディング・スタイル・シート（ＣＳＳ）クラスが前記マークアップ言語ページと共に使用されるかを判断し、
同じ名前及び同じプロパティを有する重複するＣＳＳクラスをログに記録し、
同じ名前を有するが、異なるプロパティを有する同音異義のＣＳＳクラスをログに記録し、
同じプロパティを有するが、異なる名前を有する同義のＣＳＳクラスをログに記録し、
前記マークアップ言語ページを前記ブラウザにロードし、
前記マークアップ言語ページと共に使用されるＣＳＳクラスだけを前記ブラウザにロードし、該ブラウザが、前記ＣＳＳクラスを該マークアップ言語ページ内の表示可能なオブジェクトに適用し、かつ、該マークアップ言語ページを表示することを可能にする、
ステップを含むことを特徴とする方法。
【請求項３】
マークアップ言語ページの要求を受け取る前に、プロセス内の前記マークアップ言語ページと共に使用されるカスケーディング・スタイル・シート（ＣＳＳ）クラスを処理する方法であって、
同じ名前及び同じプロパティを有する重複するＣＳＳクラスをログに記録し、
同じ名前を有するが、異なるプロパティを有する同音異義のＣＳＳクラスをログに記録し、
同じプロパティを有するが、異なる名前を有する同義のＣＳＳクラスをログに記録し、
いずれのマークアップ言語ページによっても使用されない未使用のＣＳＳクラスをログに記録し、
前記マークアップ言語ページの各々によって使用されるＣＳＳクラスを識別するページ・クラス定義ファイルを作成し、
サーバにおいて、ブラウザから少なくとも１つの前記マークアップ言語ページの前記要求を受け取り、
前記ページ・クラス定義ファイルを用いて、どのＣＳＳクラスが前記マークアップ言語ページと共に使用されるかを判断し、
前記マークアップ言語ページを前記ブラウザにロードし、
前記マークアップ言語ページと共に使用されるＣＳＳクラスだけを前記ブラウザにロードし、該ブラウザが、前記ＣＳＳクラスを該マークアップ言語ページ内の表示可能なオブジェクトに適用し、かつ、該マークアップ言語ページを表示することを可能にする、
ステップを含むことを特徴とする方法。
【請求項４】
コンピュータ・プログラム製品であって、
コンピュータによって実行されるとき、コンピュータに、
サーバにおいて、ブラウザから少なくとも１つのマークアップ言語ページの要求を受け取り、
どのカスケーディング・スタイル・シート（ＣＳＳ）クラスが前記マークアップ言語ページと共に使用されるかを判断し、
前記マークアップ言語ページを前記ブラウザにロードし、
前記マークアップ言語ページと共に使用されるＣＳＳクラスだけを前記ブラウザにロードし、該ブラウザが、前記ＣＳＳクラスを該マークアップ言語ページ内の表示可能なオブジェクトに適用し、かつ、該マークアップ言語ページを表示することを可能にする、
ステップを含む方法を実行させる命令を格納するコンピュータ使用可能データ記憶媒体を備えることを特徴とするコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書の実施形態は、一般に、マークアップ言語ファイルをサーバからブラウザにロードすることに関し、より具体的には、そうしたファイルをそのように処理し、格納するとき、速度を増し、コンピュータ・リソースの要求を減少させる方法に関する。
【背景技術】
【０００２】
近年、ウェブ・ベースのアプリケーションは、モデル・ビュー・コントローラ・アーキテクチャに移行してきた。このアーキテクチャのビュー（ｖｉｅｗ）部分は、Ｕ１ウィジェットを配置し、種々の表示可能なオブジェクトをフォーマット設定するカスケーディング・スタイル・シート（Ｃａｓｃａｄｉｎｇ  Ｓｔｙｌｅ  Ｓｈｅｅｔ、ＣＳＳ）クラスの使用によって主として支配されてきた。今や大部分のブラウザが豊富なＣＳＳ能力をサポートしているので、マークアップ・ページにおいて、「ビュー」情報はほとんど必要とされない。代わりに、サーバに、ページについてのフォーマット設定を供給する１組のＣＳＳクラスのロードを要求するために、マークアップ・ページが必要とされる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来より、ブラウザがこれらのＣＳＳクラスを受け取るとき、ブラウザは、ページを表示する前に、クラスを構文解析し、それらを種々の表示可能なオブジェクトに適切に適用しなければならない。このようなページをロードし、ＣＳＳクラスをロードし、クラスを構文解析し、それらを表示可能なオブジェクトに適用するサイクルが、表示されるページの各々について繰り返される。往々にして、多数のＣＳＳクラスが単一のファイル内に格納され、次に、それらが幾つかのマークアップ言語ページにロードされる。所望のＣＳＳクラスにアクセスするために、幾つかのＣＳＳファイルを単一のマークアップ言語ページにロードする必要があることもある。しばしば、ロードされた幾つかのクラスが、要求中のページに使用されていないことさえある。結局、ブラウザは、必要とされるジョブの実行に必要なものより、ＣＳＳクラスのロード及び構文解析により多くの処理サイクルを費やさなければならない傾向が強い。このことは、平均的なディスクトップ環境においては問題にならないが、ブラウザ及びサーバが、限られたメモリを備え、ディスクを有していない、同じ安価で動力不足の内蔵プロセッサにおいて実行されるとき、このことが、潜在的なユーザ・インターフェース性能の問題をもたらすことがある。
【課題を解決するための手段】
【０００４】
本明細書の実施形態は、各々のマークアップ言語ページが、そのページを表示するのに必要とされる最小の組のカスケーディング・スタイル・シート（ＣＳＳ）クラスを自動的に受け取り、必要とされないＣＳＳクラスは受け取らないことを保証するプロセスを説明する。ロード要求を用いて、全ての必要とされるクラスをブラウザからサーバにロードすることができる。このことは、ブラウザの処理要件を減少させ、ＣＳＳクラス・データを格納するのに必要とされるメモリ・フットプリントを最小にしながら達成される。
【０００５】
本明細書の実施形態は、マークアップ言語ページと共に使用されるＣＳＳクラスを処理する方法を含む。この方法は、同じ名前及び同じプロパティを有する重複するＣＳＳクラスを排除し、同じ名前を有するが、異なるプロパティを有する同音異議のＣＳＳクラスを排除し、同じプロパティを有するが異なる名前を有する同義のＣＳＳクラスを排除し、いずれのマークアップ言語ページによっても使用されない未使用のＣＳＳクラスを排除する。この方法はまた、各々のマークアップ言語ページによって使用されるＣＳＳクラスを識別する使用法マップ（ｕｓａｇｅ  ｍａｐ）もログに記録し、このログを用いて、各々の異なるマークアップ言語ページ（サーバが利用できる）によって使用されるＣＳＳクラス（サーバが利用できる）を列挙するページ・クラス定義ファイルを作成する。
【０００６】
上述の処理の後（潜在的には、上述の処理中又は処理の前）、方法は、サーバにおいて、ブラウザからマークアップ言語ページの少なくとも１つの要求を受け取る。次に、方法は、ページ・クラス定義ファイルを用いて、どのＣＳＳクラスが、要求されたマークアップ言語ページと共に使用されるかを判断することができる。次に、方法は、マークアップ言語ページをロードし、マークアップ言語ページと共に使用されるＣＳＳクラスだけをブラウザにロードする。
【０００７】
サーバが、ＣＳＳクラスを生成するために使用されるデータをロードしているとき、方法は、各ＣＳＳクラスの１つのインスタンスだけをロードする。さらに、各ＣＳＳクラスは、少なくとも１つのプロパティを含み、ＣＳＳクラスをロードすることは、各プロパティの１つのインスタンスだけをロードすることをさらに含む。ブラウザからの単一のロード要求を用いて、マークアップ言語ページと共に使用される全てのＣＳＳクラスをブラウザにロードすることができる。ＣＳＳクラスは、マークアップ言語ページについてのフォーマット設定情報を提供する。
【０００８】
このことは、重複するＣＳＳクラス、同音異議のＣＳＳクラス、同義のＣＳＳクラス、又は未使用のＣＳＳクラスを処理する必要なく、ブラウザが、ＣＳＳクラスをマークアップ言語ページ内の表示可能なオブジェクトに適用し、かつ、マークアップ言語ページを表示することを可能にする。さらに、要求されるマークアップ言語ページが使用しない他の適切なＣＳＳクラスも処理されない。こうしたＣＳＳクラスを処理から排除することによって、ブラウザ及びサーバの限られたリソース（メモリ等）がより有効に用いられ、これにより速度が増し、大きなメモリを備えた、高価な付加的なプロセッサに対する必要性が低減される。
【発明を実施するための最良の形態】
【０００９】
添付の図面を参照して、システム及び方法の種々の例示的な実施形態が、以下に詳細に説明される。
本明細書の実施形態は、ＣＳＳクラスを組織化する方法を含み、ＣＳＳクラスを参照するページの数に関係なく、クラス属性及びクラスが一度だけ定められる。このことにより、ＣＳＳクラスをホストするのに必要とされるメモリの量が減少される。本明細書の実施形態はまた、ページに必要とされる最小の組のクラスだけをブラウザに供給し、これにより未使用のクラスを処理するオーバーヘッドが減少される。
【００１０】
このプロセスには、２つのコンポーネント、すなわち前処理コンポーネント及び実行時コンポーネントがある。ＣＳＳ前処理コンポーネントは、ＣＳＳの参照のためにマークアップ言語ページを走査し、使用法レポートを生成する。実行時サーバ・コンポーネントは、非常に高速のアルゴリズムを使用し、圧縮されたフォーマットからブラウザ読み取り可能なＣＳＳクラスを生成する。
以下に説明されるプロセスは、性能を最適化し、開発者がＣＳＳクラスの生成を管理するのを助けるように設計される。最近定められたクラスが、別の開発者によって以前に定められているかどうか、又はクラス名が異なるプロパティと重複するかどうかが、すぐに分かる。また、マークアップ言語が変わると、このことが、以前に定められたクラスを時代遅れにすることがある。デバッグのために最も困難な状況の１つは、同じクラス名が定められているが異なるプロパティを有している場合である。ＣＳＳ最適化ログ・ファイルは、これらの状況を早期に報告し、何らかのデバッグの試みが費やされる前に、それらの状況を無くすことを可能にする。
【００１１】
図１に示されるように、本明細書の一実施形態が、マークアップ言語ページと共に使用されるカスケーディング・スタイル・シート（ＣＳＳ）クラスを処理する方法を提供する。この方法は、項目１００において、同じ名前及び同じプロパティを有する重複するＣＳＳクラスをログに記録する及び／又は排除し、項目１０２において、同じ名前を有するが異なるプロパティを有する同音異義のＣＳＳクラスをログに記録する及び／又は排除し、項目１０４において、同じプロパティを有するが、異なる名前を有する同義のＣＳＳクラスをログに記録する及び／又は排除し、項目１０６において、いずれのマークアップ言語も用いていない未使用のＣＳＳクラスをログに記録する及び／又は排除する。この方法は、各々のマークアップ・ページによって用いられるＣＳＳクラスを識別する使用法マップもログに記録し、項目１０８において、このログを使用し、ページ・クラス定義ファイルを作成する。これらの処理点は、一般に、ＣＳＳ前処理コンポーネントを構成する。
【００１２】
項目１１０において、上記の前処理の後（潜在的には、上記の処理中又は処理の前）、方法の実行時コンポーネントが、サーバにおいて、ブラウザからマークアップ言語ページの少なくとも１つの要求を受け取る。次に、項目１１２において、方法は、ページ・クラス定義ファイルを用いて、どのＣＳＳクラスが、要求されたマークアップ言語ページと共に使用されるかを判断することができる。次に、方法は、マークアップ言語ページをロードし（項目１１４）、項目１１６において、該マークアップ言語ページと共に使用されるＣＳＳクラスだけをブラウザにロードする。
【００１３】
項目１１６においてＣＳＳクラスをロードするとき、方法は、各ＣＳＳクラスの１つのインスタンスだけをロードする。さらに、各ＣＳＳクラスは、少なくとも１つのプロパティを含み、項目１１６においてＣＳＳクラスをロードすることは、プロパティの各々の１つのインスタンスだけをロードすることをさらに含む。ブラウザからの単一のロード要求（項目１１０）を用いて、マークアップ言語ページと共に使用されるＣＳＳクラスの全てをブラウザにロードすることができる。ＣＳＳクラスは、マークアップ言語ページについてのフォーマット設定情報を提供する。
【００１４】
このことは、重複するＣＳＳクラス、同音異義のＣＳＳクラス、同義のＣＳＳクラス、又は未使用のＣＳＳクラスを処理する必要なしに、ブラウザが、ＣＳＳクラスをマークアップ言語ページ内の表示可能なオブジェクトに適用し、かつ、マークアップ言語ページを表示することを可能にする。さらに、要求されているマークアップ言語ページが使用しない他の適切なＣＳＳクラスも処理されない。処理からこうしたＣＳＳクラスを排除することによって、ブラウザ及びサーバの限られたリソースがより効率的に使用され、これにより速度が増し、付加的なメモリを備えた、より高価でより高速の付加的なプロセッサに対する必要性が低減される。
【００１５】
図２は、所定のサーバ２１０（本明細書に説明される方法を実行するための命令を格納するコンピュータ使用可能データ記憶媒体を含む）が利用できる全てのマークアップ言語ページ２０４が、サーバ２１０が利用できる全てのＣＳＳクラス定義２００に対して比較される、ＣＳＳ最適化処理コンポーネントを示す。各々のマークアップ言語ページが、ＣＳＳ要素クラスの使用法について走査される。各々のＣＳＳクラス定義ファイル２００が構文解析される。ＣＳＳ最適化プロセスは、これらの入力を分析し、次いで、マークアップ言語ページ又はＣＳＳクラス定義ファイル２００における問題を識別するために、開発者２０６に有用なレポートが作成される。
【００１６】
より具体的には、項目２０６において、以下の情報、すなわち、重複するクラス（同じ名前及びプロパティを使用するクラス）、同音異義のクラス（同じ名前を使用するが、異なるプロパティを使用するクラス）、同義のクラス（異なる名前を使用するが、以前に定められたクラスと同じプロパティを使用するクラス）、未使用のクラス（いずれの分析されたマークアップ言語ページも使用していいないクラス）、及びどのページがどのＣＳＳクラスを使用するかを識別する使用法マップが、ログに記録される。さらに、所望であれば、本明細書の実施形態は、いずれの重複するＣＳＳクラス、同音異義のＣＳＳクラス、同義のＣＳＳクラス、又は未使用のＣＳＳクラスも自動的に消去又は削除することができる。
【００１７】
開発者２０６のための情報ログに加えて、使用法マップを用いて、最適化されたＣＳＳページ・クラス定義を含むファイル２１２が生成される。実行時に、要求されるページによって使用されるＣＳＳクラスを生成するために、ウェブ・サーバによってＣＳＳページ・クラス定義ファイル２１２が用いられる。ページ・クラス定義２１２ファイルは、サーバ２１０が読み取るデータを含む。多くのマークアップ言語ページにおいて多数のＣＳＳクラスを用いるシステムにおいて、本明細書の実施形態の場合は、メモリ・フットプリントが、同じ能力を達成するのに従来必要とされるＣＳＳファイルより著しく小さい。
【００１８】
図３により詳細に示される、共通入力ファイル２０２の逐語的なコピーも、ページ・クラス・ファイル２１２内に格納される。共通ファイルのコンテンツは、あらゆるページに与えられるＣＳＳクラスを含む。これらのクラスは、圧縮されず、ブラウザに送られる前にサーバによって更に処理する必要がない。ページ・クラス・ファイルの残りは、ページ名３０２に対する少なくとも１つのページ名参照を含む。各々のページ名３０２は、少なくとも１つのページ名参照を有する。各々のクラス名３０４は、少なくとも１つのプロパティ名参照を有する。各々のプロパティ名３０６は、プロパティ値（例えば、フォーマット特性）を定める。このように、共通入力ファイル２０２は、マークアップ言語内の要素クラス注釈と共に定めることができないＣＳＳのために使用される。幾つかの形態のＣＳＳ構文は、マークアップ言語の要素と関連付けられたクラス属性に基づいて適用されない。ＣＳＳ命令は、マークアップの状態に基づいて適用される。このタイプのＣＳＳ構文は、擬似要素として知られており、時として、この方法の前処理段階中に検出できないことがある。共通ファイルは、圧縮されていない形でサーバ内に格納されており、付加的な処理を必要としない各マークアップ・ページ要求、又は全てのページに共通のＣＳＳクラスの各マークアップ・ページ要求に送信される。肝心なのは、開発者が何を共通ファイル内に置こうと、ページ特有のＣＳＳクラスに加えてＣＳＳ情報が与えられたときに、直接ブラウザに行くという点である。このことは、マークアップ・ページが、依然として非要素ベースのＣＳＳ命令を受け取ることを可能にする。
【００１９】
ＣＳＳ最適化プロセスの実行時コンポーネントは、迅速に要素にアクセスできるように、ウェブ・サーバに、ページ・クラス定義ファイルをインポートし、これを格納するよう要求する。ブラウザにロードされたとき、マークアップ言語ページは、マーク・ページの名前と同じ名前を有するＣＳＳ文書を参照する。例えば、マークアップ言語ページの参照が、http://localhost:8081/myPage.xhtmlであった場合、関連したＣＳＳ文書への参照は、http://localhost:8081/myPage.cssとなる。これは、一例にすぎず、異なるシステムは、ＣＳＳ文書にアクセスするために異なる機構を定めることができる。
【００２０】
図４は、ブラウザ４００とサーバ４０２との間のフローを示す。項目４０４は、上述のように、サーバ４０２が、どのクラスが各ページと関連付けられているかを知ることを可能にするページ・クラス定義ファイル２１２をインポートするプロセスを表す。項目４０６は、ページ要求（ＣＳＳクラス要求とみなすことができる）を表す。項目４１０において、サーバ４０２は、ページ・クラス定義ファイル２１２を用いて、要求されたページについてのＣＳＳクラスを生成する。次に、項目４０８は、ブラウザ４００へのページ及びＣＳＳクラスの戻りを表す。
【００２１】
このように、本明細書の実施形態の場合、ウェブ・サーバは、ＣＳＳ文書をマークアップ言語ページに供給していることを識別すると、どのクラス及びプロパティが必要とされるかを迅速に参照し、必要とされるクラス（例えば、必要とされるクラスの正確な組）だけをブラウザに送ることができる。この手法の幾つかの利点は、必要とされるＣＳＳクラス、各プロパティの１つのインスタンス、各クラスの１つのインスタンスだけがロードされるため、かつ、マークアップ言語ページごとにクラスへの参照だけがなされるため、減少されたメモリ・フットプリントが生成されることである。さらに、本明細書の実施形態の場合、ブラウザは、所定のページについて使用されないクラスを構文解析するか又は他の方法で処理する必要がないので、本明細書の実施形態は、ブラウザによる処理サイクルを減少させる。代わりに、本明細書の実施形態の場合、必要とされるクラスだけがブラウザに与えられる。本明細書の実施形態の場合、ＣＳＳクラスの開発全体にわたって、より多くの制御がなされ、上述のログ能力に起因してＣＳＳクラスの競合が生じる可能性は少ない。
【００２２】
本明細書の実施形態は、何らかの目的のために表示機能を実行する、デジタル複写機、製本機械、ファクシミリ装置、多機能機械等のようないずれかの装置と共に用いることができる。本発明は、プリンタに限定されるものではなく、ユーザ・インターフェースを表示／フォーマット設定するためにＣＳＳを用いる全てのシステムに適用される。
【図面の簡単な説明】
【００２３】
【図１】１つの方法の実施形態を示すフロー図である。
【図２】ここに説明される実施形態を用いるシステムの概略図である。
【図３】図２に示されるページ・クラス定義ファイルの概略図である。
【図４】ここに説明される実施形態を用いる実行時環境の概略図である。
【符号の説明】
【００２４】
２００：ＣＳＳクラス定義ファイル
２０２：共通ファイル
２０６：開発者
２１０、４０２：サーバ
２１２：ＣＳＳページ・クラス定義ファイル
４００：ブラウザ
【図１】
2007287146.tif 000003
【図２】
2007287146.tif 000004
【図３】
2007287146.tif 000005
【図４】
2007287146.tif 000006