0

一部のphpページがsleepやwhileループなどの長いプロセスを実行している場合、ロードされるまでに時間がかかりますが、同じページの他のプロセスに影響しますか?、
同じページを別の短いもので開こうとすると気づきましたプロセス、ロードにも非常に時間がかかり、最初のプロセス(長いプロセス)がロードする前にロードされないことを明確にするために、

それは本当ですか、それとも私のコードに何か問題があり、それを防ぐ方法はありますか?
私はそれがキャッシュと関係があると思います、私はヒントや答えを得る前に混乱したくないです

4

2 に答える 2

2

PHPは単一のプロセスで実行され、ページにアクセスするたびに、プロセスが開始され、処理され、終了します。各プロセスは他のプロセスに影響を与えません。

于 2012-07-10T02:14:43.803 に答える
1

同じページを別の短いプロセスで開こうとすると、[...]最初のページ(長いプロセス)がロードされる前にロードされないことに気付きました。

最も一般的な理由:

  • スクリプトは、ファイルロックを使用するPHPセッションを「そのまま」使用します。ファイルロックメカニズムにより、一度に1つのスクリプトのみが各ユーザーのセッションデータを編集できますが、これは、同じユーザーからの2つのリクエストが同時に発生した場合、両方が依存している場合、最初のスクリプトが終了する前に2番目のスクリプトが開始されないことを意味しますセッション上(ただし、2人の異なるユーザーは異なるセッションファイルを持っているため、衝突することはできません)
  • ブラウザは、ページに時間がかかっていることを自動的に検出し、バックグラウンドで意図的に後続のリクエストを遅らせます。これは、GoogleChromeがデフォルトで行うことだと思います。

ただし、どちらの場合も比較的安全です。これは、同じユーザーが複数のページを同時に読み込もうとしている場合にのみ遅延が発生するためです。これは通常ではありません。実際のページの読み込みにかかる時間に関係なく、異なるユーザーには遅延が表示されません。

この優れたSO回答のトピックに関する詳細。

于 2012-07-10T02:35:57.447 に答える