jQuery、AJAX、PHP、mySQLを使用して、オークションと同様の機能を開発しています。
Ajaxは毎秒サーバーにアクセスして最新の入札を取得します。この通話中に、サーバーから残りの時間を取得して、すべての参加者の同期を維持します。
私には2つの問題があります:
1)時折、残り時間がちらつき、ほんの一瞬で前の時間の値に戻ります。これは、非同期の結果が同期しなくなったことと関係がありますか?
関連するコードのスニペット:
function dotimer() {
updateScreen();
setTimeout('dotimer()',1000);
}
function updateScreen(){
$.ajax({
type : 'POST',
url : 'getinfo.php',
dataType : 'json',
data: { /* various params are passed to php */ },
success : function(data){
/* other info processed here...*/
$("#countdowntimer").html(data.secondsremaining);
},
error : function(XMLHttpRequest, textStatus, errorThrown) {}
});
}
getinfo.php:
$return['secondsremaining'] = strtotime($end_time)-strtotime("now");
/* get other infor from database... */
echo json_encode($return);
(setTimeoutとsetIntervalはどちらも同じ結果になりました。)
2)毎秒データベースにアクセスするのは過剰ですか?情報が最新であることを確認するための代替手段がわかりません。これを行うためのより良い方法はありますか?オークションは比較的短時間(30分)で行われ、10名を超える参加者は見込まれません。
どんなアドバイス/提案も歓迎します、ありがとう!