运行脚本后,浏览器挂起。其他浏览器工作

时间:2013-04-25 13:53:29

标签: php browser

我编写了一个脚本,用于从数据库导出数据,然后将其放入XML文件中。脚本在无限循环中使用正确的break语句(在任务完成后)。任务需要10分钟。当我提出启动作业的http请求时,我正在使用的浏览器完全冻结 - 不仅是请求的URL而是整个主机。与其他浏览器同时,我可以浏览包含我的脚本的网页。

我的PHP脚本片段:

while(true)
{
    if($i === $z)
    {
        break;
    }

    foreach((array)$this->project as $project)
    {
        makeYourJob();
        usleep(1000000);
        $z++;
    }
    usleep(2000000);
}

使用此jquery代码调用脚本(我输入包含此代码的HTML页面的地址):

    $.get("cron.php");

此外,我尝试在URL栏中键入cron.php,浏览器也挂起。为什么运行脚本的浏览器会冻结?怎么避免这个?

编辑: 由ajax或用户发出简单的get / post请求将无法解决问题。这篇文章不重复。这是一个解决方案:

exec("wget http://www.domain.com/scrip_name.php > /dev/null &");

1 个答案:

答案 0 :(得分:0)

显然,没有调用打破无限循环的if语句。

你能检查$ i和$ z的初始化值吗?此外,===检查2个变量是否属于相同类型且具有相同值。我建议你检查$ i和$ z变量的类型。