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


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

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

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

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

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

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

まずは

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

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

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

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

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

 

 
progress.php

index.php

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

  1. お礼
    こちらの記事「freetel 格安sim APN つながらない」
    で助かりましたので一言お礼を言いたくてコメント書きます。ずっと放置
    してたandroid4.4を5.0へアップグレードしたところ、まったく同じ症状
    でネット接続できなくなりました。freetelのホームページを見てもAPN
    設定はfreetel simしか書いてないし、何度やってもダメ。PCでネット
    検索して色々設定変更をやってもダメ。数時間の格闘の末にこちらの
    ブログ記事にたどりつきました。APN設定でfreetel mobileを選んだ
    ところ、あっさりつながりホッとしたところです。freetelのホームページで
    問い合わせもしてますが、まともな返事があるかどうか・・・。
    自分はpriori2という古い機種で、android5.0にアップグレードしたら
    APN設定が変わるなんて、freetel公式にきちんと書いてくれないと
    全く対応できないですね。ありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です