0

*このビットはストーンで修正されています*


3つのiFrameを含む1つのWebページがあります。すべてのiFrameは同じスクリプトを指しますが、異なるクエリ値を渡します。例えば

  • ウェブページ:mypage.html
  • iFrame1:script.php?x = 1
  • iFrame2:script.php?x = 2
  • iFrame3:script.php?x = 3

したがって、ユーザーがWebページにアクセスすると、script.phpを3回呼び出しています。


* 質問 *


script.phpが同じクライアント/ブラウザ/人によって3回呼び出されていることを認識し、それらの呼び出しを順序付けまたはキューに入れる方法はありますか?例えば

  • 初回-IDを設定してセッションに保存
  • 2回目-セッションからIDを取得して使用します
  • 3回目-セッションからIDを取得して使用します

現在私に起こっていることは、script.phpが同時に3回実行され、各iFrameが独自のIDを設定していることです。すべて同じIDを使用してほしい。

それが理にかなっていることを願っていますか?

よろしくお願いします。

ライアン

4

2 に答える 2

0

script.phpsが呼び出される順序は、ブラウザーによって保証されません。また、これらの呼び出しは並列である可能性があるため、他のiframeからの呼び出しに使用できるこれらの応答の1つにSESSION_KEYを追加する方法はありません。

mypage.htmlでAJAXを使用し、フレームのコンテンツを自分で入力することで、script.phpの呼び出し方法(順序または呼び出し、これらの呼び出しの重複)をより細かく制御できます。唯一の懸念事項が各クライアントの識別である場合、mypage.htmlが返されたときにセッションCookieを追加すると、このCookieがscript.phpの各呼び出しに送信されるため、問題を簡単に解決できます。

于 2012-11-06T12:49:23.960 に答える
0

同じユーザーであることを知るには、CookieまたはIPアドレスを使用してユーザーを追跡する必要があります。また、「セッションに保存」する場合は、Cookieをすでに使用している必要があります(そうでない場合、実際にはセッションではありません)。したがって、基本的に、新しいIDを作成する前に、IDがセッションにまだ保存されていないかどうかを確認する必要があります。そうでない場合は、それを生成して使用し、セッションに保存します。

編集:セッションが維持されている限り同じであるため、目的にPHPSESSIONIDを使用できます。IDがまだ生成されていないことを確認するために、微調整する必要があるのはコードでのID生成だけだと思います。そうでない場合は、セッションで生成して保存します。これにより、それ以降の呼び出しで再度生成されることはなく、セッションに格納された値が返されます。ただし、ここで同時実行に直面する可能性があり、1番目が完了する前に2番目のリクエストが到着する可能性があることに注意してください(これは両方とも新しいIDを生成します)。したがって、これを防ぐためにロックを使用するか、それで十分な場合はPHPSESSIONID値を使用する必要があります。

于 2012-11-06T12:45:40.517 に答える