0

同じブラウザの2つのインスタンス、同じコンピュータ、同じユーザーがページを閲覧したときに、ページにある種の一意のIDを設定するにはどうすればよいでしょうか。各ブラウザは、ブラウザごとに異なるデータのリクエストを含む.loadをサーバーに送信します。2つのブラウザに対するサーバーの2つの応答のそれぞれには、ロードで送信された一意のIDが含まれます。

状況:ユーザーがグラフのある私のページにアクセスします。このページはサーバーに.loadsを実行して、グラフのほぼリアルタイムのデータを取得します。

2つのグラフを同時に表示するには、ユーザーはブラウザの2番目のインスタンスを同じページで開いて、別のグラフを選択する必要があります。

ブラウザの2つのインスタンスはそれぞれ、異なるデータを要求する.loadを送信する必要があり、.loadにはページの各インスタンスの一意のIDも含まれている必要があります。

4

2 に答える 2

1

これは、サーバーへのリクエストが完全に自己記述的でステートレスである必要があるように私には聞こえます。次に、ユーザーが新しいブラウザウィンドウを開いて新しいグラフに移動すると、ページがサーバーにグラフのデータを要求すると、サーバーに関心のあるグラフが通知されるだけです。一意のIDはまったく必要ありません。これがうまくいかないと思われる場合は、一意のIDが必要な理由を説明する必要があります。そうすれば、支援方法をよりよく理解できる可能性があります。

一意のIDを作成する必要があると思われる場合は、サーバーにIDを作成してもらい、ページに戻します。そのページは独自のJavaScriptに一意のIDを保持でき、新しいグラフを要求した場合は、その一意のIDを渡すことができます。同じブラウザで開いている他のページには、独自のjavascriptストレージがあり、したがって独自の一意のIDがあります。

参考までに、クライアントで100%保証された一意のIDを生成することはできません。世界中で完全に一意のIDが本当に必要な場合は、共通のサーバーでIDを生成する必要があります。

于 2012-09-10T18:15:21.097 に答える
1

これは、HTML5のsessionStorageを使用して解決できます。2つのFireFoxブラウザで同時にテストしました。

    present_ID = sessionStorage.unique_session_ID
    adm( 'present_ID=' + present_ID )
    if( present_ID == undefined  ||  present_ID == "" )         // not set yet?
    {
        new_present_ID = Math.random()
        adm( 'set=' + new_present_ID )
        sessionStorage.unique_session_ID = new_present_ID
        present_ID = new_present_ID
    }
    set_text( present_ID, 'unique_page_identification_id' )

(賛成票を投じてください)

于 2012-09-10T22:35:10.580 に答える