Javascriptはデータベースからプッシュ通知を受け取ることができないので、指定した例は正しいです。
しかし、データが変更されたかどうかを知らせるAJAX経由でJavascriptに値を戻して、その結果を示すページの一部をリフレッシュするAJAXリクエストを起動して、サーバーを変更することができます。
いずれにしても、setInterval()
コールで変更をサーバーにポーリングする必要があります。 HTTPストリーミングを有効にする方法はありますが、それはこの質問のレベルを超えています。
EDIT:簡潔にするために、私はjQueryの例を記述します:
var getCurrentDate = function() {
return (new Date()).toUTCString();
};
var lastPing = getCurrentDate();
setInterval(function() {
$.post(
'/service/getNewData',
{ from: lastPing },
function(data) {
// set the timestamp for the next request
lastPing = getCurrentDate();
// assuming the server returns a JSON array of rows
$('body').append('<p>Last inserted ID: ' + data[data.length - 1].ID + '</p>');
// you could run a for loop here for each row in data
for(var i = 0; i < data.length; i++) {
// ....
}
}
);
}, 5000);
をこのコードは/service/getNewData
URLを要求し、要求が送信された最後の時間のUTC文字列を送信します。これにより、サービスは、AJAX呼び出しによって送信されたUTCタイムスタンプよりも長いタイムスタンプを持つ行を見つけることができます。必要なのは、適切なHTTPヘッダーを持つ適切なJSON文字列として行を戻すだけです。すべて設定されています。
json_encode()を参照してください。
を使用することができ、私は似たような考えていたが、私はjavascriptので吸います。 – afro360
また、こちらの回答の1つを受け入れることもできます。 –