更新Jquery进度条,同时阅读文本文件(来自php)

时间:2012-04-20 07:57:53

标签: php jquery progress-bar

我有一个100.000行的txt文件,我需要阅读它才能将大部分内容插入到我的数据库中。 我想使用这个插件,因为我发现它很容易使用:

http://www.bram.us/projects/js_bramus/jsprogressbarhandler/#download

我的问题是:我用PHP读取了txt文件,但我不明白如何更新进度条! 我在想这样的事情

echo '$("#progressbar").progressbar({ value: '.($k++).' });';

其中$k从0变为100,但是,我必须把它放在哪里?

3 个答案:

答案 0 :(得分:1)

我发现了这种方法:

http://spidgorny.blogspot.it/2012/02/progress-bar-for-lengthy-php-process.html

我认为这可以帮助对代码进行一些编辑。

答案 1 :(得分:0)

你不可能混合使用php和javascript:

  1. PHP将运行并生成HTML / JS文件
  2. HTML / JS文件将发送到客户端
  3. 客户端将运行JS:$("#progressbar").progressbar({ value: XX });
  4. 所以k将是静态的。

    -

    如果你真的想轻易做到这一点,你可以使用一个包含三列的中间数据库表:txt_file,position,length 并且经常在PHP脚本在txt文件上运行时更新此表。

    客户端,在Javascript中,您可以使用jQuery进行ajax请求,例如每5或10秒,这将调用另一个PHP页面,并且此PHP页面将仅返回中间表中的相应行。获得结果后,您可以更新进度条。

    -

    这是为您实现的最简单的解决方案,但它仍然非常脏,并且txt文件的解析最好必须非常长!

答案 2 :(得分:0)

没有直接的方法来实现这个目标。首先执行PHP脚本,然后将输出发送到查看网页的客户端,这就是为什么您无法向客户端显示PHP脚本处理的实时状态。

您必须使用AJAX和数据库的组合:

创建一个表来跟踪加载文本文件的进度。每当用户(客户端)向页面发送请求时,请继续使用进度更新表。使用会话ID作为表的索引,以便跟踪每个客户端的进度。现在使用AJAX请求从表中获取进度,并使用进度条将其呈现给客户端。