我有一个100.000行的txt文件,我需要阅读它才能将大部分内容插入到我的数据库中。 我想使用这个插件,因为我发现它很容易使用:
http://www.bram.us/projects/js_bramus/jsprogressbarhandler/#download
我的问题是:我用PHP读取了txt文件,但我不明白如何更新进度条! 我在想这样的事情
echo '$("#progressbar").progressbar({ value: '.($k++).' });';
其中$k
从0变为100,但是,我必须把它放在哪里?
答案 0 :(得分:1)
我发现了这种方法:
http://spidgorny.blogspot.it/2012/02/progress-bar-for-lengthy-php-process.html
我认为这可以帮助对代码进行一些编辑。
答案 1 :(得分:0)
你不可能混合使用php和javascript:
$("#progressbar").progressbar({ value: XX });
所以k
将是静态的。
-
如果你真的想轻易做到这一点,你可以使用一个包含三列的中间数据库表:txt_file,position,length 并且经常在PHP脚本在txt文件上运行时更新此表。
客户端,在Javascript中,您可以使用jQuery进行ajax请求,例如每5或10秒,这将调用另一个PHP页面,并且此PHP页面将仅返回中间表中的相应行。获得结果后,您可以更新进度条。
-
这是为您实现的最简单的解决方案,但它仍然非常脏,并且txt文件的解析最好必须非常长!
答案 2 :(得分:0)
没有直接的方法来实现这个目标。首先执行PHP脚本,然后将输出发送到查看网页的客户端,这就是为什么您无法向客户端显示PHP脚本处理的实时状态。
您必须使用AJAX和数据库的组合:
创建一个表来跟踪加载文本文件的进度。每当用户(客户端)向页面发送请求时,请继续使用进度更新表。使用会话ID作为表的索引,以便跟踪每个客户端的进度。现在使用AJAX请求从表中获取进度,并使用进度条将其呈现给客户端。