1

基本的に、この特定のレコードをテーブルに挿入するのに最大1分かかる場合があるため、ロード時に特定のレコードIDのOracle SQLテーブルを読み取るページがあります。

これに基づいて、レコードが存在するのを待っている間に「読み込み中の画像」を表示する手段が必要なので、待つ必要があります。それが完了したら、読み込み中の画像を削除し、ユーザーにレコードの詳細を提示したいと思います。これには Oracle Application Express 4.2 を使用しています。

私の質問は、画像の読み込み/非表示ではなく、ページの読み込み中に Oracle テーブル内のレコードを継続的にチェックする方法です。

レコードを正常に受信してから画像を非表示にするか、1 分後にレコードのチェックを閉じて、レコードが見つからなかったことを示すメッセージをユーザーに表示します。

4

2 に答える 2

1

私の英語でごめんなさい。私はあなたを助けようとします。

  1. 「読み込み中の画像」が常にページに表示されるようにします。ロード時に表示する必要はありません。適切なタイミングで非表示にするだけで済みます。
  2. アプリケーションにアプリケーション プロセスを追加します。たとえば、「GET_MY_ROW」という名前を付けます。プロセスはイベントをチェックし、1 や 0 などのフラグを返す必要があります。

例:

declare
  l_cnt number;
begin
  select count(*)
   into l_cnt
   from table1 t
   where id = 12345;
  if l_cnt > 0 then
    htp.p(1);
  else
    htp.p(0);
  end if;
end;

3.3 ページ読み込みイベントとして JavaScript コードを追加します (たとえば、動的アクションによる):

Javascript コード:

var myInterval = setInteral(function {
    var get = new htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=GET_MY_ROW',$v('pFlowStepId'));
    get.GetAsync(function(pRequest) {
        if (pRequest.readyState == 4) {
            if (pRequest.responseText == 1) {
                alert('Record loaded successfully');
                // add function call, hiding your "Loading image" here
                clearInterval(myInterval);
            }
        };
    });
    get = null;
}, 5000); //check every 5 seconds

setTimeout(function() {
    alert('Sorry, no record was found. Try again later.');
    clearInterval(myInterval);
}, 60000); // fail after 1 minute
于 2013-07-15T07:52:00.360 に答える