0

document.ready にモーダル div をロードする vb.net aspx ページがあります。

次に、基本的に日付/時刻を返すaspxページへのajax呼び出しを行う関数があります。

ajax 呼び出しは、モーダル div レイヤーの div を日付と時刻で更新します。

上記のすべては、ページが最初に読み込まれるときに機能します。

しかし、5秒ごとにその機能を実行したいのですが、一度しか実行しません。

要約すると...-ページの読み込み-document.readyはモーダルdivを表示します(これは機能します)-次にsetIntervalを使用して、date.timeを返すページにajax関数を呼び出します(これは1回機能します)

  • 次に、モーダル div が表示されている間、ページ上で setInterval を使用して上記の行を継続的に実行します (これは機能しません)。

私がコードを与えずに(私のコードは今のところがらくただと仮定してください)笑これはできますか?

基本的には、ajax 関数を呼び出して 5 秒ごとに divs innetText を更新する日付/時刻をページに表示するだけです。

次に、それを機能させることができれば、それを拡張します:)

繰り返しますが、どんな助けも大歓迎です:)

乾杯

更新 04-11-2013 10:04

setInterval 呼び出しをドキュメントの準備完了ブロックに入れようとしました-実際に複数回呼び出すかどうかを確認するために呼び出す関数にアラートを追加しましたが、そうではありません-まだ1回だけです。

これがコードです。

だから私が持っているスクリプトタグの先頭に

<script language="javascript" type="text/javascript">
    $(document).ready(function () {
        showPayWait();
        setInterval(processPayment(), 5000);
    });        

    /* Function to Process Payment via AJAX calls so we can update the modal div */
    function processPayment() {

        // show modal div first
        var OrderIDResponse = "";
        var lngOrderID = "";
        UpdateMessage('Assigning an OrderID');

        // Get Ajax Response into variable.
        OrderIDResponse = getOrderID();

        // Parse it to the actual text we need i.e. the orderid
        lngOrderID = OrderIDResponse['responseText'];

        if (!lngOrderID == "") {
            UpdateMessage("OrderID Assigned: " + lngOrderID);

        }
        else {
            UpdateMessage('Unable to assign an OrderID ' + lngOrderID);
        }


    }

    // -- Generic function to update the divInfo Element
    function UpdateMessage(msg) {
        document.getElementById("divInfo").innerText = msg;
    }
</script>

このコードがあるページはマスターページのコンテンツページであることを指摘しておく必要があると思いました

マスター ページには、最新の jQuery インクルードへのリンクのみが含まれています。

返信ありがとうございます。いつものように、どんな助けも大いに受け取られます。

乾杯

4

3 に答える 3

0

次のようにします。

function update() {
   //update logic belongs here

   setTimeout(update, 5000 /*5secs*/);
}

setTimeout(update, 5000 /*5secs*/);

またはこのように:

function update() {
   //update logic belongs here
}

setInterval(update, 5000 /*5secs*/);
于 2013-10-31T17:43:02.803 に答える
0

setInterval次のように、ドキュメント準備機能内で使用する必要があります。

$(document).ready(function() {
    setInterval(doAjax, 5000);
});

function doAjax() {
    // Call server-side resource here via AJAX
}

注: 他の何かで 5 秒間隔をトリガーしたい場合は、setInterval(doAjax, 5000);任意のセレクターまたはクリック イベント ハンドラー内に呼び出しを配置し​​ます。もちろん、jQuery を使用する必要もありませんが、これが私が思いつく最も簡単な例です。

于 2013-10-31T17:44:20.920 に答える
0

あなたの返信と別のスレッドからの回答の組み合わせで動作するようになりました。

関数参照だけでなく、 setInterval WITH 括弧 () から関数を呼び出していました。

また、ドキュメントの準備ができている=結果と組み合わせて!!!!

私が別のスレッドから参照している答えは、JS setInterval が一度だけ実行されることです

于 2013-11-04T11:15:34.633 に答える