変数ALARM_POPUP
は、変数の内容を置き換えるシェルスクリプトを介して毎分変更されます。
つまり、ページでその変更を確認するには、サーバーを呼び出して更新された値を取得する必要があります。あなたはそれをしていません。
あなたは経由でそれを行うことができますajax
。の新しい値をALARM_POPUP
生のテキスト(を使用Content-Type: text/plain
)またはJSON(を使用)として出力するサーバー側ページを作成し、そのページのコンテンツを取得するための呼び出しをContent-Type: application/json
トリガーしてから、それで更新します。通話にかかる時間が不確定であると、物事はすぐに混乱してしまうため、これは望ましくありません。代わりに、前のサイクルの完了時に開始するだけです。ajax
qtip
setInterval
ajax
setTimeout
現在の値をプレーンテキストとして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
に文字列を渡さないことをお勧めします。それは基本的にを行っていることであり、それは必要でも良い考えでもありません。代わりに、上記のように、関数参照(たとえば、関数の名前を呼び出さずに)を渡します。setInterval
setTimeout
eval
()
以下のコメントを再確認してください。
私はこれに問題があり、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;
?>