0

通常、変数は破棄され、ガベージコレクターが必要と判断するとすぐに、変数が占有していたメモリが解放されます。基本的に、現在実行されているスクリプトが終了した直後ですよね?

今、私はAjaxが取得した変数の存続期間に興味があります。

変数は通常、実行中のスクリプトが終了した後、つまりページのリロード時にパージされるため、Ajaxもこのカテゴリに分類されますか?PHPからファットJSON配列を受け取るスクリプトがあり、使用が終了した後、「arrayVar = null」のJS変数のみをクリアする場合、それで十分ですか?または、返された配列も作成したPHP変数の設定を解除する必要がありますか?例えば:

// PHP CODE
<?
public function some_kind_of_ajax_called_action() {

    $someClass = new MyClass();
    $someArray = $someClass->getRequestedData();
    $arrayForReturning = array();

    foreach ($someArray as $element) {
        ($currentUser == "admin")?($arrayForReturning[] = $element):null;
    }

    die(json_encode($arrayForReturning));
}
?>

含める方が良いでしょうか...

unset($someClass);
unset($someArray);

... die()呼び出しの前に?これは、いくら少なくても、メモリを節約しますか?

乾杯

4

3 に答える 3

5

PHPの部分は、ページがリロードされるまでではなく、AJAXリクエストを処理した瞬間に実行されます。JS変数で保持するかどうかは関係ありません。それらは接続されていません。

于 2011-02-23T10:15:24.923 に答える
0

これらの変数は両方とも、他のページと同じように、スクリプトの最後で設定解除されます。

ちなみに、unset($ someClass、$ someArray)は複数の入力を受け取るため、使用することもできます

于 2011-02-23T10:21:39.883 に答える
0

AJAXリクエストは通常​​のHTTPリクエストと同じであり、その応答がブラウザによって異なる方法で処理されるため、これが必要になる理由はわかりません。

于 2011-02-23T10:16:24.780 に答える