0

重複の可能性:
PHP スクリプトを並行して実行するにはどうすればよいですか?

私は現在、(私の意見では) PHPの$_SESSIONスーパーグローバルで奇妙な問題を抱えています。

ページの unload( $(window).unload) で、jQuery は同期ポスト要求を に送信しsave.phpます。

に保存する必要のあるデータが含まれています$_SESSION["data"]。現在のページがまだ表示されているときに、オブジェクトを取得してwithにjqXHR含まれるいくつかのテスト文字列を表示できます。しかし、次のページでは、それらのデータはまだ利用できません。リロードするだけで、すべて問題ありません。responseTextalert()

投稿リクエストがまだ完了していない間に、ブラウザ (Firefox/Chrome) が次のページをバックグラウンドでロードしているように思えます。それとも問題があり$_SESSIONますか?

4

1 に答える 1

0

イベントを添付することwindow.unloadはお勧めできません。ブラウザは最初に次のページをフェッチしてからイベントを呼び出す場合があります。その場合、表示は(まだ)変更されていません。したがって、アンロードイベントにアタッチする代わりに、ナビゲーションを引き起こすイベントにアタッチすることができます

例えば:

  • リンククリックにアタッチし、デフォルトの動作をキャンセルし、ajax save.phpスクリプトを呼び出してから、手動でナビゲーションを実行します。window.location.href
  • フォームの投稿に添付し、投稿をキャンセルし、ajaxを呼び出してから、フォームを投稿します。

お役に立てば幸いです

于 2012-09-29T15:07:03.790 に答える