(57)【要約】【課題】  スクロール時の操作性の向上を図ることができるようにする。【解決手段】  データを保持する保持手段と、スクロールの方向を検知するスクロール方向検知手段と、前記スクロール方向検知手段の検知結果に応じて連続スクロール時における前記データ保持手段からのデータ読み取りを制御する制御手段とを有するデータ処理装置等を提供する。【選択図】  図１
2006343846.tif 000002
【特許請求の範囲】
【請求項１】
項目を表示するＧＵＩ部品であるポップアップメニューやChoiceと呼ばれるプルダウン形式で項目が選択できる部品やListと呼ばれる項目選択ができる項目一覧部品において、項目すべてを一度に画面上に表示しきれなく、スクロールボタンやスクロールバーによるスクロール機構がついている場合であって、
ハードディスクなどの外部記憶手段と、
ネットワークなどの通信手段と、
メモリなどの内部記憶手段と、
前記外部記憶手段または前記通信手段により項目データを前記内部記憶手段に読み込むデータ読み込み手段と、
前記スクロールの方向を検知するスクロール方向検知手段と、
前記スクロールを連続に行ったことを検知する連続スクロール検知手段と、
前記内部記憶手段内に項目の表示用データを保持する表示用データ保持手段と、
先読み用データを保持する先読み用データ保持手段と、
前記連続スクロール検知手段で連続スクロールが検知された場合は、前記スクロール方向検知手段で得られた方向のまだ読み込まれていない、あらかじめ定められた項目数分のデータの先読みを行うデータ先読み手段と、
前記表示用データ保持手段により保持されている内容の一部もしくはすべてを画面に表示する表示手段と、
ユーザの指示やプログラムによって前記表示用データ保持手段の内容のどの部分を表示するかを決定するスクロール制御決定手段と、
前記スクロール制御決定手段により、前記表示用データが足りないと判断された場合は、すでに前記データ先読み手段により前記先読みが行われていれば、前記表示用データ保持手段の内容を先読み用データ保持手段の内容に置き換える置き換え手段と、
前記先読みが行われていなければ、前記データ読み込み手段により、あらかじめ定められた項目数分のデータを前記表示用データ保持手段に読み込む読込手段と、
前記スクロール方向検知手段により、上方向が検知されていれば、前記表示用データの最終ページを、下方向が検知されていれば、前記表示用データの最初のページを表示するページ表示手段と、
前記スクロール時における前記連続スクロールを検知した時点でデータを先読みする先読み手段とを有することを特徴とするデータ先読み装置。
【請求項２】
前記先読み手段は、プログラムからの命令によって前記連続スクロールが行われた場合にも、前記連続スクロールを検知した時点でデータを先読みすることを特徴とする請求項１に記載のデータ先読み装置。
【請求項３】
前記連続スクロール検知手段は、ユーザの指示によって、前記スクロールのボタンを長く押したままにすることや前記スクロールバーをドラッグすることで発生する前記連続スクロールを検知することを特徴とする請求項１に記載のデータ先読み装置。
【請求項４】
前記連続スクロール検知手段は、前記スクロールのボタンが押されてから、またさらに同じ方向の前記ボタンが押されるまでの時間を計り、ある値以下であれば、次々と連続に前記ボタンが押されていると判断して、前記連続スクロールを検知することを特徴とする請求項１に記載のデータ先読み装置。
【請求項５】
前記連続スクロール検知手段は、前記スクロールのボタンが押されてから、またさらに同じ方向の前記ボタンが押されるまでの時間を計り、ある値以下であることが、あらかじめ定められた回数続いた場合に、次々と連続に前記ボタンが押されていると判断し、前記連続スクロールを検知することを特徴とする請求項４に記載のデータ先読み装置。
【請求項６】
項目を表示するＧＵＩ部品であるポップアップメニューやChoiceと呼ばれるプルダウン形式で項目が選択できる部品やListと呼ばれる項目選択ができる項目一覧部品において、項目すべてを一度に画面上に表示しきれなく、スクロールボタンやスクロールバーによるスクロール機構がついている場合であって、
ハードディスクなどの外部記憶手段と、
ネットワークなどの通信手段と、
メモリなどの内部記憶手段と、
前記外部記憶手段または前記通信手段により項目データを前記内部記憶手段に読み込むデータ読み込み手段と、
連続スクロールが終わったことを検知する終了検知手段と、
前記終了検知手段により、前記連続スクロールが終わった時の表示中のページ数を取得するページ取得手段と、
前記ページ取得手段により得られたページの前後のあらかじめ定められた項目数分の項目データを前記データ読み込み手段によって読み込む項目データ読込手段と、
前記連続スクロール終了後のページの周辺がすでにメモリ中に先読みされていることになり、そのページからのスクロールがどちら向きにもスムーズに行うスクロール手段とを有することを特徴とするデータ先読み装置。
【請求項７】
項目を表示するＧＵＩ部品であるポップアップメニューやChoiceと呼ばれるプルダウン形式で項目が選択できる部品やListと呼ばれる項目選択ができる項目一覧部品において、項目すべてを一度に画面上に表示しきれなく、スクロールボタンやスクロールバーによるスクロール機構がついている場合であって、
ハードディスクなどの外部記憶工程と、
ネットワークなどの通信工程と、
メモリなどの内部記憶工程と、
前記外部記憶工程または前記通信工程により項目データを前記内部記憶工程に読み込むデータ読み込み工程と、
前記スクロールの方向を検知するスクロール方向検知工程と、
前記スクロールを連続に行ったことを検知する連続スクロール検知工程と、
前記内部記憶工程内に項目の表示用のデータを保持する表示用データ保持工程と、
先読み用データを保持する先読み用データ保持工程と、
前記連続スクロール検知工程で連続スクロールが検知された場合は、前記スクロール方向検知工程で得られた方向のまだ読み込まれていない、あらかじめ定められた項目数分のデータの先読みを行うデータ先読み工程と、
前記表示用データ保持工程により保持されている内容の一部もしくはすべてを画面に表示する表示工程と、
ユーザの指示やプログラムによって前記表示用データ保持工程の内容のどの部分を表示するかを決定するスクロール制御決定工程と、
前記スクロール制御決定工程により、前記表示用データが足りないと判断された場合は、すでに前記データ先読み工程により前記先読みが行われていれば、前記表示用データ保持工程の内容を先読み用データ保持工程の内容に置き換える置き換え工程と、
前記先読みが行われていなければ、前記データ読み込み工程により、あらかじめ定められた項目数分のデータを表示用データ保持工程に読み込む読込工程と、
前記スクロール方向検知工程により、上方向が検知されていれば、前記表示用データの最終ページを、下方向が検知されていれば、前記表示用データの最初のページを表示する表示工程と、前記スクロール時における前記連続スクロールを検知した時点でデータを先読みする先読み工程を有することを特徴とするデータ先読み方法。
【請求項８】
前記先読み工程は、プログラムからの命令によって前記連続スクロールが行われた場合にも、前記連続スクロールを検知した時点でデータを先読みすることを特徴とする請求項７に記載のデータ先読み方法。
【請求項９】
前記連続スクロール検知工程は、ユーザの指示によって、前記スクロールのボタンを長く押したままにすることや前記スクロールバーをドラッグすることで発生する前記連続スクロールを検知することを特徴とする請求項７に記載のデータ先読み方法。
【請求項１０】
前記連続スクロール検知工程は、前記スクロールのボタンが押されてから、またさらに同じ方向の前記ボタンが押されるまでの時間を計り、ある値以下であれば、次々と連続に前記ボタンが押されていると判断し、前記連続スクロールを検知することを特徴とする請求項７に記載のデータ先読み方法。
【請求項１１】
１  前記連続スクロール検知工程は、前記スクロールのボタンが押されてから、またさらに同じ方向の前記ボタンが押されるまでの時間を計り、ある値以下であることが、あらかじめ定められた回数続いた場合に、次々と連続に前記ボタンが押されていると判断し、前記連続スクロールを検知することを特徴とする請求項１０に記載のデータ先読み方法。
【請求項１２】
項目を表示するＧＵＩ部品であるポップアップメニューやChoiceと呼ばれるプルダウン形式で項目が選択できる部品やListと呼ばれる項目選択ができる項目一覧部品において、項目すべてを一度に画面上に表示しきれなく、スクロールボタンやスクロールバーによるスクロール機構がついている場合であって、
ハードディスクなどの外部記憶工程と、
ネットワークなどの通信工程と、
メモリなどの内部記憶工程と、
前記外部記憶工程または前記通信工程により項目データを前記内部記憶工程に読み込むデータ読み込み工程と、
連続スクロールが終わったことを検知する終了検知工程と、
前記終了検知工程により、前記連続スクロールが終わった時の表示中のページ数を取得するページ取得工程と、
前記ページ取得工程により得られたページの前後のあらかじめ定められた項目数分の項目データを前記データ読み込み工程によって読み込む項目データ読込工程と、
前記連続スクロール終了後のページの周辺がすでにメモリ中に先読みされていることになり、そのページからのスクロールがどちら向きにもスムーズに行うスクロール工程とを有することを特徴とするデータ先読み方法。
【請求項１３】
前記請求項７〜１２の何れか１項に記載の方法の各工程をコンピュータに実行させるコンピュータプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【請求項１４】
データを保持する保持手段と、
スクロールの方向を検知するスクロール方向検知手段と、
前記スクロール方向検知手段の検知結果に応じて連続スクロール時における前記データ保持手段からのデータ読み取りを制御する制御手段とを有することを特徴とするデータ処理装置。
【請求項１５】
データを保持する保持工程と、
スクロールの方向を検知するスクロール方向検知工程と、
前記スクロール方向検知工程の検知結果に応じて連続スクロール時における前記データ保持手段からのデータ読み取りを制御する制御工程とを有することを特徴とするデータ処理方法。
【請求項１６】
前記請求項１５に記載の方法の各工程をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ先読み装置、データ先読み方法、データ処理装置、データ処理方法、コンピュータプログラム及び記憶媒体に関し、例えばデータの先読みタイミング技術に用いて好適な技術に関する。
【背景技術】
【０００２】
従来、List(項目選択部品)では、無限に項目を追加することができる。List(項目選択部品)の高さ以上に項目が追加された場合は、スクロールボタン（スクロールバー）が出て、スクロールすることにより現在見えている項目以外にアクセスすることが可能になる。
【０００３】
スクロールボタンの場合は、何百と追加された項目にアクセスするために、一回押下するごとに１ページスクロールするという事を繰り返すのは大変であるため、スクロールボタンを長押しすることで、ページのスクロールを連続させること（連続スクロールと呼ぶ）を可能にしている。また、あらかじめ指定した範囲はスクロール量を調整してスクロールを速く行うことにより有効データを敏速に表示することが可能な方法が特許文献１に示されている。
【０００４】
大量の項目を含む場合には全てをメモリ中にロードしておくことができない場合がある。そこで、必要な項目（ユーザに見せている項目含む）をすこしずつハードディスクなどからメモリ中にロードする手段がとられるが、この場合、ロードされてない部分が必要になった場合、本当に表示しようとしているタイミングでロードするとロードする時間待たされて表示が遅れてしまう。
【０００５】
項目の表示ではないが、インターネットのブラウジングする際の先読みの方法として、特許文献２のように、カーソル位置が動かないなどの情報から閲覧者の意志を推測して、暇なときにファイルの先読みを実行することにより、閲覧者の意志に沿った先読みを可能にする方法がある。
【０００６】
【特許文献１】特開２００２−２４４６４１号公報
【特許文献２】特開２００２−２５１３１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来技術では、List(項目選択部品)において大量のデータを扱う場合に全てメモリ中に読み込むことはメモリ資源の少ない機器では難しいため、少しずつハードディスクやネットワークなどからメモリ中にロードして表示している。また、List(項目選択部品)の高さ以上に項目が多い場合には、表示しきれない部分を表示させるためにスクロールさせるが、どんどんスクロールさせた場合にメモリ中にロードされた分を全て表示してしまい、次のデータをロードしなければいけなくなる。この時点でハードディスクなどの外部記憶装置やネットワークなどの通信からロードするとロードの時間分表示が遅れてしまうという問題点があった。これを避けるためには、現時点でメモリ中にロードされているデータの前後のある程度のデータを先読みしていなければならない。このように使われないかもしれないデータをメモリ中に置くことは無駄であった。
【０００８】
また、ある項目を探すときなど、連続スクロールを行って止まった後には、行き過ぎてしまった場合は戻る方向に少しずつスクロールしたり、まだ所望の場所に来ていない場合は、少しずつ進む方向にスクロールしたりと場面によってどちらにスクロールされるかわからない問題があった。
【０００９】
本発明は前述の問題点にかんがみ、スクロール時の操作性の向上を図ることができるようにすることを目的としている。
【課題を解決するための手段】
【００１０】
前記課題を解決するために本発明では、データを保持する保持手段と、スクロールの方向を検知するスクロール方向検知手段と、前記スクロール方向検知手段の検知結果に応じて連続スクロール時における前記データ保持手段からのデータ読み取りを制御する制御手段とを有するデータ処理装置等を提供する。
【発明の効果】
【００１１】
本発明によれば、以上説明したように、本発明の方法によれば、リストなどの項目表示部品において、大量の項目を表示する際に、メモリが少ないシステムにおいても、連続スクロールがオンになったことを検知して、これをトリガーとして連続スクロールを行っている方向の次のデータを先読みすることにより、スムーズなスクロールを可能とし、快適な項目閲覧が可能になり、ユーザの操作性を高める効果がある。
【００１２】
また、同様に、リストなどの項目表示部品において、大量の項目を表示する際に、メモリが少ないシステムにおいても、ユーザがすばやくスクロールボタンを押していて、次々とページをスクロールしていることを検知して、これをトリガーとしてスクロールを行っている方向の先のデータを先読みすることにより、スムーズなスクロールを可能とし、快適な項目閲覧が可能になり、ユーザの操作性を高める効果がある。
【００１３】
また、ユーザが大量の項目から選択する項目を探そうとスクロールボタンの長押しを行って、連続スクロールを行い止まった時点で、そのページが表示される際に、止まったページの前後のある分のページ達を同時にロードすることで、その後、詳細にゆっくりと前後のページを移動して項目を探す時に即座にページが表示されて快適な項目閲覧が可能になる効果がある。
【発明を実施するための最良の形態】
【００１４】
（第１の実施の形態）
以下、添付図面に従って、本発明の実施の形態について説明する。
図１は、本実施の形態に係る構成を示すブロック図である。
図１に示すように、本実施の形態で用いられる装置は、記憶部１、演算部２、表示部３、入力部４、外部記憶部５、ネットワーク部６とから構成される。
【００１５】
記憶部１１は、さらに、データ部１０とプログラム部１１とから構成され、データ部１０はさらに表示用データ保持部１０１と、先読み用データ保持部１０２とから成る。演算部２は、さらに、ロード制御部２０、データ取得部２１、連続スクロール判定部２２、スクロール制御部２３、表示制御部２４とから成る。
【００１６】
これら構成に基づき、本実施の形態における流れを、図２のフローチャートを用いて説明する。
まず、ステップＳ１００において、リストを最初に表示したいページからあるページ分（Ｘページ分とする）メモリ内（図１の記憶部１の表示用データ保持部１０内）にロードする。ロードもとは、図１の外部記憶部５のハードディスクや図１のネットワーク６を通じてなど項目データが格納されている場所からである。
【００１７】
次に、ステップＳ１０１において、表示したいページを図１の表示部３のディスプレイ装置などへ表示する。次に、ステップＳ１０２において、入力部４からの入力により、下スクロールボタンが押されたかを判定する。下スクロールボタンが押されていれば、ステップＳ１０３に移り、最終ページかどうかが判定される。
【００１８】
最終ページであればステップＳ１０２に戻り、最終ページでなければ、ステップＳ１０４に移る。ステップＳ１０４では、長押しで連続スクロールがオンになったかどうかが判定される（図１の連続スクロール判定部２２による）。通常ある秒数スクロールボタンが押されたままになると連続スクロールがオンになり、ある秒数以下である場合は、普通にボタンが押されたと判断され、１ページずつのスクロールになる。
【００１９】
ここで、連続スクロールがオンになったと判定された場合は、ステップＳ１０５に移り、次のあるページ分（Ｘページ分）のロードを図１のロード制御部２０の指示により図１のデータ取得部２１により取得開始して（ただし、すでに同じ部分をロード開始済みであれば２重にロード開始することはしない）、ロード結果は、図１の先読み用データ保持部１０２に保持される（ロード開始から保存までは、他の処理と並列処理される）。そして、ステップＳ１０６に移る。
【００２０】
ステップＳ１０４で連続スクロールがオンになっていないと判定された場合は、ステップＳ１０６に移る。ステップＳ１０６では、下にページを１ページスクロールして（図１のスクロール制御部２３による）、ステップＳ１０７に移る。ステップＳ１０７では、最終ページかどうかが判定される。最終ページであればステップＳ１０２に戻り、最終ページでなければ、ステップＳ１０８に移る。
【００２１】
ステップＳ１０８では、リストを切り替えなければいけないかどうかが判定される。これは、現在のページがロードされているページ分の中のＸページ分に達したかどうかで判定できる。リストを切り替えなければならない場合はステップＳ１０９に移り、まだ切り替える必要がなければステップＳ１１３に移る。ステップＳ１０９では、先読みしていたデータがあるかが判定され、ステップＳ１０５においてＸページ分がすでにロードされ先読みされている場合は、ステップＳ１１１に移る。先読みされていない場合は、ステップＳ１１０に移り、次のあるページ分（Ｘページ分）を図１の先読み用データ保持部１０２にロードする。
【００２２】
ステップＳ１１１に移り、ステップＳ１０５でリストを先読みしていたもの、もしくはステップＳ１１０でロードしたものと、すでに表示に使用していたメモリ内にロードされていたリストと入れ替える（先読み用データ保持部１０２の内容を表示用データ保持部１０１に移す）。次にステップＳ１１２に移り、入れ替えたリストの中の１ページ目を表示する(図１の表示制御部２４により表示部３に表示される)。
【００２３】
ステップＳ１１３に移り、連続スクロール中かを判定し、連続スクロール中であればステップＳ１１４に移り、連続スクロール中でなければステップＳ１０２に戻る。ステップＳ１１４では、スクロールボタンが離されたかを判定し、離された場合は、連続スクロールがオフになったということなので、ステップＳ１０２に戻り、ステップＳ１０２〜Ｓ１２９の処理を繰り返す。離されていない場合は、ステップＳ１１５に移る。ステップＳ１１５では、どれくらいで次のスクロールを行うかを決める処理となり、ある時間スリープすることでそれが決まる。
【００２４】
この時間が少ないほど、速いスクロールになる。この処理を、連続スクロール中に何回スクロールされたかをカウントしておき、ある回数になった段階でスリープ時間を短くするといった処理に変更すれば、長押しをしている時間が長いとどんどん速くスクロールするようになる加速スクロールを実現することが可能である。
【００２５】
ステップＳ１１５を終えた後は、ステップＳ１０６に戻り、連続スクロールを続けるために、ステップＳ１０６〜Ｓ１１５、Ｓ１０２の処理を繰り返す。ステップＳ１０２において、下スクロールボタンが押されてなければ、ステップＳ１１６に移る。ステップＳ１１６では、図１の入力部４からの入力により、上スクロールボタンが押されているかどうかが判定され、上スクロールボタンが押されていなければ、ステップＳ１０２に戻る。
【００２６】
上スクロールボタンが押されていれば、ステップＳ１１７に移り、(全リスト中の)１ページ目かどうかが判定される。１ページ目であればそれ以上スクロールできないので、ステップＳ１０２に戻り、１ページ目でなければ、ステップＳ１１８に移る。ステップＳ１１８では、長押しで連続スクロールがオンになったかどうかが図１の連続スクロール判定部により判定される。通常ある秒数押されたままになると連続スクロールがオンになり、ある秒数以下である場合は、普通にスクロールボタンが押されたと判断される。
【００２７】
ここで、連続スクロールがオンになったと判定された場合は、ステップＳ１１９に移り、前のあるページ分（Ｘページ分）のロードを開始して（ただし、すでに同じ部分をロード開始済みであれば２重にロード開始することはしない）、ロードは図１のロード制御部によって、他の処理と並列処理されて、結果は、図１の先読み用データ保持部１０２に保持されて、ステップＳ１２０に移る。ステップＳ１１８で連続スクロールがオンになっていないと判定された場合は、ステップＳ１２０に移る。ステップＳ１２０では、図１のスクロール制御部により、上にページを１ページスクロールして、ステップＳ１２１に移る。
【００２８】
ステップＳ１２１では、１ページ目かどうかが判定される。１ページ目であればステップＳ１０２に戻り、１ページ目でなければ、ステップＳ１２２に移る。ステップＳ１２２では、リストを切り替えなければいけないかどうかが判定される。
【００２９】
これは、現在のページがロードされているページ分の中の１ページ目に達したかどうかで判定できる。リストを切り替えなければならない場合はステップＳ１２３に移り、まだ切り替える必要がなければステップＳ１２７に移る。ステップＳ１２３では、先読みしていたデータがあるかが判定され、ステップＳ１１９においてＸページ分がすでにロードされ先読みされている場合は、ステップＳ１２５に移る。先読みされていない場合は、ステップＳ１２４に移り、前のあるページ分（Ｘページ分）を図１の先読み用データ保持部１０２にロードする。
【００３０】
ステップＳ１２５に移り、ステップＳ１１９でリストを先読みしていたもの、もしくはステップＳ１２４でロードしたものと入れ替える（先読み用データ保持部１０２の内容を表示用データ保持部１０１に移す）。次にステップＳ１２６に移り、入れ替えたリストの中の最後のページを表示する（図１の表示制御部２４によって表示部３に表示される）。
【００３１】
ステップＳ１２７に移り、連続スクロール中かを判定し、連続スクロール中であればステップＳ１２８に移り、連続スクロール中でなければステップＳ１０２に戻る。ステップＳ１２８では、スクロールボタンが離されたかを判定し、離された場合は、連続スクロールがオフになったということなので、ステップＳ１０２に戻り、ステップＳ１０２〜Ｓ１２９の処理を繰り返す。離されていない場合は、ステップＳ１２９に移る。ステップＳ１２９で、ある時間スリープして、ステップＳ１２０に戻り、連続スクロールを続けるために、ステップＳ１２０〜Ｓ１２９の処理を繰り返す。
【００３２】
今、組込み機器でメモリの使用量が制限されている状態で、メモリ中にはリストの項目数で３５個の配列を２組しか持てないとする（計７０項目分）。配列の１組は先読み用に用いる。リストの表示項目数が今７個とすると、３５個の配列では５ページ分（前記あるページ分としていたＸページ分をここでは５ページ分とする）に相当する。
【００３３】
まず、システムは、リストの５ページ分のデータをディスクやネットワーク越しなどからメモリ中にロードし、１ページ目を表示する（図３の実際のＧＵＩ部品例を参照）。通常は、この状態で下スクロールボタンが押されると次々とスクロールしてメモリ内のデータ（配列）から１ページずつ表示していき、５ページから６ページへのスクロール時にまた５ページ分をディスクやネットワーク越しなどからメモリ中にロードして表示するが、このロードに時間がかかり、５ページから６ページへのスクロールが待たされてしまうことがある。例えば、この待たされる時間をユーザに何のために待たされているかを知らせ不快にさせないために「Loading...」とロード中を示すパネルを出す処理が必要になってしまう場合もある（図４参照）。
【００３４】
そこで、５ページ目に来たときに次の５ページ分（６〜１０ページ）を先読みするということが行われるが、この場合、６ページ目に行かず、上スクロールを行い４ページに戻ることも考えられ、先読みした分が無駄に終わることがある。また、５ページ目にスクロールしてすぐに６ページをスクロールしようとすると、先読み分のロードが間に合わないこともある。
【００３５】
そこで、本発明の方式では、スクロールボタンの長押しによる次々と自動的にスクロールする連続スクロールがオンになることを検知した時点で、次の５ページ分の先読みを行うことで、早い段階で先読みロードを行う。
【００３６】
このことは、連続スクロール時には、５ページから６ページへの切り替え場所を通りすぎる可能性が高いことをふまえている（連続スクロール中は今スクロールしている方向にしかスクロールせず、通常のスクロールのように逆方向に戻ることがない）。
【００３７】
図３は、最初に５ページ分のロードが行われ（図３中の灰色の薄い部分）、１組目の配列にデータを格納し、画面には最初に表示したいページとして１ページ目を表示している例であり、この時点で連続スクロールがオンになると、６〜１０ページの５ページ分の先読みを行って（図３中の灰色の濃い部分）、もう１組目の先読み用配列にデータを格納する。実際に６ページ目の表示を行わなければならなくなったときに、メモリ内で画面に表示する際に参照する配列を先読みした配列に切り替えるだけで、この時点でロードが行われることがなく、よりスムーズに６ページ目の表示を行うことが可能になる（ロード中のパネルも出す処理も必要ない）。この時点で切り替え前に表示用のバッファとして用いていた配列を今度は先読み用の配列として用いるといったことを切り替え毎に交互に切り替えることで、メモリは、２組の配列のみしか使用しなくてよい。
【００３８】
このように、本実施例では、リストなどの項目表示部品において、大量の項目を表示する際に、メモリが少ないシステムにおいても、連続スクロールがオンになったことを検知して、これをトリガーとして連続スクロールを行っている方向の次のデータを先読みすることにより、スムーズなスクロールを可能とする。
【００３９】
（第２の実施の形態）
第１の実施の形態では、長押しで連続スクロールがオンになった場合に先読みを開始するが、本実施の形態では、スクロールボタンを速い間隔で押していることを検知してこれをトリガーとして先読みを開始する。それ以外の処理は、第１の実施の形態と同じである。詳細について、図５のフローチャートを用いて説明する。
【００４０】
ステップＳ１００〜Ｓ１０１までは、第１の実施の形態と同様な処理を行い、処理２００に移る。処理２００では、スクロールボタンが押された時間を保持する変数を初期化する。下スクロールボタン用の２変数tsDとteDを０にする(tsD = teD = 0)。
【００４１】
上スクロールボタン用の２変数tsUとteUも０にする(tsU = teU = 0)。次にステップＳ１０２に移るがステップＳ１０２〜Ｓ１０３は、第１の実施の形態と同様の処理である。ここで、ステップＳ１０３で最終ページでない場合は、第１の実施の形態では、ステップＳ１０４に移ったが、本実施の形態では、図２のステップＳ１０４の代りにステップＳ２０１〜Ｓ２０４が行われる。ステップＳ１０３で最終ページでない場合は、ステップＳ２０１に移り、teDに現在時刻(単位はミリ秒(ms))を代入する。
【００４２】
この現在時刻は、必ずプラスの値(しかも少なくとも１０００msよりは大きな値)とする。通常、１９７０年１月１日午前０時との差をミリ秒(ms)で得たものである。そして、ステップＳ２０２に移り、teDからtsDを引き算したものが、あらかじめ定められた値（CTとする）以下かどうかを判定する。
teD - tsD ≦ CT。
【００４３】
ここでは、ユーザが下スクロールボタンを押してから次にまた下スクロールボタンを押すまでの時間(teD - tsD)が短い場合に次々と下スクロールをボタンが押されていると判断することを目的としているため、あらかじめ定められた値（CT）は、１秒以下の例えば５００msと定めても良いし、ユーザが次々とページをめくる操作の統計をとって定めても良い。
【００４４】
（TeD - tsD）がCT以下の場合には、ステップＳ２０３に移り、tsDを０にしてから、ステップＳ１０５に移って先読み処理を行う。ステップＳ１０５〜Ｓ１１１は、第１の実施の形態と同様である。ステップＳ１１１を終えた後は、ステップＳ１１２に移る。ステップＳ１１２では第１の実施の形態では、ステップＳ１１３に移っていたが、本実施の形態では、入れ替えたリストの１ページ目を表示した後、ステップＳ１０２に戻る。
【００４５】
ステップＳ２０２において、（TeD - tsD）の値がCTより大きい場合には、ステップＳ２０４に移り、（tsDにteD）を代入して(tsD = teD)、先読みを行わずにステップＳ１０６に移る。それ以降のステップＳ１０６〜Ｓ１１２に関しては、第１の実施の形態と同様である（ステップＳ１１２は、上で述べたようにステップＳ１１３に移らずステップＳ１０２に移る点が第１の実施の形態と少し違う）。
【００４６】
最初の場面を考えてみると、ステップＳ２００でtsD=0となっていて、ステップＳ２０１でteDが現在時刻（例えば1103692777281 ms）になるため、ステップＳ２０２でCTを５００msとすると、teD-tsD = 1103692777281 - 0 = 1103692777281 msとなり、
1103692777281 ＞ 500、
とCTよりも大きな値になるためステップＳ２０４に移りtsDに1103692777281が代入されることになる。次にユーザがすばやく下スクロールを再度押したとすると、ステップＳ２０１でteDが現在時刻（例えば一つ前の押下から３００ms後であるとすると1103692777581 ms）になるため、ステップＳ２０２でCTを５００msとすると、teD-tsD = 1103692777581 - 1103692777281 = 300 msとなり、
300 ＜ 500、
とCTよりも小さい値になるためステップＳ２０３、Ｓ１０５〜Ｓ１１２の先読み処理を行うことになる。
【００４７】
ステップＳ１０２において、下スクロールボタンが押されていない場合は、ステップＳ１１６に移る。ステップＳ１１６、Ｓ１１７は第１の実施の形態と同様の処理を行い、ステップＳ１１７で１ページ目ではない場合は第１の実施の形態では、ステップＳ１１８に移ったが、本実施の形態では、図２のステップＳ１１８の代りにステップＳ２０５〜Ｓ２０８が行われる。ステップＳ２０５に移り、ステップＳ２０５では、teUに現在時刻(単位はミリ秒(ms))を代入する。
【００４８】
ステップＳ２０６に移り、teUからtsUを引き算したものが、あらかじめ定められた値（CTとする）より小さいかどうかを判定する。
teU - tsU ≦ CT。
【００４９】
ここでは、ユーザが上スクロールボタンを押してから次にまた上スクロールボタンを押すまでの時間(teU - tsU)が短い場合に次々と上スクロールをボタンが押されていると判断することを目的としている。（TeU - tsU）がCT以下の場合には、ステップＳ２０７に移り、tsUを０にしてから、ステップＳ１１９に移って先読み処理を行う。
【００５０】
ステップＳ１１９〜Ｓ１２５は、第１の実施の形態と同様である。ステップＳ１２５が終了するとステップＳ１２６に移って、その後、第１の実施の形態では、ステップＳ１２７に移っていたが、本実施の形態では、入れ替えたリストの最後のページを表示した後、ステップＳ１０２に戻る。
【００５１】
ステップＳ２０６において、TeU - tsUの値がCTより大きい場合には、ステップＳ２０８に移り、tsUにteUを代入して(tsU = teU)、先読みを行わずにステップＳ１２０に移る。それ以降のステップＳ１２０〜Ｓ１２６に関しては、第１の実施の形態と同様である(ステップＳ１２６は、上で述べたようにステップＳ１２７に移らずステップＳ１０２に移る点が第１の実施の形態と少し違う)。
【００５２】
本実施の形態では、図３のステップＳ２０２やステップＳ２０６でスクロールボタンが押されてから次に押されるまでの時間一回のみで、ユーザが次々にスクロールボタンを押していると判断しているが、何回か次に押されるまでの時間を連続に調べて、それらがすべてCTの値以下であれば次々に押されていると判断することで、より正確に次々に押していると判定できる。
【００５３】
このように、本実施の形態では、リストなどの項目表示部品において、大量の項目を表示する際に、メモリが少ないシステムにおいても、ユーザがすばやくスクロールボタンを押していて、どんどんページをスクロールしていることを検知して、これをトリガーとしてスクロールを行っている方向の次のデータを先読みすることにより、スムーズなスクロールを可能とする。
【００５４】
（第３の実施の形態）
本実施の形態によって、ユーザは大量の項目から選択する項目を探す場合に、スクロールボタンの長押しを行って、連続スクロールを行い、あるページにたどりついた後は、詳細にゆっくりと前後のページを移動して項目を探すことが多いため、この際のスクロール表示の向上がはかれる。
【００５５】
詳細について、図６のフローチャートを用いて説明する。
まず、ステップＳ３００で、連続スクロールを行って止まったかを判定する。連続スクロール中や通常のスクロール中であった場合は処理を終える。連続スクロールを行って止まった時点であった場合はステップＳ３０１に移る。ステップＳ３０１で、連続スクロールを行って止まったページ数Pを得る。ステップＳ３０２に移り、あらかじめ定められた読み込みページ量をCPとして、ステップＳ３０３に移り、変数AにCPの半分の値CP/2を代入する（A= CP/2で、小数点以下は切り捨てする）。
【００５６】
ステップＳ３０４に移り、止まったページ数Pから変数Aを引いたもの（P-A）が１以下の場合（P-A ≦ 1）には、ステップＳ３０５へ移り、大きい場合にはステップＳ３０６に移る。ステップＳ３０５では、変数Bに最低ページ数である１を代入してステップＳ３０７に移る。
【００５７】
ステップＳ３０６では、変数Bに（P-A）を代入してステップＳ３０７に移る。ステップＳ３０７では、最大ページ数MPを得る。ステップＳ３０８に移り、止まったページ数Pに変数Aを足したもの（P＋A）が最大ページ数MP以下の場合（P+A ≦ MP）はステップＳ３０９へ移り、大きい場合にはステップＳ３１０に移る。
【００５８】
ステップＳ３０９では、変数Cに（P+A-1）を代入してステップＳ３１１に移る。ステップＳ３１０では、（P+A）が最大ページを越えてしまった場合に最大ページにおさえるという意味で変数CにMPを代入してステップＳ３１１に移る。そして、ステップＳ３１１でBページからCページまでをロードして、ステップＳ３１２に移る。ステップＳ３１２では、リストにPページ目を表示して処理を終える。
【００５９】
今、１ページ２項目表示されるリストがあったとして、上のあらかじめ定められた読み込みページ量CPを１０ページとすると、変数A=CP/2は、５ページとなる。
【００６０】
図７に示すように、４０項目の最大２０ページ(MP=20)まであるリストで、連続スクロールを行い止まったページPが７ページであったと場合に本実施の形態を適用すると、変数Bは、P-A = 7-5 = 2ページ が１より大きいため、B = P-A = 7-5 = 2ページ(図６のステップＳ３０６適用)で、変数Cは、P+A-1 = 7+5-1 = 11ページ がMP=20ページ以下であるため、C = P+A-1 = 7+5-１ = 11ページ(図６のステップＳ３０９適用)となるため、２ページから１１ページをロードして(図６のステップＳ３１１適用)、７ページを表示する(図６のステップＳ３１２)。
【００６１】
図７の灰色で示した部分が読み込まれた項目である。ここで、ユーザが連続スクロールでちょっと行き過ぎてしまったと感じ、上スクロールを行い戻っても、６〜２ページまではすでにロードされているため即座に表示することが可能である。
【００６２】
逆にユーザが連続スクロールを止めたが、まだ所望の場所に来ていなかったと感じ、下スクロールを行い微調整しても、７〜１１ページまではすでにロードされているためやはり即座に表示することが可能である。
【００６３】
同様に、１ページ２項目表示されるリストがあったとして、上のあらかじめ定められた読み込みページ量CPを１０ページとすると、変数A=CP/2は、５ページとなる。図８に示すように、４０項目の最大２０ページ(MP=20)まであるリストで、連続スクロールを行い止まったページPが４ページであった場合に、本実施の形態を適用すると、変数Bは、P-A = 4-5 = -1ページ が１より小さいため、B = 1ページ(図６のステップＳ３０５適用)で、変数Cは、P+A-1 = 4+5-1 = 8ページ がMP=20ページ以下であるため、C = P+A-1 = 4+5-1 = 8ページ(図６のステップＳ３０９適用)となるため、１ページから８ページをロードして(図６のステップＳ３１１適用)、４ページを表示する(図６のステップＳ３１２)。図８の灰色で示した部分が読み込まれた項目である。
【００６４】
この場合は、CPが１０ページであるため、バッファ的には、CP-C = 10-8 = 2ページ分余っているため、変数Bが１の場合は、CP-Cが0より大きい場合は、C=CPとしてもよい。さらに同様に、１ページ２項目表示されるリストがあったとして、上のあらかじめ定められた読み込みページ量CPを１０ページとすると、変数A=CP/2は、５ページとなる。
【００６５】
図９に示すように、４０項目の最大２０ページ(MP=20)まであるリストで、連続スクロールを行い止まったページPが１７ページであった場合に本実施の形態を適用すると、変数Bは、P-A = 17-5 = 12ページ が１より大きいため、B = P-A = 17-5 = 12ページ(図６のステップＳ３０６適用)で、変数Cは、P+A-1 = 17+5-1 = 21ページ がMP=20ページより大きいため、C = MP = 20ページ(図６のステップＳ３１０適用)となるため、１２ページから２０ページをロードして(図６のステップＳ３１１適用)、１７ページを表示する(図６のステップＳ３１２)。
【００６６】
図８の灰色で示した部分が読み込まれた項目である。この場合は、CPが１０ページであるため、バッファ的には、CP - (C - B +1) = 10 - (20-12 +1) = 1ページ分余っているため、変数CがMPの場合は、BがMP-CPより大きい場合は、B=MP-CP+1としてもよい。
この実施例によって、ユーザが大量の項目から選択する項目を探そうとスクロールボタンの長押しを行って、連続スクロールを行い、連続スクロールが止まった時点で、そのページが表示される際に、止まったページの前後のある分（上の例では、前後CP/2ページ分）のページが同時にロードされているため、詳細にゆっくりと前後のページを移動して項目を探す時に即座にページが表示されて快適な項目閲覧が可能になる。
【００６７】
第１〜３の実施の形態において、上下スクロールボタンのことについて述べたが左右スクロールボタンに置き換えても本発明は適応できる。またスクロールバーを用いた場合は、スクロールバーのつまみをマウスでドラッグすることを連続スクロールとすれば本発明を適応できる。
【００６８】
また、表示されている項目数を１ページ分として、スクロールボタンが押される度に１ページ分スクロールを行う場合を想定して第１〜３の実施の形態が書かれているが、スクロールボタンが押される度に１項目ずつスクロールするリストも存在する。この場合は、１項目を１ページとする判断で第１〜３の実施の形態を考えれば本発明が適応できる。
【００６９】
また、本実施の形態では項目選択一覧部品にスクロールバーやスクロールボタンがある場合に全て適応でき、第１〜３の実施の形態では、リスト部品を例としてあげているが、リストに限定されるものではなく、図１０に示すような、Choiceと呼ばれるプルダウン形式で項目が選択できる部品にも大量の項目が追加された場合は、スクロールボタンがつくため、本発明を適応できる（図１０では、Choiceが選択されてプルダウンしている様子をあらわしている）。この他のChoiceのプルダウンする部分のみの部品であるポップアップメニューでも同様に本発明を適応することが可能である。
【００７０】
（本発明に係る他の実施の形態）
前述した本発明の実施の形態におけるデータ先読み装置及びデータ処理装置を構成する各手段、並びにデータ先読み方法及びデータ処理方法の各ステップは、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【００７１】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施の形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００７２】
なお、本発明は、前述した実施の形態の機能を実現するソフトウェアのプログラム（実施の形態では図２、図５、図６に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接、あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００７３】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００７４】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００７５】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）などがある。
【００７６】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００７７】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００７８】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００７９】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施の形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施の形態の機能が実現され得る。
【００８０】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施の形態の機能が実現される。
【図面の簡単な説明】
【００８１】
【図１】第１の実施の形態におけるブロック構成図である。
【図２】第１の実施の形態におけるスクロール中のフローチャートである。
【図３】第１の実施の形態における実際のＧＵＩ部品例を示す図である。
【図４】従来の問題点であるロード中を表示する図である。
【図５】第２の実施の形態におけるスクロール中のフローチャートである。
【図６】第３の実施の形態におけるスクロール中のフローチャートである。
【図７】第３の実施の形態における表示例を説明する図である。
【図８】第３の実施の形態における表示例を説明する図である。
【図９】第３の実施の形態における表示例を説明する図である。
【図１０】第１〜第３の実施の形態のまとめのChoiceの図である。
【符号の説明】
【００８２】
１  記憶部
２  演算部
３  表示部
４  入力部
５  外部記憶部
６  ネットワーク部
１０  データ部
１１  プログラム部
２０  ロード制御部
２１  データ取得部
２２  連続スクロール判定部
２３  スクロール制御部
２４  表示制御部
１０１  表示用データ保持部
１０２  先読み用データ保持部
【図１】
2006343846.tif 000003
【図２】
2006343846.tif 000004
【図３】
2006343846.tif 000005
【図４】
2006343846.tif 000006
【図５】
2006343846.tif 000007
【図６】
2006343846.tif 000008
【図７】
2006343846.tif 000009
【図８】
2006343846.tif 000010
【図９】
2006343846.tif 000011
【図１０】
2006343846.tif 000012