Ajaxでブラウザタイムアウトしそうな時間のかかる処理。iframe POSTのほうが便利だった件(@@)

業務アプリなどを製作するとき、DBやファイルのレコードデータに対して逐次に処理をすると、かなり時間がかかったりするときがあります。

処理の実行はajaxでやりたいとき、ブラウザのタイムアウト制限にかかって、処理が完了できないことがあります。
普通にポストして、flashすればブラウザのタイムアウトは回避できますが、

画面を書き換えたくない時 httpRequestdで進捗を取得するのは一筋縄ではいきません。

色々探してみても、これといった解決策がなかったんですが、

ふと、ajaxのときのファイルアップロドに iframe を使ってたのをおもいだしました。

それを参考に、簡単に画面遷移せずに処理の進捗を表示し、ブラウザのタイムアウトを回避する処理を作ってみました。

まずは

こちらを見ていただくのが早いとおもいます。

http://omni.ecopls.link/iframe/

やってることは非常にシンプルです。

dummyのiframeにポストして、そのiframeに親を更新するjavascriptを出力してるだけ

表面的には、ajaxのような挙動でシンプルに実現できました。

 

 
progress.php

index.php