(57)【要約】【課題】同期式スクリプト遅延ローディング・システム、同期式スクリプト遅延ローディング方法及びそれを実行するためのプログラムが記録されたコンピュータで読み取り可能な記録媒体を提供する。【解決手段】同期式スクリプト遅延ローディング・システムに係り、該同期式スクリプト遅延ローディング・システムは、スクリプト遅延ローダを、要請によってクライアント・コンピュータに提供する送受信部を含み、スクリプト遅延ローダは、クライアント・コンピュータで実行され、スクリプト・モジュール別に対応する仮想関数を生成してメモリにロードする仮想関数生成部、及び特定のスクリプト・モジュールの最初の実行要請による仮想関数呼び出しのときに、保存空間に保存された当該スクリプト・モジュールをメモリにロードさせるモジュール実行部を含む。【選択図】図２
2014194777.tif 000002
【特許請求の範囲】
【請求項１】
スクリプト遅延ローダを、要請によって、クライアント・コンピュータに提供する送受信部を含む同期式スクリプト遅延ローディング・システムであって、
前記スクリプト遅延ローダは、前記クライアント・コンピュータで実行され、
スクリプト・モジュール別に対応する仮想関数を生成してメモリにロードする仮想関数生成部と、
特定のスクリプト・モジュールの最初の実行要請による前記仮想関数呼び出しのときに、保存空間に保存された当該スクリプト・モジュールをメモリにロードさせるモジュール実行部と、を含む同期式スクリプト遅延ローディング・システム。
【請求項２】
前記スクリプト遅延ローダは、
使用されるスクリプト・モジュールのバージョンと、前記保存空間に保存されたスクリプト・モジュールのバージョンとが同一であるか否かということを確認する初期化部をさらに含むことを特徴とする請求項１に記載の同期式スクリプト遅延ローディング・システム。
【請求項３】
前記スクリプト遅延ローダは、
使用されるバージョンのスクリプト・ソースコードを要請するソースコード呼び出し部と、
前記要請によって伝送されたスクリプト・ソースコードを、各スクリプト・モジュール別に分離し、前記保存空間に保存する分離部と、をさらに含むことを特徴とする請求項１または２に記載の同期式スクリプト遅延ローディング・システム。
【請求項４】
前記分離部は、特定区分文字に基づいて、各スクリプト・モジュール別に分離することを特徴とする請求項３に記載の同期式スクリプト遅延ローディング・システム。
【請求項５】
前記分離部は、各スクリプト・モジュールの遅延ローディング・オプションを分離し、前記保存空間にさらに保存することを特徴とする請求項３または４に記載の同期式スクリプト遅延ローディング・システム。
【請求項６】
前記生成された仮想関数は、対応するスクリプト・モジュールを、前記保存空間から読み取ってメモリにローディングするための機能を含むことを特徴とする請求項１ないし５のうちいずれか１項に記載の同期式スクリプト遅延ローディング・システム。
【請求項７】
前記最初の実行要請は、使用されるスクリプト・モジュールのバージョンと同一バージョンを有する前記特定のスクリプト・モジュールが、最初に実行されるときに発生することを特徴とする請求項１ないし６のうちいずれか１項に記載の同期式スクリプト遅延ローディング・システム。
【請求項８】
前記仮想関数または前記モジュール実行部は、前記ロードされた特定のスクリプト・モジュールに含まれたメソッドのうち、前記仮想関数をオーバーライドしたメソッドを、さらに１回呼び出す機能をさらに含むことを特徴とする請求項６に記載の同期式スクリプト遅延ローディング・システム。
【請求項９】
同期式スクリプト遅延ローディング・システムが提供するスクリプト遅延ローダによって遂行される各段階が、
スクリプト・モジュール別に対応する仮想関数を生成してメモリにロードする仮想関数生成段階と、
特定のスクリプト・モジュールの最初の実行要請による前記仮想関数呼び出しのときに、保存空間に保存された当該スクリプト・モジュールをメモリにロードするモジュール実行段階と、を含む同期式スクリプト遅延ローディング方法。
【請求項１０】
前記方法は、
使用されるスクリプト・モジュールのバージョンと、前記保存空間に保存されたスクリプト・モジュールのバージョンとが同一であるか否かということを確認する初期化段階をさらに含むことを特徴とする請求項９に記載の同期式スクリプト遅延ローディング方法。
【請求項１１】
前記方法は、
使用されるバージョンのスクリプト・ソースコードを要請するソースコード呼び出し段階と、
前記要請によって伝送されたスクリプト・ソースコードを、各スクリプト・モジュール別に分離し、前記保存空間に保存して分離する段階と、をさらに含むことを特徴とする請求項９または１０に記載の同期式スクリプト遅延ローディング方法。
【請求項１２】
前記分離段階は、特定区分文字に基づいて、各スクリプト・モジュール別に分離することを特徴とする請求項１１に記載の同期式スクリプト遅延ローディング方法。
【請求項１３】
前記分離段階は、各スクリプト・モジュールの遅延ローディング・オプションを分離し、前記保存空間に保存する遅延ローディング・オプション分離段階をさらに含むことを特徴とする請求項１１または１２に記載の同期式スクリプト遅延ローディング方法。
【請求項１４】
前記生成された仮想関数は、対応するスクリプト・モジュールを、前記保存空間から読み取ってメモリにローディングするための機能を含むことを特徴とする請求項９ないし１３のうちいずれか１項に記載の同期式スクリプト遅延ローディング方法。
【請求項１５】
前記最初の実行要請は、使用されるスクリプト・モジュールのバージョンと同一バージョンを有する前記特定のスクリプト・モジュールが最初に実行されるときに発生することを特徴とする請求項９ないし１４のうちいずれか１項に記載の同期式スクリプト遅延ローディング方法。
【請求項１６】
前記モジュール実行段階は、前記ロードされた特定のスクリプト・モジュールに含まれたメソッドのうち、前記仮想関数をオーバーライドしたメソッドをさらに１回呼び出す段階をさらに含むことを特徴とする請求項１４に記載の同期式スクリプト遅延ローディング方法。
【請求項１７】
請求項９ないし１６のうち、いずれか１項に記載の方法を実行するためのプログラムが記録されていることを特徴とするコンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同期式のスクリプト遅延ローディング・システムに係り、さらに詳細には、スクリプト・ソースコードを各モジュール別に分離して保存していて、当該モジュールが使用される時点で遅延ローディングし、同期式でメモリにロードする同期式スクリプト遅延ローディング・システム、同期式スクリプト遅延ローディング方法及びそれを実行するためのプログラムが記録されたコンピュータで読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
今日、インターネットの広範囲な普及は、今や有線を超えて無線移動通信技術への急発展をもたらし、実生活においても、携帯電話、携帯情報端末（ＰＤＡ：personal digital assistant）、ハンドヘルド（hand-held）コンピュータ、スマートフォン（smart phone）などの携帯用端末を介したインターネット上での情報検索が、時間と場所とにとらわれずに可能になった。スマートフォンとは、携帯電話にコンピュータ支援機能が追加された知能型携帯電話を指す用語であり、携帯電話機能に忠実でありながらも、ＰＤＡの機能、インターネット機能、動画再生機能などが追加され、多様な入力方式やタッチスクリーンなどが具備され、使用する際にさらに便利なインターフェースを提供する。また、無線インターネット機能の支援により、インターネット及びコンピュータに接続され、電子メール、ウェブブラウジング、ファックス、バンキング、ゲームなど、端末機としての機能も遂行する。このように、多様な機能の実現が可能になったスマートフォンを利用して、ネットサーフィンまたはウェブブラウジングを行うユーザがだんだんと増えている。
【０００３】
一方、ジャバスクリプト（Java Script（登録商標））は、米国のネットスケープコミュニケーションズ社が開発したスクリプト言語であり、多様な環境で使用されているが、そのうち最も代表的な例として、マイクロソフト社のインターネットエクスプローラのようなウェブブラウザで実行されるスクリプト言語として使用されている。その場合、標準ＨＴＭＬ（HyperText Markup Language）文書に挿入され、インタラクティブ（interactive）なウェブページを提供することができ、特に、最近になって、コンピュータ及びスマートフォンの性能が向上されつつあることから、アニメーションや簡単な計算などには、サーバに別途に要請を行わずとも、ジャバスクリプトによるプログラム作動が可能であるために、最近では活用範囲が広くなっている。
【０００４】
しかし、最近、ユーザが便利に使用することができるように、さらに多様なユーザ・インターフェース（ＵＩ）と機能とがウェブサービスに追加されながら、それによるスクリプトファイル、例えば、ジャバスクリプト・ファイルもその大きさが増大することになった。このように増大したスクリプトファイルを呼び出してパージング（ｐａｒｓｉｎｇ）した後、メモリにローディングして実行させる作業は、ウェブページのローディング時間を不可避的に延長させ、特に、相対的に帯域幅が狭く、応答時間が最も重要であるスマートフォンでは、延長されたローディング時間による体感上の性能低下が目立ち、それによるユーザの不満足と不都合とが大きくなった。
【０００５】
一例として、図１Ａに図示された従来技術によって実現された例示的なＨＴＭＬファイルの一部分を参照すれば、領域Ａとして表示された部分に、＜script＞タグを利用して、ジャバスクリプト・ファイルが含まれている（include）ということが分かる。ウェブブラウザは、当該ＨＴＭＬファイルを受信し、順次にインタプリタを実行（interpreting）し、＜script＞タグについては、含まれるジャバスクリプト・ファイルを、通信網を介して読み取り、ファイル内に含まれるあらゆるジャバスクリプト・モジュールをパージングしてメモリにローディングした後、そのとき初めて、その次のラインにあるタグに対するインタプリタを実行する。従って、当該作業の遂行による、当該ウェブページが画面に表示されるまでの遅滞（delay）が生じ、また該当するＨＴＭＬファイル内で使用されもしないジャバスクリプト・モジュールまでいずれもパージングしてメモリにローディングされる不要な作業が行われてしまうという問題点が存在する。
【０００６】
従来の技術によれば、ジャバスクリプト・ファイルを、ウェブアプリケーション実行前に、あらかじめコンパイルしておき、メモリにローディングして常駐させることにより、移動端末機で、ウェブアプリケーションに対する実行速度を向上させる方法が開示されているが、スクリプトファイルが１回ローディングされれば、反復して使用されるウェブアプリケーションにだけ限定される方法であり、１つのウェブサービス内で互いに異なるスクリプト・モジュールを含む多数のウェブページ間をリンクを介してブラウジングするネットサーフィンの場合には、一律的に適用され難い。仮に適用されるとしても、初期ローディング時間が長くなり、あらゆるスクリプトファイルのメモリ常駐によるメモリ空間浪費などの問題点を内包している。また、ウェブサービスで提供される多数のウェブページ間を移動する場合、たとえ以前に読み取ったスクリプトファイルがキャッシュに保存され、ウェブページを変更するごとに追加して読み取る必要はないとしても、ウェブブラウザでは、当該ウェブページに含まれたスクリプト・モジュールをパージングしてメモリにローディングする作業を機械的に反復するので、ウェブサービスで使用されるあらゆるスクリプト・モジュールを、１つのファイルに収めておくよりは、ウェブサービス内の各ウェブページ別に使用するスクリプト・モジュールを分け、必要なときごとにロードする方式が性能向上のために必要であると言える。
【０００７】
従って、前述のように、ウェブサービスで使用されるスクリプト・モジュールを、その機能によって、いくつかのファイルに分割し、必要な時点でロードして使用することができるように支援する遅延ローディング技術が開示された。しかし、従来の遅延ローディングの場合には、特定モジュールを、必要なときにファイル単位でローディングを行うので、ウェブページで使用するモジュールによっては、１回で多くの要請がなされ、スクリプトファイルのローディングを非同期式で処理するので、コールバック関数を利用し、さらには複雑な形態の非同期設計を行うしかない。従って、多数のスクリプト・モジュールが相互依存的である場合、それを考慮して設計しなければならないという短所が存在する。
【０００８】
一例として、ｕｔｉｌという、客体内のsomeMethodというメソッドを使用する場合、ｕｔｉｌ客体を含むモジュールをネットワークに呼び出してローディングし、その後にコールバック関数内から読み出した当該モジュールを使用する方式で実現するしかなく、そのようなコーディングは、図１Ｂに図示されるような従来の非同期式ジャバスクリプト遅延ローディング方式を利用して実現される例示的なジャバスクリプト・コードのように作成されなければならない。
【０００９】
すなわち、コールバック関数を利用した非同期方式は、非同期で動作する方式への理解が必要であり、他のコードとの実行時点を考慮しなければならないので、開発の複雑度を高め、すでに開発されたウェブページに適用するためには、既存に作成されたソースコードを大々的に変更しなければならないという問題点がある。
【００１０】
従って、従来に使われたスクリプトの非同期式遅延ローディングによるさまざまな問題点を解決し、各スクリプト・モジュールを、必要なときにメモリにローディングさせる同期式遅延ローディングが可能な技術的対応策の必要性が要求されている実情がある。
【００１１】
なお、関連先行文献としては、特許文献１がある。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】大韓民国公開特許第１０−２０１１−００６５８０４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
本発明の目的は、ウェブページのローディング速度低下を解決することができる同期式スクリプト遅延ローディング・システム、同期式スクリプト遅延ローディング方法及びそれを実行するためのプログラムが記録されたコンピュータで読み取り可能な記録媒体を提供するところにある。
【００１４】
本発明の他の目的は、従来の非同期式処理によるコールバック関数の利用などの複雑な形態の非同期設計をしてしまうという問題点を解決し、特定の機能が必要なとき、当該スクリプト・モジュールだけをメモリにローディングして使用することができる同期式遅延ローディングを実現し、さらに手軽な開発設計が可能な同期式スクリプト遅延ローディング・システム、同期式スクリプト遅延ローディング方法及びそれを実行するためのプログラムが記録されたコンピュータで読み取り可能な記録媒体を提供するところにある。
【００１５】
本発明のさらに他の目的は、スクリプト・モジュール間に、互いに複雑な依存性を有している場合でも、そのローディング順序を考慮せずとも、簡単に開発設計が可能な同期式スクリプト遅延ローディング・システム、同期式スクリプト遅延ローディング方法及びそれを実行するためのプログラムが記録されたコンピュータで読み取り可能な記録媒体を提供するところにある。
【課題を解決するための手段】
【００１６】
本発明の一側面によれば、同期式スクリプト遅延ローディング・システムは、スクリプト遅延ローダを、要請によってクライアント・コンピュータに提供する送受信部を含み、前記スクリプト遅延ローダは、前記クライアント・コンピュータで実行され、スクリプト・モジュール別に対応する仮想関数を生成してメモリにロードする仮想関数生成部、及び特定のスクリプト・モジュールの最初の実行要請による前記仮想関数呼び出しのときに、保存空間に保存された当該スクリプト・モジュールをメモリにロードさせるモジュール実行部を含む。
【００１７】
望ましくは、前記スクリプト遅延ローダは、使用されるスクリプト・モジュールのバージョンと、前記保存空間に保存されたスクリプト・モジュールのバージョンとが同一であるか否かということを確認する初期化部をさらに含む。
【００１８】
望ましくは、前記スクリプト遅延ローダは、使用されるバージョンのスクリプト・ソースコードを要請するソースコード呼び出し部、及び前記要請によって伝送されたスクリプト・ソースコードを、各スクリプト・モジュール別に分離し、前記保存空間に保存する分離部をさらに含む。
【００１９】
望ましくは、前記分離部は、特定区分文字に基づいて、各スクリプト・モジュール別に分離する。
【００２０】
望ましくは、前記分離部は、各スクリプト・モジュールの遅延ローディング・オプションを分離し、前記保存空間にさらに保存する。
【００２１】
望ましくは、前記生成された仮想関数は、対応するスクリプト・モジュールを、前記保存空間から読み取ってメモリにローディングするための機能を含む。
【００２２】
望ましくは、前記最初の実行要請は、使用されるスクリプト・モジュールのバージョンと同一バージョンを有する前記特定のスクリプト・モジュールが最初に実行されるときに発生する。
【００２３】
望ましくは、前記仮想関数または前記モジュール実行部は、前記ロードされた特定のスクリプト・モジュールに含まれるメソッド（method）のうち、前記仮想関数をオーバーライド（override）したメソッドをもう一度呼び出す機能をさらに含む。
【００２４】
本発明の他の側面によれば、同期式スクリプト遅延ローディング方法は、同期式スクリプト遅延ローディング・システムが提供するスクリプト遅延ローダによって遂行される各段階が、スクリプト・モジュール別に対応する仮想関数を生成してメモリにロードする仮想関数生成段階、及び特定のスクリプト・モジュールの最初の実行要請による前記仮想関数呼び出しのときに、保存空間に保存された当該スクリプト・モジュールをメモリにロードするモジュール実行段階を含む。
【００２５】
一方、同期式スクリプト遅延ローディング方法を遂行するためのプログラムは、コンピュータで読み取り可能な記録媒体に保存される。かような記録媒体は、コンピュータシステムによって読み取られるように、プログラム及びデータが保存されるあらゆる種類の記録媒体を含む。その例としては、ＲＯＭ（read-only memory）、ＲＡＭ（random-access memory）、ＣＤ（compact disc）、ＤＶＤ（digital versatile disc）−ＲＯＭ、磁気テープ、フロッピー（登録商標）ディスク、光データ保存装置などがあり、またキャリアウェーブ（例えば、インターネットを介した伝送）の形態で実現されることも含まれる。また、かような記録媒体は、ネットワークに接続されたコンピュータシステムに分散され、分散方式でコンピュータで読み取り可能なコードが保存されて実行される。
【発明の効果】
【００２６】
本発明によれば、ウェブページのローディング速度低下を解決することができる。
【００２７】
また、本発明によれば、従来の非同期式処理によるコールバック関数の利用などの複雑な形態の非同期設計を行うしかないという問題点を解決し、特定機能が必要なとき、当該スクリプト・モジュールのみをメモリにローディングして使用することができる同期式遅延ローディングを実現し、さらに手軽な開発設計が可能である。
【００２８】
また本発明によれば、スクリプト・モジュール間に互いに複雑な依存性を有している場合でも、そのローディング順序を考慮せずとも、簡単に開発設計が可能である。
【図面の簡単な説明】
【００２９】
【図１Ａ】従来技術によって実現された例示的なＨＴＭＬファイルの一部分を図示したＨＴＭＬソースコードである。
【図１Ｂ】従来の非同期式ジャバスクリプト遅延ローディング方式を利用して実現した例示的なジャバスクリプト・コードである。
【図１Ｃ】本発明による同期式ジャバスクリプト遅延ローディング方式を利用して実現した例示的なジャバスクリプト・コードである。
【図２】本発明の一実施形態によって、同期式ジャバスクリプト遅延ローディング機能が含まれたウェブページを、ユーザの要請によって提供するための全体システムの構成を概略的に図示した図面である。
【図３】本発明の一実施形態によるウェブサーバの詳細構成図である。
【図４Ａ】本発明の一実施形態によって、同期式ジャバスクリプト遅延ローディングを遂行するクライアント・コンピュータの詳細な構造を示すブロック図である。
【図４Ｂ】本発明の一実施形態による遅延ローダ実行部の各詳細機能ブロックを図示したブロック図である。
【図５】本発明の一実施形態による同期式ジャバスクリプト遅延ローディング方法を示すフローチャートである。
【図６】本発明の一実施形態による例示的なジャバスクリプト・ソースコードである。
【図７Ａ】互いに異なる機器で測定した、本発明による同期式ジャバスクリプト遅延ローディング方式の適用の有無によるローディング速度の差を図示した表である。
【図７Ｂ】互いに異なるウェブブラウザで測定した、本発明による同期式ジャバスクリプト遅延ローディング方式の適用の有無によるパージング及び実行の速度差を図示した表である。
【発明を実施するための形態】
【００３０】
後述する本発明に関わる詳細な説明については、本発明が実施される特定実施形態を、例示として図示する添付図面を参照する。それらの実施形態は、当業者が、本発明の実施に十分になるように詳細に説明される。本発明の多様な実施形態は、互いに異なるが、相互排他的である必要はないということが理解されなければならない。例えば、ここに記載されている特定形状、構造及び特性は、一実施形態について、本発明の精神及び範囲を外れずに、他の実施形態で実現されもする。また、それぞれの開示された実施形態内の個別構成要素の位置または配置は、本発明の精神及び範囲を外れずに、変更されるものであるということが理解されなければならない。従って、後述する詳細な説明は、限定的な意味として受け止められるものではなく、本発明の範囲は、適切に説明するとするならば、特許請求の範囲が主張するところと均等なあらゆる範囲と共に、添付された特許請求の範囲によってのみ限定される。図面で、類似参照符号は、多くの側面にわたって同一であるか、あるいは類似した機能を指称する。
【００３１】
本発明で、用語「スクリプト・モジュール」または「モジュール」は、１つの独立された機能を遂行するために、機能単位に分割されたそれぞれを指す広義の概念であり、一つ以上の関数を含み、以下で別途の説明がない場合、「スクリプト・モジュール」及び「モジュール」は、同一の意味として、混用して使用される。一方、スクリプト・ソースコードは、パージングされ、メモリにロードして実行される。
【００３２】
以下、本発明が属する技術分野で当業者が、本発明を容易に実施することが可能であるように、本発明の望ましい実施形態について、添付された図面を参照し、詳細に説明する。なお、説明の容易性のために、以下の実施形態においては、ジャバスクリプト（Java Script（登録商標））に基づいて説明するが、本発明は、必ずしもジャバスクリプトにのみ限定されるものではなく、ウェブサービスで使用されるスクリプト言語であるならば、いずれも適用可能であるということは、本発明が属する分野で当業者に自明であろう。
【００３３】
全体システム構成
図２は、本発明の一実施形態によって、同期式のジャバスクリプト遅延ローディング機能が含まれたウェブページを、ユーザの要請によって提供するための全体システムの構成を概略的に示す図面である。
【００３４】
図２に図示されているように、本発明の一実施形態による全体システムは、データベースを含んでいるウェブサーバ１００が、通信網２００を介して、一つ以上のクライアント・コンピュータ３００と接続されている。
【００３５】
まず、本発明の一実施形態によれば、ウェブサーバ１００は、クライアント・コンピュータ３００から、特定のウェブページに対する伝送要請を受信し、当該要請によるウェブページを抽出した後、クライアント・コンピュータ３００に伝送する役割を行う。ここで、伝送要請は、ウェブブラウザを介したＵＲＬ（uniform resource locator）の入力を介して行われ、ウェブページは、同期式のジャバスクリプト遅延ローディング機能を遂行する遅延ローダが、その内部に直接に挿入されているか、あるいは所定位置に保存されているファイルを含む（include）方式で、間接的に含まれてもよい。遅延ローダは、クライアント・コンピュータ３００に保存されたジャバスクリプト・モジュールが、ウェブページで使用されるジャバスクリプト・モジュールと、同一バージョンであるか否かということに基づいて、ソースコードの要請を決定し、要請によって受信されたソースコードを、各モジュール別に分離して保存し、各モジュール別に仮想関数を定義して実行してメモリにローディングし、特定モジュールの実行要請のとき、対応する仮想関数の実行を介して、当該モジュールのソースコードを読み取ってメモリにローディングすることにより、当該モジュールが実行される機能を遂行し、その具体的な機能それぞれについては後述する。
【００３６】
また、本発明の一実施形態によれば、通信網２００は、有線及び無線のように、その通信様態を区別せずに構成され、短距離通信網（ＰＡＮ：personal area network）、近距離通信網（ＬＡＮ：local area network）、都市圏通信網（ＭＡＮ：metropolitan area network）、広域通信網（ＷＡＮ：wide area network）など、多様な通信網で構成される。また、前記通信網２００は、公知のワールドワイドウェブ（ＷＷＷ：world wide web）でもあり、ＩｒＤＡ（infrared data association）通信またはブルートゥース（Bluetooth（登録商標））のような短距離通信に利用される無線伝送技術を利用することもできる。
【００３７】
一方、本発明の一実施形態によるクライアント・コンピュータ３００は、ユーザの特定のウェブページ取得の要請に対する結果が提供されるために、通信網２００を介してウェブサーバ１００と接続するための機能を含む入出力装置を意味し、デスクトップ・コンピュータだけではなくノート型パソコン、ワークステーション、パームトップ（palmtop）コンピュータ、携帯情報端末（ＰＤＡ：personal digital assistant）、ウェブパッド、スマートフォンを含む移動通信端末機のように、メモリ手段を具備し、マイクロプロセッサを搭載して演算機能を備えたデジタル機器であるならば、いかなるものでも本発明によるクライアント・コンピュータ３００として採択可能である。望ましくは、ウェブサーバ１００と接続され、同期式遅延ローダが搭載された特定のウェブページをウェブサーバ１００を介して提供され、当該ウェブページを示し、遅延ローダが同期式で動作するようにウェブブラウザを実行させて使用することができるものであればよく、必ずしも前記例に限定されるものではない。
【００３８】
ウェブサーバの詳細構成図
図３は、本発明の一実施形態によるウェブサーバ１００の詳細を示す構成図である。
【００３９】
図３を参照すれば、本発明の一実施形態によるウェブサーバ１００は、送受信部１１０、ウェブページ提供部１２０、ジャバスクリプト・ソースコード伝送部１３０及び保存部１４０を含んでもよい。
【００４０】
送受信部１１０は、クライアント・コンピュータ３００から、特定のウェブページに対する伝送要請を受信し、ウェブページ提供部１２０に伝送し、ウェブページ提供部１２０を介して受信されたウェブページを、クライアント・コンピュータ３００に伝送する。ここで伝送要請は、ＵＲＬ形式でもよい。また、送受信部１１０は、クライアント・コンピュータ３００から、遅延ローディングするジャバスクリプト・モジュールのソースコード伝送要請を受信し、ジャバスクリプト・ソースコード伝送部１３０に伝送し、ジャバスクリプト・ソースコード伝送部１３０を介して受信されたソースコードを、クライアント・コンピュータ３００に伝送する。ここで、ジャバスクリプト・ソースコードは、特定の区分文字を基準に区分されるいくつかのジャバスクリプト・モジュールを含む１つのファイル形式でもある。
【００４１】
ウェブページ提供部１２０は、送受信部１１０を介して受信した伝送要請に該当するウェブページを、保存部１４０から検索する。検索を介してマッチングされるウェブページは、クライアント・コンピュータ３００に送付するために、送受信部１１０に伝送される。ここで、ウェブページは、遅延ローダを含んでもよい。
【００４２】
ジャバスクリプト・ソースコード伝送部１３０は、送受信部１１０を介して受信した伝送要請に基づいて、ジャバスクリプト・ソースコードを保存部１４０から抽出し、抽出したソースコードをクライアント・コンピュータ３００に伝送するために、送受信部１１０に伝送する。
【００４３】
保存部１４０は、ウェブページ提供部１２０が検索することができるウェブページ、ジャバスクリプト・ソースコード伝送部１３０で抽出するジャバスクリプト・ソースコードなどを保存する空間を総称する概念である。本発明の簡略な例示のために、図３には、保存部１４０が一つだけ図示されているが、本発明の他の実施形態によって、先に言及した多様なデータが、一つ以上の物理的に区別される別途のデータベース化された保存部に保存されてもよいことは、本発明が属する分野で当業者に自明であろう。
【００４４】
図３での送受信部１１０、ウェブページ提供部１２０及びジャバスクリプト・ソースコード伝送部１３０は、物理的に１つの機器内に備えられてもよいし、一部またはそのそれぞれが物理的に他の機器にわたって備えられてもよい。あるいは同一の機能を行う物理的に複数個存在する機器が並列して存在することも可能である。そのように本発明は、各構成部が設置された機器またはデータベースの物理的な個数及び位置に限定されるものではなく、多様な方式で設計変更されるということは、本発明が属する技術分野で当業者において自明であろう。
【００４５】
クライアント・コンピュータの詳細構成図
図４Ａは、本発明の一実施形態によって、同期式でジャバスクリプト遅延ローディングを遂行するクライアント・コンピュータ３００の詳細な構造を示すブロック図である。本発明によって、クライアント・コンピュータ３００は、遅延ローダ３２０の実行を介して、特定のジャバスクリプト・モジュールが要請されるとき、保存されていた当該ジャバスクリプト・コードをメモリにローディングすることにより、同期的な遅延ローディングを実現する。一方、ジャバスクリプト・コードは、遅延ローダ３２０の実行時点で、そのバージョンに基づいて、選択的に伝送されて保存空間に保存しておく。また、本発明の実施形態による遅延ローダ３２０の各機能は、要請によって受信されたウェブページ内に含まれて動作することができる。
【００４６】
図４Ａを参照すれば、本発明の一実施形態によるクライアント・コンピュータ３００は、ウェブブラウザ３１０、遅延ローダ３２０及び保存空間３３０を含んでもよい。
【００４７】
ウェブブラウザ３１０は、要請によって、ウェブサーバ１００から受信されたウェブページを順次に解析して示す（レンダリングする）機能を遂行する。遅延ローダが含まれているということを確認する場合、ウェブブラウザ３１０は、遅延ローダ３２０を実行する。遅延ローダ３２０の実行によって、ウェブブラウザにウェブページを示す時間の遅延を最小化するように、遅延ローダ３２０の実行は、ウェブページの操作が可能な時点の後、またはウェブページのレンダリングが完了した時点の後に動作するようにすることが望ましい。従って、ウェブページのソースコード内で、遅延ローダ３２０の機能を遂行するコードの位置は、操作が必要なウェブページの要素の後、またはウェブページの＜／body＞タグ以前に挿入され、例えば、OnLoadのようなイベントに基づいて、遅延ローダの実行が始まるようにすることも可能であるが、必ずしも前述例に限定されるものではない。また、特定のジャバスクリプト・モジュールの実行要請、すなわち、当該モジュールを実行するイベントが発生する場合、対応する仮想関数を介して、当該モジュールが同期式で遅延ローディングされる。
【００４８】
遅延ローダ３２０は、初期化を介したバージョン設定、バージョンの対比に基づいたジャバスクリプト・ソースコードの要請及び受信、受信されたソースコードから、各ジャバスクリプト・モジュール別の分離及び保存、分離して保存された各ジャバスクリプト・モジュール別の仮想関数の生成及びメモリローディング、並びに特定のジャバスクリプト・モジュールの実行要請による仮想関数の実行による当該モジュールの同期式遅延ローディング機能を遂行する。遅延ローダ３２０の各機能に係わる具体的な説明は後述する。
【００４９】
保存空間３３０は、ウェブブラウザ３１０及び遅延ローダ３２０の実行最中に発生する各種データを、臨時的または永久的に保存する空間を総称する概念である。望ましくは、保存空間３３０は、遅延ローダ３２０で受信したソースコードを、各ジャバスクリプト・モジュール別に分離して保存する空間として使用され、ウェブ文書作成のための標準プログラミング言語ＨＴＭＬ（HyperText Markup Language）の規格であるＨＴＭＬ５で定義された、ローカル機器に保存することができるlocalStorage規格を利用して使用される空間であってもよいが、必ずしもそれに限定されるものではない。
【００５０】
一方、本発明の一実施形態による遅延ローダ３２０の各詳細機能ブロックを図示したブロック図である図４Ｂを参照し、さらに詳細に説明すれば、遅延ローダ３２０は、初期化部３２１、ソースコード呼び出し部３２２、分離部３２３、仮想関数生成部３２４及びモジュール実行部３２５を含む。
【００５１】
初期化部３２１は、遅延ローダの最初の実行時、初期化を介して、現在ウェブページで使用されるジャバスクリプト・モジュールのバージョンを設定する。バージョンは、ウェブページ内または遅延ローダに、所定の変数値として保存されもする。また、初期化部３２１は、保存空間３３０内にジャバスクリプト・モジュールがすでに保存されているか否かということを確認し、もし保存されている場合には、保存されたモジュールのバージョンが、現在ウェブページで使用されるジャバスクリプト・モジュールのバージョンと比べ、同一バージョンであるか否かということを判断する機能を遂行する。同一バージョンであるか否かということは、先に設定した現在ウェブページで使用されているジャバスクリプト・モジュールのバージョン、及び保存空間３３０内に保存されたジャバスクリプト・モジュールのバージョンを対比して確認することができ、もし保存空間３３０内にジャバスクリプト・モジュールが保存されていないか、あるいは保存されているとしても、バージョンの対比結果、同一バージョンではない場合、ソースコード呼び出し部３２２を介して、当該バージョンを有するジャバスクリプト・ソースコードを受信し、分離部３２３を介して、モジュール別に分離して保存する。
【００５２】
ソースコード呼び出し部３２２は、ウェブサーバ１００に、当該バージョンを有するジャバスクリプト・ソースコードを要請し、ウェブサーバ１００内のジャバスクリプト・ソースコード伝送部１３０から提供されるソースコードを受信する。一般的なＨＴＭＬの場合、サーバ側に特定データを要請するためには、ウェブページ全体をリフレッシュ（refresh）しなければならないという問題点があるが、Ajax（Asynchronous JavaScript + XML）技術を利用する場合、ウェブページ全体のリフレッシュがなくとも、必要な情報をサーバ側に要請して受信することができる。当該バージョンを有するジャバスクリプト・ソースコードの要請及び受信に、Ajax技術を適用することが望ましいが、ソースコード呼び出し部３２２の実現は、必ずしもAjax技術に限定されるものではない。なお、ソースコードは、テキスト形式で読み取ることができるので、従来技術のように、ジャバスクリプトの無条件のパージング及びメモリローディングが発生せず、後述する分離部３２３を介して、各モジュール別に分離されて保存される。
【００５３】
分離部３２３は、ソースコード呼び出し部３２２を介して受信したジャバスクリプト・ソースコードにおいて、特定区分文字を基に、モジュール別に、ソースコード及び遅延ローディングのオプションを分離し、保存空間３３０に保存する。ソースコードには、遅延ローディングする各ジャバスクリプト・モジュール別に、特定区分文字が挿入されており、分離部３２３は、split（）関数などを利用して、ソースコードをモジュール別に、遅延ローディングのオプションを含めて分離する。本発明の一実施形態による例示的なジャバスクリプト・ソースコードを図示した図６を参照すれば、図６には、「new Function（“return definedLazyObject（）”）」のような無名関数（anonymous function）に、特定区分文字が使用されており、それにより、図６のソースコードは、全２個のジャバスクリプト・モジュールに区分されて分離される。なお、定義された特定区分文字において、「definedLazyObject（）」文字列内に、遅延ローディングのオプションを設定し、状況別に異なって動作するように実現することができる。さらに具体的な例として、「definedLazyObject（）」文字列内の「‘ｓType’」というパラメータの後には、当該モジュールの種類（例えば、クラスタイプであるか否かということ）、そして「‘ａTriggerMethod’」というパラメータの後には、当該モジュールで最初に呼び出されるメソッド（後述する仮想関数生成部は、モジュール内の各メソッドに対応するあらゆる仮想関数を生成するものではなく、本遅延ローディング・オプションで設定されたメソッドに対応する仮想関数のみを生成することも可能）を付加する方式で、遅延ローディングのオプションを設定することができるが、必ずしも説示された例のみに限定されるものではない。従って、分離部３２３は、各モジュール別に区分されたソースコードそれぞれについて、遅延ローディングのオプションを分離した後、保存空間３３０に保存する。
【００５４】
そのように、初期化を介して、必要な場合、ウェブサービスで使用されるジャバスクリプト・モジュール全体を、１回にテキスト形式で読み取った後、分離部３２３を介して、ジャバスクリプト全体をモジュール別に区分して分離して保存しておくことにより、ウェブサービス内に含まれる各ウェブページ間を移動するとしても、ジャバスクリプト要請による別途のネットワーク・トラフィックが発生せず、保存空間３３０内に保存されたデータを活用することができるので、それによる明確な性能向上効果を得ることができる。
【００５５】
また、保存空間３３０に保存されたデータは、ユーザが意図的に削除しない限り、続けて維持されるので、前述の初期化部３２１で遂行するバージョンの対比により、新たな機能の配布によるバージョンの変更を確認する場合、自動的に最新バージョンを有するジャバスクリプト・ソースコードに更新されるので、開発者の立場からみても、その適用及びプログラミングが便利である。
【００５６】
仮想関数生成部３２４は、保存空間３３０に保存されたそれぞれのモジュールに対応する仮想関数を生成し、生成された仮想関数をメモリにローディングする。仮想関数は、モジュールが含んでいる関数に係わる情報を含み、保存空間３３０に分離されて保存されたモジュールそれぞれについて設定された遅延ローディングのオプションを参照して生成される。仮想関数は、特定モジュールの最初の実行時点を把握し、同期的に遅延ローディングするために必要な関数であり、対応するモジュールを保存空間３３０から読み取り、ウェブブラウザ３１０に伝達することにより、メモリにローディングさせる機能、及びモジュールに含まれたメソッド（method）のうち、仮想関数をオーバーライド（override）したメソッドを実際に実行させるために、さらに１回呼び出す機能を含んでもよい。従って、ジャバスクリプト・モジュールのサイズに関係なく、それと対応する仮想関数は、前述の機能のみを含む非常に小さいサイズに構成されており、その生成速度及びメモリローディング速度が非常に速い。また、前述のように仮想関数は、共通する機能を含んでいるので、生成される仮想関数は、対応するモジュール及びメソッドを認識することができるパラメータを伝送しながら、後述する遅延ローダ３２０のモジュール実行部３２５を呼び出し、モジュール実行部３２５で、対応するモジュールをメモリにローディングし、そのうちオーバーライドされたメソッドを実行する機能を遂行するように定義されてもよい。
【００５７】
一方、仮想関数が呼び出される時点を、対応する特定モジュールを最初に使用するための時点、すなわち、当該モジュールの最初の実行時点と見なす。最初の実行時点は、初期化部３２１による判断の結果、保存空間３３０内に、特定のジャバスクリプト・モジュールが保存されていないか、あるいは保存されているとしても、そのバージョンが、現在ウェブページで使用されるジャバスクリプト・モジュールのバージョンと同一ではなく、ソースコード呼び出し部３２２を介して当該バージョンを有する前記特定ジャバスクリプト・モジュールのソースコードを受信し、分離部３２３を介して保存した後、前記特定ジャバスクリプト・モジュールに対して最初に実行要請がなされる場合、その時点としてもよい。
【００５８】
モジュール実行部３２５は、特定ジャバスクリプト・モジュールの最初の実行要請のとき、すなわち、最初の実行時点で、その代わりに実行される仮想関数の呼び出しに基づいて、仮想関数と対応する特定モジュールを保存空間３３０から読み取り、ウェブブラウザ３１０に伝達することによってメモリにローディングする。また、仮想関数に対応するモジュールに含まれるメソッドのうち、仮想関数をオーバーライドしたメソッドを実際に実行させるために、さらに１回呼び出す機能も含んでもよい。
【００５９】
そのように、モジュール実行部３２５の実行によって、メモリにローディングされていた仮想関数は、それに対応する特定モジュールで代替されてメモリにローディングされ、その後、同一のモジュールの実行要請のときには、仮想関数を代替してメモリにローディングされている当該モジュールが即座に実行される。
【００６０】
そのように、遅延ローダ３２０内部の各構成要素の有機的な機能によって、各ジャバスクリプト・モジュールは、あらかじめローディングされず、特定モジュールの実行時点で、仮想関数の実行を経て、同期的に当該モジュールだけがメモリにローディングされて実行される。従って、現在使用していないモジュールをあらかじめローディングする必要はなく、そのサイズが非常に小さい仮想関数を利用して準備をしておき、実際実行が必要な時点で、必要な当該モジュールのみをメモリにローディングすることにより、ウェブブラウザの初期ローディング速度を大きく向上させることができる。
【００６１】
同期式ジャバスクリプト遅延ローディング方法
図５は、本発明の一実施形態による同期式ジャバスクリプト遅延ローディング方法を示すフローチャートである。図５を参照すれば、遅延ローダ３２０の初期化部３２１では、まず初期化（Ｓ５０１）を行う。前述のように、段階Ｓ５０１の初期化では、現在ウェブページで使用されるジャバスクリプト・モジュールのバージョン設定機能を含む。その後、初期化部３２１では、保存空間３３０内に、ジャバスクリプト・ソースコードが、モジュール別に分離されて保存されているか否かを確認し（Ｓ５０２）、もし保存されているならば、設定されたバージョンが、保存空間３３０内に保存されたバージョンと比べ、同一であるか否かを確認する（Ｓ５０３）。
【００６２】
もし段階Ｓ５０２で、保存空間３３０内に、ジャバスクリプト・ソースコードが保存されていない場合や、たとえ保存されているとしても、段階Ｓ５０３で対比された２つのバージョンが同一ではない場合、ソースコード呼び出し部３２２は、ウェブサーバ１００に設定されたバージョンを有するジャバスクリプト・ソースコードを要請する（Ｓ５０４）。
【００６３】
段階Ｓ５０４での要請によって伝送されたジャバスクリプト・ソースコードは、分離部３２３で、ジャバスクリプト・モジュールそれぞれに区分されて分離され、また遅延ローディング・オプションも、各モジュール別に分離され、保存空間３３０に保存される（Ｓ５０５）。前述のように、ソースコードで各モジュール別に区分して分離するために、ソースコードには、特定区分文字が含まれており、分離部３２３は、含まれた特定区分文字を基に、モジュール別にソースコードを分離することができる。
【００６４】
すでに同一バージョンを有するジャバスクリプト・ソースコードが保存空間３３０に保存されているか、あるいは段階Ｓ５０４及び段階Ｓ５０５を介して同一バージョンを有するジャバスクリプト・ソースコードが各モジュール別に分離されて保存空間３３０に保存された後、仮想関数生成部３２４は、保存空間３３０に分離されて保存された各ジャバスクリプト・モジュール別に対応する仮想関数を生成し、メモリにローディングする（Ｓ５０６）。仮想関数は、段階Ｓ５０５で分離された遅延ローディング・オプションに基づいて生成され、前述のように、対応するモジュールを、保存空間３３０から読み取ってウェブブラウザ３１０に伝達することにより、メモリにローディングさせる機能、及びモジュールに含まれたメソッドのうち、仮想関数をオーバーライドしたメソッドを実際に実行させるために、さらに１回呼び出す機能を含んでもよく、モジュール実行部３２５の呼び出しによって遂行される。
【００６５】
その後、仮想関数の呼び出しのとき、すなわち、特定ジャバスクリプト・モジュールの最初の実行要請のとき（Ｓ５０７）に、仮想関数と対応する特定モジュールを、保存空間３３０から読み取ってウェブブラウザに伝達することにより、メモリにローディングする（Ｓ５０８）。また、メモリにローディングされたモジュールに含まれたメソッドのうち、仮想関数をオーバーライドしたメソッドを実際に実行させるために、さらに１回呼び出して実行する（Ｓ５０９）。図５に図示されているような遅延ローディング方法により、仮想関数を使用しても、遅延ローダ機能を適用する前と同一に動作することを保証する。また、段階Ｓ５０８によって、メモリにローディングされた仮想関数は、それに対応する特定モジュールでオーバーライドされてメモリにローディングされ、その後同一のモジュールの実行要請のときには、仮想関数の実行なしも、メモリにローディングされている当該モジュールが即座に実行される。
【００６６】
なお、本発明による同期式遅延ローディング方式によれば、従来の遅延ローディングを適用していないときと同一の方式でコーディングすることができる。例えば、ｕｔｉｌという客体内のsomeMethodというメソッドを使用する場合、図１Ｃに図示された本発明による同期式ジャバスクリプト遅延ローディング方式を利用して実現した例示的なジャバスクリプト・コードのように作成されればよいので、モジュール間の他のコードとの実行時点、及びモジュール間の依存性に対する配慮なしにも、従来方式のようにプログラミングが可能であり、すでに開発されたウェブページの場合にも、別途の修正なしに適用可能である。
【００６７】
同期式ジャバスクリプト遅延ローディング方式の適用によるローディング速度差
図７Ａは、互いに異なる機器で測定した、本発明による同期式ジャバスクリプト遅延ローディング方式の適用の有無によるローディング速度差を示し、図７Ｂは、互いに異なるウェブブラウザで測定した、本発明による同期式ジャバスクリプト遅延ローディング方式の適用の有無によるパージング及び実行の速度差を図示した表である。
【００６８】
まず、図７Ａは、３Ｇ（3rd generation）ネットワークと類似して構成したモバイル環境で、互いに異なるＯＳ（operating system）バージョンを有する互いに異なる機器を利用して、特定のウェブページのローディング速度を測定した表であり、機器及びＯＳバージョンに関係なく、本発明による同期式ジャバスクリプト遅延ローディング方式を適用した場合、２０％から２５％ほどのローディング速度が向上する効果が示されているということを確認することができる。
【００６９】
次に、図７Ｂは、同一の機器で、互いに異なるウェブブラウザを利用して、特定のウェブページのロード時、ジャバスクリプトのパージングと実行とに要する時間を測定した表であり、ウェブブラウザの種類に関係なく、本発明による同期式ジャバスクリプト遅延ローディング方式を適用した場合、ウェブページのロード時、ジャバスクリプトのパージングと実行とに要する時間が３０％ほど短縮されるということを確認することができる。
【００７０】
本発明の遅延ローディング方式によれば、各ジャバスクリプト・モジュール別に生成される仮想関数のサイズは、ジャバスクリプト・モジュールのサイズと関係なく、一定に小さなサイズに維持されるので、図７Ａに図示されたローディング速度差は、ウェブページにさらに多くの機能を実現させるために、ジャバスクリプト・ソースコードのサイズが大きくなるほど、さらに明確に示されるものである。
【００７１】
本発明の一実施形態による方法は、多様なコンピュータ手段を介して遂行されるプログラム命令形態に実現され、コンピュータで読み取り可能な媒体に記録される。前記コンピュータで読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでもよい。前記媒体に記録されるプログラム命令は、本発明のために特別に設計されて構成されたものや、コンピュータ・ソフトウェアの当業者に公知されて使用可能なものであってもよい。コンピュータで読み取り可能な記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク及び磁気テープのような磁気媒体（magnetic media）；ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体（optical media）；フロプティカルディスク（floptical disk）のような磁気・光媒体（magneto-optical media）；及びＲＯＭ、ＲＡＭ、フラッシュメモリのような、プログラム命令を保存して遂行するように、特別に構成されたハードウェア装置が含まれる。プログラム命令の例としては、コンパイラによって作われるような機械語コードだけではなく、インタプリタなどを使用して、コンピュータによって実行される高級言語コードを含む。前記ハードウェア装置は、本発明の動作を遂行するために、一つ以上のソフトウェア・モジュールでもって作動するように構成されもし、その逆もまた同一である。
【００７２】
本発明は、特定機能及びその関係の性能を示す方法段階の目的を有し、以上で説明された。かような機能的構成要素、並びに方法段階の境界及び順序は、説明の便宜のために、ここで任意に定義された。前記特定機能及び関係が適切に遂行される限り、代案的な境界及び順序が定義されるのである。従って、任意のかような代案的な境界及び順序は、本発明の範囲内及び思想内にある。さらに、かような機能的構成要素の境界は、説明の便宜のために任意に定義された。ある重要な機能が適切に遂行される限り、代案的な境界が定義されるのである。同様に、フローチャートも、ある重要な機能性を示すために、ここで任意に定義されている。拡張された使用のために、前記フローチャートの境界及び順序が定義され、依然としてある重要な機能を遂行する。従って、機能的構成要素、フローチャートのブロック及び順序の代案的な定義は、いずれも本発明の範囲内及び思想内にある。
【００７３】
本発明はまた、一つ以上の実施形態の用語で、少なくとも部分的に説明された。本発明の実施形態は、本発明、並びにその側面、その特徴、その概念及び／またはその例を示すために、ここで使用される。本発明を実現する装置、製造の物品、マシン及び／またはプロセスの物理的な実施形態は、ここに説明された一つ以上の実施形態を参照して説明された、一つ以上の側面、特徴、概念、例などを含んでもよい。さらに、全体図面で、実施形態は、前記同一であるか、あるいは異なる参照番号を使用する、前記同一であるか、あるいは類似して命名された機能、段階、モジュールなどを統合し、そのように、前記機能、段階、モジュールなどは、前記同一であるか、あるいは類似した機能、段階、モジュールでもあり、他のものでもある。
【００７４】
以上、本発明では、具体的な構成要素のような特定事項、限定された実施形態及び図面によって説明されたが、それらは、本発明のさらに全般的な理解を助けるために提供されたものであり、本発明は、前記の実施形態に限定されるものではなく、本発明が属する分野で当業者であるならば、かような記載から、多様な修正及び変形が可能であろう。
【００７５】
従って、本発明の思想は、説明された実施形態に限って決められるものではなく、特許請求の範囲、さらに当該特許請の求範囲と均等であるか、あるいは等価的変形があるあらゆるものは、本発明思想の範疇に属するものである。
【産業上の利用可能性】
【００７６】
本発明の同期式スクリプト遅延ローディング・システム、同期式スクリプト遅延ローディング方法及びそれを実行するためのプログラムが記録されたコンピュータで読み取り可能な記録媒体は、例えば、情報検索関連の技術分野に効果的に適用可能である。
【符号の説明】
【００７７】
１００    ウェブサーバ
１１０    送受信部
１２０    ウェブページ提供部
１３０    ジャバスクリプト・ソースコード伝送部
１４０    保存部
２００    通信網
３００    クライアント・コンピュータ
３１０    ウェブブラウザ
３２０    遅延ローダ
３２１    初期化部
３２２    ソースコード呼び出し部
３２３    分離部
３２４    仮想関数生成部
３２５    モジュール実行部
３３０    保存空間
【図１Ａ】
2014194777.tif 000003
【図１Ｂ】
2014194777.tif 000004
【図１Ｃ】
2014194777.tif 000005
【図２】
2014194777.tif 000006
【図３】
2014194777.tif 000007
【図４Ａ】
2014194777.tif 000008
【図４Ｂ】
2014194777.tif 000009
【図５】
2014194777.tif 000010
【図６】
2014194777.tif 000011
【図７Ａ】
2014194777.tif 000012
【図７Ｂ】
2014194777.tif 000013