![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e6f04cf)
クライアントからサーバーの生存チェックをするためにXMLHttpRequestを使用してファイルを取得してみましたが、1回目は正常にファイルを取得できましたが、2度目以降はLANケーブルを抜いたにもかかわらず、正常に取得できてしまいます。たぶん、IEのキャッシュにたまった内容を取得するのだと思います。これでは、生存チェックの意味がありません。サーバーが生きているか死んでいるかを定期的にチェックしたいのですが、どうすれば良いでしょうか?ブラウザはIE6を使用しています。サーバーは2台あり、2台の生存チェックが必要です。クライアントコールバックも考えてみましたが、サーバー1台ならできるのですが、2台になるとURLをどの様に指定するのかがわかりませんでした。よろしくお願いします。
No.2ベストアンサー
- 回答日時:
毎回URLを変えればというのは、
1回目
xmlhttp.open("GET","URL1?date=1",true);
2回目
xmlhttp.open("GET","URL1?date=2",true);
3回目
xmlhttp.open("GET","URL1?date=3",true);
・
・
・
ということで、同じアドレスは二度と利用しないようにするということです。
このようにすれば、キャッシュに残っているわけはありませんから。
サーバー側はクエリストリングを無視してかまわないですし。
欲を言えばクエリストリングには日時を入れたほうが安全ポイです。
サーバ側の状況がわかるともう少し具体的に説明できるのですが。。。
この回答への補足
ありがとうございました。できました。ほんと助かりました。
XMLHttpRequest関連の関数を使用するのが始めてでしたので、さっぱりわかりませんでした。「サーバ側の状況がわかるともう少し具体的に説明できるのですが」ということですが、どういったことを説明すればよろしいでしょうか?もっと理解を深めたいと思いますので、この関連の関数を説明している、ホームページなどご教授くだされば幸いです。
ほんとにありがとうございました。
No.3
- 回答日時:
> サーバーの生存チェックをするためにXMLHttpRequestを使用してファイルを取得
Webサービス(デーモン)が動いているか確認するのに、通常はファイルを取得する
必要はありません。
GETリクエストではなく、HEADリクエストで次のようにします。
oXMLHttp.open("HEAD", sURL, false or true);
ファイルを取得(ダウンロード)しないので、高速であり、サーバー、クライアント
にとっても負荷が少ないのが利点です。また、ブラウザのキャッシュを気にする必要
はありません。
HEADリクエストについては次のページを参照してください。
http://www.studyinghttp.net/method#HEAD
また、サーバーの生存確認ではなく、ファイルの中身を取得する必要があるケースに
おいて、ブラウザのキャッシュを無視し、毎回ファイルを取得するには次のようにします。
oXMLHttp.open("GET", sURL, false or true);
oXMLHttp.setRequestHeader("If-Modified-Since", "Sat, 29 Oct 1994 19:43:31 GMT");
XMLHttpRequest キャッシュ - Google 検索
http://www.google.co.jp/search?q=XMLHttpRequest+ …
■参考情報
- Studying HTTP >> HTTPについて理解するのにとても役立ちます。
http://www.studyinghttp.net/
- ieHTTPHeaders >> HTTPのリクエスト、レスポンスヘッダを表示するIE用ツール
http://www.blunck.se/iehttpheaders/iehttpheaders …
- IXMLHTTPRequest Members
http://msdn.microsoft.com/library/en-us/xmlsdk/h …
- XMLHttpRequest Object IE7
http://msdn.microsoft.com/workshop/author/dhtml/ …
No.1
- 回答日時:
キャッシュが働かないように毎回URL変えればいいのでは?
test.cgi?date=20061129115412
のように。。。だめかな?
この回答への補足
xmlhttp.open("GET","URL1",true);
xmlhttp.send(null);
を実行してから、ちょっと時間を置いて
xmlhttp.open("GET","URL2",true);
xmlhttp.send(null);
を実行しています。このようにURL1,URL2を交互に実行してもキャッシュされているデータが返ってきます。URL1もURL2も最初の1回だけは通信を行っていますが、2回目以降は通信を行わないで、キャッシュのデータが返ってきてしまいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ネットワーク syslog保存サーバーに蓄積するログファイル容量について 3 2023/01/09 20:13
- WordPress(ワードプレス) 投稿した文書の編集ができません。 1 2022/04/23 23:15
- UNIX・Linux Linuxサーバーのパーティション・ディレクトリの推奨見積もりについて 3 2023/01/17 00:46
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- オンラインゲーム MinecraftのJava版でマルチで遊ぶことになりまして友人がサーバーの管理者となりました。 し 1 2022/06/27 14:18
- UNIX・Linux OpenSSHのサーバー設定ファイルsshd_config内のHostKey行について 4 2023/05/02 09:53
- サーバー Webサイト構築フリーランスの案件受注について 1 2022/03/27 18:16
- UNIX・Linux いつの間にか自宅サーバーが見れなくなっていた時のトラブルシューティング手順をご教示ください 4 2023/02/15 21:01
- その他(社会・学校・職場) 業務内容についてどう思いますか? 私は客先の仕事を下請けとして行うという仕事をしていますが、(客先の 3 2022/05/04 17:55
- PHP sessioncookieをではなくcookieを使わなければならない理由について… 4 2022/11/07 13:01
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javascriptの効かないサーバー...
-
csvファイルを読み込み、該当項...
-
javascriptでフォルダ内のファ...
-
htmlのfileタグに自動で値を入...
-
Googleマップを社内で共有したい
-
contenteditableで編集した内容...
-
JSPの処理の途中で、JavaScript...
-
VB.NET2003 テキストボックスに...
-
正整数の半角数字かどうか判定する
-
gas 全角数字を半角数字に変換
-
VBAによる第3、4水準文字の判定...
-
jsでルートディレクトリより上...
-
C#でTextBoxに数値のみ入力可能...
-
VBAの[cellsメソッドは失敗しま...
-
PHPとjavascriptで共通なエンコ...
-
VB.NETからWEBブラウザの操作に...
-
計算結果が毎回違う。
-
デザイン時のVisible=Falseは実...
-
PowerPointで時計表示
-
Excel VBA カタカナ セル判定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
csvファイルを読み込み、該当項...
-
JavascriptでのExcel起動について
-
htmlのfileタグに自動で値を入...
-
contenteditableで編集した内容...
-
javascriptでフォルダ内のファ...
-
JSでファイル数取得
-
テキストファイルの更新日時を取得
-
ページを一回だけリロードさせ...
-
JAVAスクリプトで商品コードか...
-
javascriptでエクセルデータ読...
-
InDesign javascript について
-
javascriptの効かないサーバー...
-
Win版IllustratorCS3でJavascri...
-
正規表現でファイル名の抽出
-
ファイルの有無を調べる
-
<input type="file">のイベント...
-
ローカルフォルダにあるPHPファ...
-
HTMLファイルに更新日時を自動...
-
Temporary Internet Filesにあ...
-
ホームページ内の新着情報を簡...
おすすめ情報