SSブログ

Javascript小僧:更新日3と経過時間(2)が表示されない理由 [コンピューター]

前記事
http://cheese999.blog.so-net.ne.jp/2013-07-20-1
Javascript小僧:"時刻"/"更新日"/"ブラウザ名"/"更新日からの経過時間"を切り替えて表示


で紹介したJavascriptで、更新日3と経過時間(2)が表示されない理由が
分かりましたので、ご報告です。。[猫]



更新日3と経過時間(2)が表示されないは、次のコードに原因があります。


           
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
var dd=new Date(xmlhttp.getResponseHeader("Last-Modified"));



これは、XMLHttpRequestという仕組みを使って、ブラウザからサーバにリクエストを
送って、サーバからのレスポンスの中から、最終更新日(Last-Modified)を取り出しています。

しかし、2つの問題があります。。

問題1:ローカルファイルを参照した場合、xmlhttp.status==0となる。
問題2:"Last-Modified"ヘッダは必須ではなく、サーバによっては返送してこない。

問題1については、if文の条件からxmlhttp.status == 200を外せば良いと思います。

しかし、問題2については、ブラウザ側では対処できません。
従い、XMLHttpRequestを使って、最終更新日を得るのは確実な方法では無いといえます。

The Rolling Stones - Mixed Emotions - OFFICIAL PROMO

ヤバイぜ!(7)  コメント(1)  トラックバック(0) 
共通テーマ:日記・雑感

ヤバイぜ! 7

コメント 1

cheese999

nice! ありがとうございます。[__猫]
by cheese999 (2013-07-22 05:45) 

Facebook コメント

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。