运行脚本后,浏览器挂起.其他浏览器也可以


After running the script, browser hangs up. Other browsers works

我编写了一个脚本,从数据库导出数据,然后将其放入XML文件。脚本在无限while循环中使用适当的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 &");

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

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