【问题标题】:Output MySQL rows while webpage has been loaded加载网页时输出 MySQL 行
【发布时间】:2013-11-08 11:25:26
【问题描述】:

我想要的结果: 完全加载一个网页,但完成后会逐行输出MySQL查询。

说明: 我希望有一个网页显示它应该显示的信息,但同时我希望它逐行显示它是如何处理 MySQL 查询的。

假设您提交一个任务,一个脚本会向一群订阅者发送一封电子邮件。当您在网页上提交该任务/脚本时,您希望进入一个包含一些信息的新网页,并且在该页面上您有一个表格,该表格正在以“实时”的方式添加行。处理完后添加一行。

这些列可以是 FIRSTNAME、LASTNAME、E-MAIL、PROCESSED。

应该显示表格,一次一行,当脚本(MySQL 查询)处理完后,您将在已处理列中获得订阅者和文本 OK。

不确定我的解释是否足够清楚,请不要犹豫告诉我。

php ob_start可以实现吗?

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    您的想法是使用 PHP 函数 ob_start(),您可以批量打印 50、100 或 一行一行。

        ini_set('display_errors', 1);
        error_reporting(E_ALL);
        ini_set('memory_limit', '512M');
        set_time_limit(0);
        ob_start(); //Object buffer
        //call a recursive function for batch processing
        processTask($pageNo=1);
    
         function processTask($pageNo=1){
                //perform task with page no 1, like using limit query , 
                //then call function the processTask with next page no if returned
                //row is not equal to zero
    
                //Must - calling below will out put on browser screen what is in echo statement 
                ob_flush();
                flush();
        }
    

    【讨论】:

    • 我猜这取决于在客户端或服务器超时之前输出是否完成?
    • @Ramratan Gupta 谢谢!现在我只需要弄清楚如何在我的设置中完成此操作。 :)
    【解决方案2】:

    我会使用 Javascript (ajax) 反复拉取最新的行,因为这会导致任何 HTTP 连接都是短暂且独立的(正如我认为的那样)。

    这是猜测,但我认为从长远来看,使用 ajax 会更好。

    【讨论】:

    • 我不擅长 AJAX,有什么教程可以学习吗?
    • 如果你使用像 jQuery 这样的框架,如果你知道一些 Javascript,那真的很简单。尝试在这里查看我的长轮询解决方案:stackoverflow.com/questions/19770559/… - 你需要查看$.get
    猜你喜欢
    • 1970-01-01
    • 2019-10-27
    • 2010-10-10
    • 1970-01-01
    • 2023-04-02
    • 2015-10-14
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多