3

私は何かに苦しんでいます。

jQuery を使用して別のページへの ajax 呼び出しを行う PHP ページがあります$.ajax。要求を非同期に処理ページに送信し、処理ページは応答を返します。

これは現在正常に機能していますが、バックエンドにいくつかの変更を加えており、実行される処理 (SQL ストアド プロシージャ) に 5 分以上かかるようになっています。SQL で 2 億件近くのレコードを処理しているため、待機は問題ありません。

問題は、リクエストを処理ページに送信できる必要があり、応答を待つ必要がないことです。処理ページは、次のように PHP のストアド プロシージャを起動します。

            $query = $dbh2->prepare('exec sp_name :countID');
            $query->bindParam('countID', $countID);
            $query->execute();

ここでも、ストアド プロシージャの実行に時間がかかるため、その結果をユーザーに表示する必要はありません。ストアド プロシージャの後に実行する必要がある追加の PHP コードがいくつかありますが、ブラウザに送り返す必要はありません。

処理ページを呼び出してストアド プロシージャとその他のコードを実行する方法を見つけようとしていますが、ユーザーのブラウザは応答を待つ必要はありません。現在、ページをクリックしようとするのが早すぎると、基本的にブラウザがしばらくロックされ、処理が完了しません。

これについての洞察は素晴らしいでしょう。

助けてくれてありがとう。

4

2 に答える 2

0

timeoutメソッドのオプションを設定することを検討してください$.ajax()。おそらく0.5秒か何かのタイムアウトを設定することにより、ajaxはタイムアウトし、エラーハンドラー(存在する場合)に入ります。

于 2013-04-03T23:44:13.133 に答える