new2024-05-20 18:45:55
情報の共有なので、こちらに回答せずともおk|PHPデモ/「チャット:SPA(Single Page Application)」:「AJAX、タイマー、ファイル・ロック」(Ver.32)
レスポンスの遅延を想定して、タイマー処理はsetInterval()では無く、setTimeout()にする、(レスポンスの遅延を想定して)レスポンスが来てからsetTimeout()を設定する。 つまりsetTimeout()を設定する場所はどこでも良いと言う訳では無い。 サーバー・サイドの場合、多数のユーザーが同時にアクセスした場合を考慮する必要があります。 具体的にはサーバー・サイドの場合は、ファイル出力時にファイルをロックしないとデータ破壊される危険性があります。 また ファイルの書き換え(ファイル入力してファイル出力する)は、ファイル入出力を一体としてロックしないとデータ破壊される危険性があります、つまり ファイル入力とファイル出力でファイル・ロックを2つに分けるとファイル・データが破壊される危険性があります。 下記デモでもファイル入力とファイル出力でファイル・ロックは1つだけだと言うことに注意して下さい。 PHPデモ/「チャット:SPA(Single Page Application)」:「AJAX、タイマー、ファイル・ロック」(Ver.32) http://pleiades.vs.land.to/utf8/smt.cgi?r+sara/&bid+00000791&tsn+00000791&bts+2023/11/29%2008%3A59%3A21& |