dポイントプレゼントキャンペーン実施中!

現在、複数のA.aspがいくつか立ち上がっています。
A.aspでは、3分毎に自動更新を行うようにしているのですが、
全てのA.aspで自動更新がかかってしまい、負荷が大きくなってしまいます。
そこで、アクティブになっている画面のみ自動更新を行いたいのです。
onforcusやonblurなどを使用してみましたが、どうしてもうまくいきません。

よろしくお願いいたしますm(_ _)m

A 回答 (3件)

wolfwoodです。



>背面の画面をアクティブにした瞬間に
>一度更新したいのですが・・

うーん、javascriptだけだとリロード時に値が受け渡せない(保持できない)のでフラグなどで処理分けができないのです。つまり、onFousの場合に実行できるリロード処理は一つだけとなります。(リロードするとまた最初からの処理になるためです)
ASPで値(フラグ)を持たせて、アクティブ時にフラグを立てて、切り替わった時にフラグ判定してリロードするといった方法ぐらいしか思いつきません。
javascriptで値を保持するのにもCOOKIEやGET送信からURLを解析して値を得る方法などがありますが面倒です。
イベントハンドラでもっと細かい設定ができれば良いのですが・・・。
    • good
    • 0
この回答へのお礼

何度もご回答ありがとうございます!!
やはりそうですよね・・・。

しかし、背面の画面を更新できないだけでも十分な効果がでそうです。
本当にありがとうございましたm(_ _)m

お礼日時:2002/07/12 10:21

#1のwolfwoodです。


確かに下に書いた方法だと、アクティブでなくなった場合でもタイムアウトまでの時間が残っていた場合読み込まれてしまいます。
この場合、アクティブでなくなった時にsetTimeoutの設定をクリアすればよいと思います。同じくIE5.5で確認済です。

例)

<HTML>
<HEAD>
<SCRIPT>
function aaa(ss){
if(ss==1){
id = setTimeout("location.reload()", 180000);
}else if(ss==2){
clearTimeout(id);
}
}
</SCRIPT>
</HEAD>
<BODY onFocus="aaa(1)" onBlur="aaa(2)">

</BODY>
</HTML>

この回答への補足

ありがとうございます!
できました。

書き忘れていたのですが、
背面の画面をアクティブにした瞬間に
一度更新したいのですが・・・

もしよろしかったら、よろしくお願いしますm(_ _)m

補足日時:2002/07/11 16:45
    • good
    • 0

BODYタグでonFocusイベントハンドラを用いれば可能だと思います。


IE5.5で確認済です。
(onforcusではなくonFocusです。)

例)

<HTML>
<HEAD>
<SCRIPT>
function aaa(){
id = setTimeout("location.reload()", 180000);
}
</SCRIPT>
</HEAD>
<BODY onFocus="aaa()">

</BODY>
</HTML>

この回答への補足

つづりを書き間違えてしまいました(^。^;

最初私もこれでやってみたのですが、
これだと、背面にいった場合にも自動更新がかかってしまいました。
背面にいった場合には自動更新をしたくないのですが・・・

補足日時:2002/07/11 13:19
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!