Javascript小僧:更新日3と経過時間(2)が表示されない理由 [コンピューター]
前記事
http://cheese999.blog.so-net.ne.jp/2013-07-20-1
Javascript小僧:"時刻"/"更新日"/"ブラウザ名"/"更新日からの経過時間"を切り替えて表示
で紹介したJavascriptで、更新日3と経過時間(2)が表示されない理由が
分かりましたので、ご報告です。。
更新日3と経過時間(2)が表示されないは、次のコードに原因があります。
これは、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
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
nice! ありがとうございます。[__猫]
by cheese999 (2013-07-22 05:45)