箱根駅伝公式サイトの手抜き!?JavaScriptを解説する
箱根駅伝公式サイトの手抜き!?JavaScriptを解説する:
今年も、箱根駅伝盛り上がりましたね!
ふと、箱根駅伝の公式ウェブサイトを見ると、
・・・!?!
第95回大会まであと363日
という表記になっていました。
これは、手抜きJavascriptの可能性があります。
エンジニアの端くれとして、これを詳しく調べたい!と思ったので、解説していきます。
view-source:http://www.hakone-ekiden.jp/
まずは、ソースを見てみましょう。上のアドレスをURLバーに貼り付けて見てください。または、箱根駅伝の公式ウェブサイトを開いて、右クリックからページのソースを表示など。
すると。。。24行目付近に
早速ありました。count_downという関数を実行しています。明らかにそれっぽそうです。次は、このcount_downが定義されている場所を探っていきます。
ありました。15行目ですね。
base.jsというそれっぽいファイルが読み込まれています。ファイル名をクリックするとひらけます。
ありましたね・・・なんと、シンプルな構造でしょうか
ざっと読み解くと、あの日付の表示は、3パターンにあったようですね。
・箱根駅伝の性質上、毎年繰り返し使えるプログラムである
・しかし、駅伝終了後は、他の画像要素(第95回)などを差し替えないと、整合性がとれない
最初、手抜きか!?と思ったのですが、次大会に向けた刷新を行うまでは、整合性が取れなくても仕方ないよね・・・と割り切った実装になっているような気もします。
皆さんはどう思いますか?許せますか?許せませんか?
今年も、箱根駅伝盛り上がりましたね!
ふと、箱根駅伝の公式ウェブサイトを見ると、
・・・!?!
第95回大会まであと363日
という表記になっていました。
これは、手抜きJavascriptの可能性があります。
エンジニアの端くれとして、これを詳しく調べたい!と思ったので、解説していきます。
ソースを見て見る
view-source:http://www.hakone-ekiden.jp/まずは、ソースを見てみましょう。上のアドレスをURLバーに貼り付けて見てください。または、箱根駅伝の公式ウェブサイトを開いて、右クリックからページのソースを表示など。
すると。。。24行目付近に
早速ありました。count_downという関数を実行しています。明らかにそれっぽそうです。次は、このcount_downが定義されている場所を探っていきます。
Javascriptを探る
ありました。15行目ですね。base.jsというそれっぽいファイルが読み込まれています。ファイル名をクリックするとひらけます。
count_down発見
ありましたね・・・なんと、シンプルな構造でしょうかfunction count_down() { var now = new Date(); var nowyear = now.getFullYear(); var nowMonth = now.getMonth()+1; var nowDate = now.getDate(); if((nowMonth == 1) && ((nowDate == 2) || (nowDate == 3))) { document.write('<span class="now">箱根駅伝<br />開催中!!</span>'); }else if((nowMonth == 1) && (nowDate == 1) ) { document.write('<span class="counter">'); document.write(1); document.write('</span>'); }else{ var point = new Date(nowyear+1,1-1,2); var countdown = Math.ceil( ( point.getTime() - now.getTime() ) / (1000*60*60*24) ); document.write('<span class="counter">'); document.write(countdown); document.write('</span>'); } }
- 1月2日または3日の場合、「箱根駅伝開催中!」と表示する
- 1月1日は、「1(日)」と表示する
- それ以外は、現在時刻と1月2日までの差分を表示
プログラム評価
・箱根駅伝の性質上、毎年繰り返し使えるプログラムである・しかし、駅伝終了後は、他の画像要素(第95回)などを差し替えないと、整合性がとれない
感想
最初、手抜きか!?と思ったのですが、次大会に向けた刷新を行うまでは、整合性が取れなくても仕方ないよね・・・と割り切った実装になっているような気もします。皆さんはどう思いますか?許せますか?許せませんか?
コメント
コメントを投稿