0

特定のサーバーに ajax リクエストを送信し、レスポンスも取得しています。クロスドメインリクエストを行っているので、jsonpを使用しています。リクエストを行っているサーバー時間を取得する方法はありますか。書いたほうがいいのphp scriptか、ajaxリクエストだけでいいのか。次のリクエストを行うとします。

$.ajax({
        dataType: 'jsonp',
        data: 'jsonp=date',
        jsonp: 'jsonp_callback',                
        url: 'http://www.google.com',   
        success: function (data) {                  
        }
});

このリクエストからサーバー時間を取得するにはどうすればよいですか? 何か提案があれば助けてください。また、setIntervalメソッドを使用して毎秒時間を更新する場合、時間を取得した後、時間を更新する特定の時間の後に同じ ajax リクエストを行うのはコストのかかる操作になります。時間とともに更新するリアルタイムデータがあります。

4

3 に答える 3

2

明示的に提供されない限り、サーバーの時刻を取得することはできません。
HTTP ヘッダーを読み取ることはできますが、ヘッダーがこの情報を毎回提供するとは限らないか、その形式が常に同じであるとは限らないため、これは良いことではありません。

また、毎秒尋ねる意味がわかりません。
一度聞いて、その時間とあなたの時間の差を計算してください。これで、時間の差が得られ、好きな場所で使用できます。

時間が得られたとしても、ネットワークの遅延のために、得られた時間とサーバーのリアルタイムの間にはおそらく違いがあることに注意してください.

于 2012-05-21T18:53:29.810 に答える
1

パート1の答えは、JavaScriptがサーバー時間を読み取るために、応答にサーバー時間を出力する必要があるということです。パート2では、応答がロードされるのを待ってから、を使用しますsetTimeout。使用setIntervalとは、最初の応答が返される前にajax呼び出しを2回起動する可能性があることを意味します。

于 2012-05-21T18:51:47.877 に答える
0

サーバー時間を提案する場合、呼び出しを実行しているスクリプトを意味しますか、それともサーバー上の実際の時間を意味しますか?

たとえば、5 秒ごとに呼び出しを自動化するための呼び出し間の時間を把握しようとしていますか?

単純に javascript からロケール時間を取得し、ajax で応答を取得したときからそれを比較するだけで十分でしょうか?

そうしないと、「クライアント側」の性質により、javascript はサーバー時間を取得できません。

于 2012-05-21T18:57:35.847 に答える