AjaxとJavaScriptタイマー

Ajaxを使うと、表示画面とは非同期で処理できます。

今まではサーバー側の処理を待ってから、その結果を画面表示したりしていました。重い処理をする場合は待ちくたびれます。

またあるとき、重い処理というかバッチ処理(タスク処理)をサーバー側の設定で定期的に処理することがあります。ColdFusionでもスケジューリングすることができますが、レンタルサーバーを使っている場合、やたらと設定できません。
なにか方法は。。。

そこで、AjaxJavaScriptタイマーの組み合わせを考えました。
JavaScriptでは、ある一定の間隔で処理を行います。
次にAjaxの仕組みを使って、非同期でサーバーの処理を行います。
そうすると、ブラウザで画面表示している間は、タスク処理をしているようなものです。

レンタルサーバーを使っている人で、最低1日1アクセスあるのなら、1日1回はタスク処理を行うことができます。アクセスしてくる人には、重い処理をやっていることは感じることはありません。

問題は「Ajaxはなんだか難しい」ということです。
以前こちらのサイトを見たとき、まさに
「あー、こんなのでいいんだ!」
と思いました。

で、上記方法を使って作ったサイトがこちらです。
サーバー側では以下の処理をやっています。

  1. 前回メール配信の日時から12時間以上たっていれば以下の処理を行う
  2. 次のカテゴリ(本など)のジャンルごとのデータを、アマゾンWebサービスから取得する
  3. 取得したデータを編集し、こちらへメール入稿する
  4. 入稿してから1時間以内にメール配信される

AjaxJavaScriptタイマーの組み合わせは、なかなかおもしろいです。