ナックス「はい。というわけで今回は、念の為の解説。JavaScriptの話だ!」
デビー君「『ジャバスクリプト』って何?」
ナックス「これは、Webプログラミングで流行ったプログラミング言語の一つだ。Googleが公開したGoogle Mapやgmailというサービスをきっかけに大流行したんだ」
ナックス「例えばこの下。何が見える?」
時計
デビー君「くっくっく……!!世界破滅までの時刻が刻々と近づいているのが見えるよ!!」
ナックス「僕には時計にしか見えないです。そして、なんとこの時計。リアルタイムで動いています!」
デビー君「え?リアルタイムで動いている?おかしくない?確か 33.ハッキングあたーっく!lwp-requestで情報を要求!/dev/nullはブラックホール での解説では、サイトが置いてあるサーバーと僕達のパソコンの情報のやりとりは一回しかしないとか言ってなかったっけ?」

デビー君「そうそう。こんな図を使って」
デビー君「ということは……。ジャバスクリプトっていうのは、更新ボタンを自動的に押させて、サーバーから常に新しい時間とかの情報を得るプログラムなのかな?」
ナックス「いいえ。JavaScriptを使用している場合でもサーバーと情報のやりとりを行っているのは一回です。ただし、その情報の中にJavaScriptの場合は『頼む。ここにリアルタイムで動く時計を出してくれ!』っていう記述が書かれています」
デビー君「『リアルタイムで動く時計を出してくれ!』って書かれても、その後サーバーから情報はもらわないんでしょ?サーバーさん以外の誰がリアルタイムに時計を動かしてるの?」
ナックス「デビー君はインターネットをするとき、なんというソフトを使ってウェブサイトを見ているのでしたっけ?」
デビー君「えーっと……FirefoxとかOperaとかKonquerorとか。確かこういうのをまとめて……ウェブブラジャーって言うんだよね!」
ナックス「おしいです。爽やかな顔で『ブラジャー』って言われても困ります。ウェブブラウザと言います」
ナックス「そして、最近のウェブブラウザは高性能なので、ウェブサイトを見る機能だけではなく、なんとプログラミング機能を内包しています」
デビー君「それがジャバスクリプト?」
ナックス「そうです。実はサーバーは、ウェブブラウザさん自身に『リアルタイムで動く時計を出してくれ!』と頼んでいたのです」
デビー君「なるほど。だから、あとはサーバーと情報をやりとりしなくても、ウェブブラウザ自身が自分で時計をリアルタイムで表示していたのか」
ナックス「その通り!」
ナックス「さて。最近のネットの世界ではJavaScriptが大ブームです。ですが、私たちは『自身がJavaScriptというプログラムを持っていない低機能なブラウザ(じゃないけど)』lwp-requestを使う予定です」
デビー君「ふむふむ」
ナックス「つまり、私たちがGoogle画像検索で検索した結果をウェブブラウザから見るのと、lwp-requestで情報を取得するのとでは、微妙に情報に違いが出てしまうかもしれません」
デビー君「なるほど」
ナックス「しかし!すべてのウェブブラウザには『Javascriptをオフにする』機能が備わっています。つまり、JavaScriptが使われているウェブページもJavaScriptのプログラムを使わずに見る機能です」
デビー君「え?そんなことが出来るんだ」
ナックス「はい。とりあえずFirefoxでJavaScriptをオフにする方法を紹介致します」
ナックス「Firefoxを立ち上げて、一番上のメニューより『編集』 → 『設定』」
ナックス「出てきたウィンドウの『コンテンツ』 → JavaScriptを有効にするのチェックマークを外して『閉じる』ボタンを押す」
ナックス「なんとこれだけでJavaScriptがオフになったのです」
デビー君「意外と簡単ですな」
ナックス「他のブラウザも、こんな感じでJavaScriptをオフにできます」
ナックス「ちなみに、JavaScriptオフに設定すると、先程のリアルタイムで動いていた時計は表示されないはず」
デビー君「おー。本当だ」
ナックス「元に戻したいときは、再度チェックマークをつけるだけでいいです」
ナックス「というわけで、Google画像検索から画像を取得するプログラムを作っている途中で、『なーんかブラウザから見た情報と、lwp-requestで得た情報が微妙に違う気がするんだよなー』ってときは、ブラウザのJavaScriptをオフにしてみてね」
ナックス「次回。『Google画像検索のソースを解析しつつ情報ゲットだ是!(42.GoogleのAPIをチラ見する。curlコマンド』)」