私はJavaScriptのグローバル変数(TimeStampと呼ばれる)に定義されていないonload ...という問題があります。少なくとも、それは問題だと思います。JavaScriptの変数スコープ
タイムスタンプを定義することから始めます。
$(document).ready(function(){
// AddTest();
var TimeStamp = null;
waitForMsg();
});
... waitForMsgは、TimeStampを使用して実行され、ajax呼び出しの正常終了時に更新されます。少なくともそれは考えですが、私はそれを前もって定義しましたが、 "TimeStampは定義されていない"ため、現時点では何も実行されません! (笑)。
waitForMsg内でタイムスタンプを再定義すると、成功したajax関数から更新された値を使用する代わりにリセットされます。
function waitForMsg(){
$.ajax({
type: "POST",
url: "backend.php",
async: true,
cache: false,
timeout:50000, /* Timeout in ms */
data: "TimeStamp=" + TimeStamp,
success: function(data){
var json = eval('(' + data + ')');
$('#TextHistory :last-child').after('<p>' + json['msg'] + '</p>');
TimeStamp = json['timestamp'];
setTimeout(
'waitForMsg()', /* Request next message */
1000 /* ..after 1 seconds */
);
},
error: function(XMLHttpRequest, textStatus, errorThrown){
$('#TextHistory :last-child').after('<p>' + errorThrown + '</p>');
setTimeout(
'waitForMsg()', /* Try again after.. */
"15000"); /* milliseconds (15seconds) */
},
});
};
いつもどんな助けでも大歓迎です。
Dan。
Niiii。グローバルは悪です。 – Quentin
必ずしもそうとは限らず、すぐに問題を解決します。 jQueryと$はあなたがjQueryを使うときにはグローバル変数ですが、その悪いのは分かりますか? –
ありがとうございます!!!!!愚かな私はそれを置くことがそれをグローバルとして宣言したと思った。 –