【问题标题】:PHP variable lifetime through Ajax calls通过 Ajax 调用的 PHP 变量生命周期
【发布时间】:2011-02-23 10:09:17
【问题描述】:

变量通常会被销毁,并且一旦垃圾收集器认为有必要,它们占用的内存就会被释放。基本上,在当前执行的脚本完成后不久,是吗?

现在,我对 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() 调用之前?这是否会节省内存,无论多少?

干杯

【问题讨论】:

    标签: php ajax memory-management scope lifetime


    【解决方案1】:

    PHP 部分在它为您的 AJAX 请求提供服务的那一刻就完成了,直到页面重新加载。是否将其保存在 JS 变量中并不重要。它们没有连接。

    【讨论】:

    • 干杯,我就是这么想的!
    【解决方案2】:

    我看不出有必要这样做的原因,因为 AJAX 请求与通常的 HTTP 请求没有什么不同,只是它的响应由您的浏览器处理不同。

    【讨论】:

      【解决方案3】:

      这两个变量都将在脚本结束时取消设置,就像任何其他页面一样。

      顺便说一下,你也可以使用 unset($someClass,$someArray) 因为它需要多个输入

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-27
        • 1970-01-01
        • 2021-12-15
        • 2017-08-21
        • 2015-05-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多