1

目的:以下の関数を5秒ごとに呼び出すように設定したいと思います。qtipを使用します。

変数ALARM_POPUPは、変数の内容を置き換えるシェルスクリプトを介して毎分変更されます。

コード:

    function popupTXT()

         {

              var ALARM_POPUP="Alarm Warning warning ";

              $('#telecom_1').qtip({content:ALARM_POPUP,style: {name: 'dark', tip: 'topLeft'} });

        };

私はタイマーを呼び出すために以下を使用しています。

    setInterval("popupTXT()",5000);

結果:これは、ブラウザを更新した場合にのみ機能します。任意の提案をいただければ幸いです

4

2 に答える 2

5

これを試して:

setInterval(popupTXT,5000);

単なるサンプル

.setInterval()についてもっと読む

于 2012-06-15T08:21:08.183 に答える
5

変数ALARM_POPUPは、変数の内容を置き換えるシェルスクリプトを介して毎分変更されます。

つまり、ページでその変更を確認するには、サーバーを呼び出して更新された値を取得する必要があります。あなたはそれをしていません。

あなたは経由でそれを行うことができますajax。の新しい値をALARM_POPUP生のテキスト(を使用Content-Type: text/plain)またはJSON(を使用)として出力するサーバー側ページを作成し、そのページのコンテンツを取得するための呼び出しをContent-Type: application/jsonトリガーしてから、それで更新します。通話にかかる時間が不確定であると、物事はすぐに混乱してしまうため、これは望ましくありません。代わりに、前のサイクルの完了時に開始するだけです。ajaxqtipsetIntervalajaxsetTimeout

現在の値をプレーンテキストとしてupdatealarm.xyz出力するページ(PHP、JSP、ASP.Netなど)を作成するとすると、次のようになります。ALARM_POPUP

(function()
{
    var ALARM_POPUP="Alarm Warning warning ";

    function updateQtip(popupText)
    {
        $('#telecom_1').qtip({content:popupText,style: {name: 'dark', tip: 'topLeft'} });
        setTimeout(nextUpdate, 5000);
    }

    function nextUpdate()
    {
        $.ajax({
            url: "updatealarm.xyz",
            success: function(data)
            {
                ALARM_POPUP = data; // Although you don't actually need to update it
                updateQtip(data);
            },
            error: function()
            {
                // Do error handling
            }
        });
    }

    updateQtip();

})();

元の呼び出しについて:またはsetIntervalに文字列を渡さないことをお勧めします。それは基本的にを行っていることであり、それは必要でも良い考えでもありません。代わりに、上記のように、関数参照(たとえば、関数の名前を呼び出さずに)を渡します。setIntervalsetTimeouteval()


以下のコメントを再確認してください。

私はこれに問題があり、phpファイルがどのように見えるかの例を提供してくれるかどうか疑問に思いました

私はほんの少しのPHPを実行しましたが、次のようになると思います。

<?php
    header('Content-Type: text/plain');
    echo 'This is the message that will end up in \'data\' in the ajax success handler.';
?>

sedまたは、スクリプトを簡単にするために変数を使用する場合は、次のようにします。

<?php
    header('Content-Type: text/plain');
    $alarm_popup = 'This is the message that will end up in \'data\' in the ajax success handler.';
    echo $alarm_popup;
?>
于 2012-06-15T08:41:22.643 に答える