!!!ニュース取得システムのページ MSN/NHKのニュースと電車の運行状況を取得して表示するプログラム。研究室の本棚の上の入り口よりのディスプレイに出力している。本体は研究室のサーバーのinternal_onlyにある。 フィードの取得はPerlのcgi、表示にはAjaxを使用している。 !!構成 *使用言語 **Perl **JavaScript **Html *構成ファイル **feed.css **feed.js **feedProxy.cgi **getTrainInfo.cgi **index.html **ObjTree.js **prototype.js **その他画像ファイル !!運用 *サーバー側 *表示側 研究室サーバの/internal_only/trafic_info/index.html にブラウザでアクセスして放っておく。 !!改造 !!個々の動作 feedProxy.cgi と getTrainInfo.cgi が外部サイトのフィードを取得し、feed.js が定期的にこの2つのcgiから取得情報を読み取って画面を更新する。 !feed.css !feed.js 中核的な存在。パース/描画の呼び出しを定期的に行っている。フィード自体の取得とパースはそれぞれfeedProxy.cgiとgetTrainInfo.cgiが担当する。定期的にページを切り替えるスレッドが動いている。 *設定用パラメータ ,変数名,用途 ,page_switch_interval,ページの切り替え周期 ,channel_switch_interval,取得してあるフィードの中から、表示する情報を切り替える周期。 ,reload_interval,外部情報の再取得を行う周期。 ,area height_max,名前のとおり。 :主な関数: *load_feed フィードの読み込み、ページ切り替えスレッドの生成を行っている。channel_switch_intervalごとに呼ばれている。読み込みはローカルの各種cgiに対して行っており、外部サイトのフィードの取得を行っている訳ではない。 *reload_site 外部サイトのフィードの再取得を行っていると思われる。reload_intervalごとに呼ばれる。 *switch_panel 定期的に呼び出される描画用情報の更新スレッド。画面に表示するパネルの情報を設定する。各表示要素(筆者がjsを理解しきっていないので、ここは補足求む)に非表示ならnone,表示するならblock属性を割り当てる。 !feedProxy.cgi MSN,NHKからニュース情報を取得するcgi。同時にfeed.jsに取得したxmlを渡す役割も兼ねている。なぜか接続の際、ユーザエージェントをPS3にして接続している。 !getTrainInfo.cgi 電車情報を取得するcgi。feedProxy.cgiと同様に、取得したxmlをfeed.jsに渡す役割を兼ねている。 !index.html !ObjTree.js ? !prototype.js Ajaxのライブラリ。