我从CSV文件导入4000行。第1页显示服务器上的CSV文件,带有PROCESS按钮。
Onclick
按钮,我使用 JQuery Ajax 来调用导入所需的 PHP代码。在进行相关检查,更新记录和插入记录等之后,整个导入过程大约需要30秒到1分钟。
我尝试做的是在处理php代码时显示此导入的进度。 即:
Total records to import: 4000
Total users imported: 20 [div id=usersImported - this number dynamically increments while importing]
Total users updated: 30 [div id=usersUpdated - same here re incrementing]
Etc..
我不确定正确的问题是什么,因为我已尝试从php代码更新DIVs (usersImported and usersUpdated)
- 无法使其正常工作。这只是将我的脚本代码返回给浏览器,但实际上并没有执行它
我已尝试在更新或插入之后在php中执行回显..即:usersImported1然后usersImported2然后usersImported3 ..然后在我的JQuery成功中我尝试:
if( txt.match( "usersImported" ).length > 0 ) { ..
更新div innerHTML代码,带有前导号码。
这不起作用,因为即使我已经尝试过ob_flush();
和flush();
,因为成功只运行在ajax中,因此php在处理过程中不会刷新整个PHP代码完成了吗?有没有JQuery while:command?
所以我猜的真正问题是:这样做的正确方法是什么?从PHP更新DIV或基于PHP回声的$ ajax更新div?这类似于进度条更新,但我想根据处理时间内发生的情况更新某些div。
我很感激一个基本的例子或工作样本的链接。
答案 0 :(得分:0)
猜猜ajax没有激活,因为你没有关闭http,它坐着等待更多的来。
您需要在服务器上播放或填充您的工作。
一个脏修复方法是让updater将百分比写入静态公共文件,由客户端读取并继续轮询该文件。 (添加一个随机的查询字符串,以便获得传递缓存)。
答案 1 :(得分:0)
没有任何直接的方法。您可以将PHP进程状态写入任何外部源,如file
或database
,并在客户端读取特定时间后的状态。
希望本文能为您指明方向: