箱根駅伝公式サイトの手抜き!?JavaScriptを解説する

箱根駅伝公式サイトの手抜き!?JavaScriptを解説する:

今年も、箱根駅伝盛り上がりましたね!

ふと、箱根駅伝の公式ウェブサイトを見ると、



スクリーンショット 2019-01-04 14.28.59.png


・・・!?!

第95回大会まであと363日

という表記になっていました。

これは、手抜きJavascriptの可能性があります。

エンジニアの端くれとして、これを詳しく調べたい!と思ったので、解説していきます。


ソースを見て見る

view-source:http://www.hakone-ekiden.jp/

まずは、ソースを見てみましょう。上のアドレスをURLバーに貼り付けて見てください。または、箱根駅伝の公式ウェブサイトを開いて、右クリックからページのソースを表示など。

すると。。。24行目付近に



スクリーンショット 2019-01-04 14.32.10.png


早速ありました。count_downという関数を実行しています。明らかにそれっぽそうです。次は、このcount_downが定義されている場所を探っていきます。


Javascriptを探る

ありました。15行目ですね。

スクリーンショット 2019-01-04 14.33.46.png

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>'); 
    } 
} 
ざっと読み解くと、あの日付の表示は、3パターンにあったようですね。

  1. 1月2日または3日の場合、「箱根駅伝開催中!」と表示する
  2. 1月1日は、「1(日)」と表示する
  3. それ以外は、現在時刻と1月2日までの差分を表示
ということです。


プログラム評価

・箱根駅伝の性質上、毎年繰り返し使えるプログラムである

・しかし、駅伝終了後は、他の画像要素(第95回)などを差し替えないと、整合性がとれない


感想

最初、手抜きか!?と思ったのですが、次大会に向けた刷新を行うまでは、整合性が取れなくても仕方ないよね・・・と割り切った実装になっているような気もします。

皆さんはどう思いますか?許せますか?許せませんか?

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)