2016-07-24 3 views
0

私はw3schools.comからAJAXを学びたいと思っています。しかし、私はfollwing例を理解することはできません。キャッシュされた結果がAJAX

上記の例で

xhttp.open("GET", "demo_get.asp", true); xhttp.send();

は、あなたがキャッシュされた結果を得ることができます。この問題を回避するには、URLに固有のIDを追加します。

xhttp.open("GET", "demo_get.asp?t=" + Math.random(), true); xhttp.send();


Question1:キャッシュされているどのような結果とどのようにそれがURLに固有のIDを追加することによって回避されますか?

質問2:特定のphpファイルにリクエスト(データ)を送信すると、$ _REQUESTグローバル変数を使用するだけで特定のファイルのデータを見ることができます。なぜ$ _GETグローバル変数を使用できないのですか? GETメソッド)?

ありがとうございます。

答えて

1

のWebキャッシュは、単にので、あなたのため、あなたのブラウジングを高速化、ファイルがブラウザにとどまることを意味同じファイルを何度も何度もやり直す必要はありません。

1:パラメータとしてブラウザをランダムな文字列またはタイムスタンプを追加することにより、新しいファイルとしてすべての時間を扱います。

remotefile.js TS = 123がremotefileをremotefile.js TS = 124

2と同じではありません:?PHPの5.3+あなたは、特定の要求タイプのためのグローバルを見ることで、データを取得します。

$_GET holds all get parameters (ie the part of the URL after ?) 
$_POST holds an array of all POST.parameters 
file_get_contents('php://input') holds the json in a json-request 

取得reuestのみURLパラメータを処理しますので、あなたは、$ _GETを使用してattadhed GET-データを見ることができない理由があります。データを送信する場合は、POSTを参照してください。

http://www.w3schools.com/jquery/ajax_post.asp

1

質問1:

  1. Cached Result

    • 誰キャッシュ?ブラウザ
    • キャッシュは何ですか?:各request(URL)、ブラウザキャッシュresponse(結果)
    • キャッシュはどこですか? (コンピュータのHDDで)ブラウザの一時メモリ
  2. "demo_get.asp?t=" + Math.random()

    これは各呼び出しためのURLが変更されますので、demo_get.asp?t=32332がキャッシュされている場合例えば、それはdemo_get.asp?t=43948348に影響を与えません。 。 Math.random()

のおかげで、質問2:

クライアント側で使用方法によると、あなたは番目のサーバー側で要求を処理することができるようになります。

  • GETメソッド:

    //client side 
        xhttp.open("GET", "demo_get.asp?t=" + Math.random(), true); 
        //server side 
        $_GET 
    
  • POSTメソッド:

    //client side 
        xhttp.open("POST", "demo_get.asp?t=" + Math.random(), true); 
        //server side 
        $_POST 
    
関連する問題