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 回答