FCafe  いっそシーケンシャルに

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

 「特殊カテゴリ」 となってしまった前記事ですが、掲載したソースは(サンプルが動いた方には)ちゃんと機能します。  「(用意された)全ての画像を表示するまで同じ画像は使わない」 ・・というのが最終目的であるならば確かに、 「乱数によるバラエティ表示」 は此処に極まった、と言えるかも知れません。
・・・では 何故ボツ(?)になったのか。  記事では省略されているその後の「社長」のツッコミを思い浮かべる事ができる方には申し上げるまでも無い事でしょうが、「もっと簡単な別の方法」 があるからです。

  そもそも、複数画像を差し替えて表示するのに何故乱数を用いるかというと「毎回異なるファイル名」を使いたいからです。 そしてそれは「前に表示された画像が分からない」からであった(前に表示された画像ファイル名を知ることが可能なら それと異なる画像を定めるのは乱数を用いなくても可能)訳です。  乱数自体は毎回異なっていても、整数化を行う過程で確率の性質上”前と同名”となってしまう可能性は常に存在する訳で、それを回避する為にクッキーを用いて「前回使用したファイル」を知るようにした訳ですが、この”対策法”自体が矛盾を孕んでいるとも言えるかもしれません。
 それを突き詰めようとして前記事のような方式を採ると、全ての画像が表示されるまでは良いのですが、一度全画像が表示されてしまうと、以後の画像表示順が定まってしまいます(表示されてから一番時間が経っている画像が選ばれる)。  表示すべき画像は分かっているのに、それに適合する数が出るまで乱数を作って吟味しなければなりません。 これはCPUパワーの無駄遣いであるのみならずレスポンスを低下させる元凶となりかねません。
何か良い方法はないものでしょうか?

・・・という訳で別法を考えてみました。


SAMPLE


【 設定法 】  HTMLのhead領域に以下のスクリプトを書きます。

<script type="text/javascript"><!--
function getC(k){
 if (document.cookie.length!=0){ var C=document.cookie.split(";");
  for(i=0;i<C.length;i++){ var p=C[i].split("=");
   if(p[0]==k) return p[1];
  } } return 0;
}
function setC(k,t){ document.cookie=k+"="+t+";"}
function seqPic(X,N,G,S){
 var n=eval(getC(X))+1;  if(n>N){n=1}
 var F ="url(<%url>/file/"+ X + n+"."+G+") "+S;
 document.getElementById(X).style.background=F;
 setC(X,n);
} 
// --></script>

背景画像をランダム表示させる領域にIDを振りデフォルトのCSSを指定する事、  背景画像のネーミング法や 表示領域の後に書くスクリプトの記述要領は 前記事と変わりません。

<script type="text/javascript">seqPic("ID名",枚数,"type","style")</script>
 
 

【 解 説 】   「途中で重複する事無く全画像を一度ずつ見せたい」 のであれば、別に乱数で作ったファイル名を吟味せずとも 用意された画像を順番に表示すれば良い、と考える事もできます。  その為には前回表示されたのはどの画像だったのかを知る事ができなければなりませんが、此処まで述べて来たようにそれはcookie等を用いる事により可能な訳です。
 前回まで述べた乱数を用いる方法では 画像ファイル名は ”[エリアID名]+連番”というものでしたが、その性質を利用して前回表示された画像名の番号部分をインクリメントして新たに表示する画像ファイル名を指定するようにしたのが、上にお示ししたサンプルです。
乱数を用いたものよりシンプルなソースになっているのがお分かりでしょうか。
( 全画像を表示したら最初の画像に戻ります )

 ・・・勿論、前記事で述べた方法も「使い物にならない」という事は全くありません。
例えば、用意された画像が 数十枚レベルで存在するような場合ですと、前記事の方法は最もバラエティ性に富む有効な方法と成り得ます  ( この記事の方法では順番の若い定まった画像群だけしか見て貰えません )。
しかし、サンプルのように数枚レベルの画像を切り替えるのであれば、当記事のような方法でも十分であるかもしれません。  また、「あの画像をもう一度」 と再表示を試みる閲覧者などにとってはこちらの方法にメリットがあると考える事も可能でしょう。 ( 結局、重要なのはスクリプトの仕様よりも表示する画像の内容であるのかもしれません )

Comment


.  
HN Title URL PW secret

TrackBack http://pcafe.blog3.fc2.com/tb.php/467-3b82bcc0

Shown after Admisson
.

≫ そしてハイブリッドへ ランダム最終形態 ≪

2007 / 05 / 13  Sun
Operation   
Comment 0 / TB 0 / Edit
Designed by Daniel Corporation . all rights renounced
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。