サムネイルが表示される順番

ついでなんですが、マイミクから質問があったので、

ニコはてな(Δedition)[ちゅくる~SUGA PICS HTML_nicohatena~]にアクセスしたときに表示されるサムネイルの順番が
「全体的には順番がある」ようで、「よーく見るとアクセスするたびに順番が違う」というのが気になる

らしい。
理由は いたって簡単。
実は、「どのサムネイルがあります」というデータベースを持ってません。
ですから、サムネイルがあるかどうかを 直接確認しているのです。

全体的には「新しく作成された順」になってます。
方法としては mtime()を使っている とだけ言えば分かるでしょう。

それを $filename[mtime()]という変数名の配列に入れています。
配列の中に入るのは もちろんサムネイルのファイル名です。

これを、mtimeの順にソート。
あとは forで一つずつ出力。というふざけた方法です。
まさに突貫工事。


なんですが、
ランキングページなんて開くと、同時に複数のサムネイルを作成するんですが、
1秒以下の差は認知しないので
たとえば(あり得ないですが)

時間:10000に sm1.jpgとsm2.jpgが作成されたとすると、

filename[10000]=sm1.jpg
と処理した後
filename[10000]=sm2.jpg
と書き直す可能性があるんです・・・。


それを防ぐために 最初は
1.sm1.jpgの更新時間は10000だよ!
2.filename[10000]は空だよ!
3.filename[10000]=sm1.jpg
4.sm2.jpgの更新時間は10000だよ!
5.filename[10000]は既にあるよ!
6.10000に+1するよ
7.filename[10001]は空だよ!
8.filename[10001]=sm1.jpg

としてました。

が、ランキングページで 同時に100件まで作成する可能性があるので
1位のサムネイルは1回目で作成
2位のサムネイルは+1するので2回目で作成
3位のサムネイルは+1+1するので3回目で作成
・・・・
100位のサムネイルは+1+1・・・+1するので100回目で作成

・・・。
1+2+3+・・・・98+99+100回も表示に掛かるのはいかがなモノか


で、考えました。
+1ではなく +1〜60 ぐらいにすれば、少しは減るのではないかと。


ということで、 そのランダムである60の幅が毎回アクセスするたびに違うので、
順番毎回違う と言うことです。