在 ajax 调用期间显示包含进度的模式窗口


Show a modal window with a progress during ajax call

我有一个包含 +30000 条记录的 excel 表,我将每条记录插入数据库,我想显示一个带有进度条和完成百分比的模式窗口,包括记录总数、# 插入的记录、# 失败的记录等。我无法更新我提到的标签。我已经尝试过使用 jQuery,但我无法在运行时将值设置为 javascript 变量以增加记录插入值。我正在使用PHP(Codeigniter)将每条记录插入数据库。

我是Jquery和php的新手。请帮忙。谢谢。。

您可以通过

多种方式实现此目的。您可以上传整个文件并让PHP处理它(我认为这会更快,更高效)。问题是准确读取PHP将每一行插入数据库的进度。您可以使用flush()将一些内容输出回jQuery将侦听的浏览器,但我认为这不是最好的方法。

另一种方法是让jQuery处理文件并更新进度条和计数。这可能出现的问题是您尝试插入数据库的行数 - 30,000 条记录可能相当多,但这是我尝试的方法。

首先,你需要一个jQuery插件:https://code.google.com/p/jquery-csv/

我将注释放入jQuery脚本中,以便您可以定位模态框并显示何时执行ajax等。

这是我使用的数据文件保存为本地 *.csv 文件:

a,1b,2C,3d,4e,5F,6克,7H,8一,9J,10

但基本上你解析csv文件并将每一行/记录提交到PHP服务器以插入到数据库中。每次通过 ajax 成功响应后,您都会更新进度条和计数器(成功和错误)。

http://jsfiddle.net/dmayo2/u3kqgjLy/

以下是相关的代码片段:

var reader = new FileReader();
reader.readAsText(file);
reader.onload = function(event) {
   // process csv file
}

我的 2¢