3

どうやら私が使っている

var x=ajax.....

if(x){x.abort();}

しかし、これは私のphpファイル内で中断を引き起こしません。ちなみに、オプションはデフォルトではignore_user_abort(false)に設定されています

つまり、接続が失われた場合、スクリプトは実行を継続しません。

問題は、js クライアント側の ajax が中止されたにもかかわらず、コードを実行し続けているように見えることです。

js を介して、クライアント側とサーバー側の両方の PHP の停止を成功させる方法。

4

2 に答える 2

0

何かが中止されたことを確認する必要がある場合は、別のリクエストを送信して、ジョブが終了したかどうかを確認する必要があります。つまり、呼び出した後、処理を終了する前に中止できたかどうかを確認するためxhr.abort()に、何かにリクエストを送信する必要があります。/abort/jobId

abort()呼び出しの直後に PHP スクリプトが停止することを保証する魔法の方法はありません。

于 2012-12-14T21:40:26.337 に答える
0

これは、ほとんどの場合、AJAX が機能する方法ではありません。要求がサーバーに送信されると、サーバーはそれを実行し始めます。クライアント接続が切断された場合にスクリプトの実行を停止するように PHP が設定されていたとしても、Web サーバー構成では、出力が実際にクライアントに送信されるまで、そのようなチェックは行われません。したがって、出力イベントが 1 つだけの典型的な AJAX タイプのスクリプトを実行している場合、クライアント側の中止はサーバー側に影響を与えません。

于 2012-12-14T21:32:00.563 に答える