PHPデモ/「チャット:SPA(Single Page Application)」:「AJAX、タイマー、ファイルのアップ、ファイル・ロック」(Ver.18)
デモなのでイロイロ手抜きをしています。 インターネット上で公開する「フォルダー名、ファイル名」には使ってはダメな文字があります(非常に制限が厳しい)、全角も使ってはダメ。 このデモではインターネット上に関してはencodeURI()で%エスケープしているので、一応インターネット上でも全角文字のファイル名もおkにしてあります。 ただし、このデモではアップロードするファイル名を流用してサーバーに保存しているので、全角に対応してない(UNIX系の)サーバーの場合は、ファイル名に全角が含まれているファイルはアップしないように、ご注意下さい。 対応策としては、オリジナルの全角のファイル名とは無関係の英数字のファイル名に変更するなど。 下記を参照すれば分かる通り、英数字のファイル名に変換するにしても、変な記号とかは使ったらダメと言う事です。 【WEB】URLで使用できる文字の規定 RFC3986 Section2.3 https://ses-blog.net/archives/web/983.html >チルダはユーザディレクトリ、ピリオドはファイルの拡張子で使われるため、実際は以下と考えること。 >・半角大文字アルファベット A~Z >・半角小文字アルファベット a~z >・半角数字 0~9 >・ハイフン – >・アンダースコア _ ザックリと言うと、ブラウザ側に表示されてない差分のデータをサーバー側から持って来ています。 そうすれば効率は良いですが、プログラムとしては、見通しが可成り悪くなってしまうデメリットもありますが(つまり他人が読みずらいと言うこと)。 レスポンスの遅延を想定して、タイマー処理はsetInterval()では無く、setTimeout()にする、(レスポンスの遅延を想定して)レスポンスが来てからsetTimeout()を設定する。 つまりsetTimeout()を設定する場所はどこでも良いと言う訳では無い。 サーバー・サイドの場合、多数のユーザーが同時にアクセスした場合を考慮する必要があります。 具体的にはサーバー・サイドの場合は、ファイル出力時にファイルをロックしないとデータ破壊される危険性があります。 また ファイルの書き換え(ファイル入力してファイル出力する)は、ファイル入出力を一体としてロックしないとデータ破...