0

私はかなり長い間、この問題を理解しようとしてきました。JavaScript はクライアント側スクリプトであり、PHP はサーバー側スクリプトであることは知っていますが、ブラウザーのエポック時間を PHP スクリプトに渡して計算を実行し、結果に基づいて geoJSON データを返すことは可能ですか? すべて非同期ですか?

PHP スクリプトに渡したい関数は次のようなものです。

function retreiveUTC() {
  var now = new Date().getTime();
  var browserUTC = Math.floor(now)/1000.0;  // this returns epoch time of the browser
}

次に、関数から生成されたエポック時間を取得し、それを php スクリプトに渡して、返す JSON ファイルを決定したいと思います。

たとえば、次のファイルをサーバーに配置します。

1352188536.JSON
1352187536.JSON
1352177536.JSON

そして、ブラウザのエポック結果に最も近いものを取得したいと思います。前もって感謝します。

以下の更新されたコード:

何が間違っているのかわかりませんが、ajax 呼び出しから成功していますが、戻り値は未定義です。

ajaxのもの:

    $.post ('timezone.php',
    {
        epochTime: browserUTC
    }, 
    function (result) {
       //do someting to result
    }, "json");

    var browserUTC = new Date().getTime();

    $.post ('timezone.php',
    {
        epochTime: browserUTC
    }, 
    function (result,status) {
   //display file name returned by PHP
        alert(result.file + "\n" + status);
   //console.log('test');
    });

PHP:

    <?php
    $epochTime = round($_POST['epochTime'] / 1000);
    $res= array();
    $res['file'] = $epochTime . '.JSON';
    return json_encode($res);
    ?>
4

2 に答える 2

0

非同期リクエストについて質問していると思います。AJAX リクエストを PHP スクリプトに送信し、それぞれの JSON データを取得して処理を行うことができます。デザインを変更する必要があります。

最初にページが要求されたときに、通常のデータ (JSON 以外) を送信し、JavaScript ファイルがクライアント側に読み込まれるとすぐに関数を呼び出し、関数の最後に AJAX 要求を使用して送信するだけです。ブラウザは、対応する JSON ファイルを取得してクライアントに提供する別の php スクリプトに戻ります。

jquery ライブラリを使用して、より簡単な方法で AJAX リクエストを実行します。

于 2012-11-06T08:17:24.943 に答える
0

標準の AJAX 呼び出しを介して行われると思います。たとえば、jQuery を使用している場合:

 $.post ('pathToPHPScript.php', {epochTime: browserUTC}, function (result) {
       //do someting to result
    }, "json");

PHP スクリプトでは、標準の POST 変数のようにエポック時間の値を取得できます。

$epochTime = $_POST['epochTime'];
//do required calculations

そのため、PHP には、JSON でエンコードされた文字列を配列から作成するのに役立つ組み込みのjson_encode関数があります。配列を渡すと、jQuery で取得できます。

//PHP
$res= array();
$res['file'] = $epochTime . '.JSON';
return json_encode($res);

上記の jQuery のコールバック関数では、次のようになります。

 $.post ('pathToPHPScript.php', {epochTime: browserUTC}, function (result) {
       //display file name returned by PHP
       console.log(result.file);
    });
于 2012-11-06T08:25:44.837 に答える