让我先描述一下我先做的事情:
我必须从不同的xml导入大量的数据到我的数据库,因为它持续很多我必须放一个进度条,我这样做:我将整个导入分成很小的AJAX请求,然后导入一次只有少量数据(当ajax请求完成进度条增加一点时)。整个想法很棒,但数据不断变得越来越大,我不能再优化代码了(它已经过优化)。
问题在于,每次我进行AJAX调用时,我都会花费大量时间处理框架特有的内容(模型初始化和内容),浏览器处理URL等等。所以我想知道我是否可以使用php的flush函数。
但我一直在读,刷新功能在所有浏览器上都不起作用(这很奇怪,因为它是服务器端功能)。如果我使用flush函数,我会写<script>increase_progressbar</script>
或者我想要的任何东西,我可以做到。
那么,关于冲洗功能的任何意见?我一直在小脚本上测试它,但我想知道是否有人真正使用它与大脚本。此外,我可以听取任何其他建议做我想做的事情:)
答案 0 :(得分:1)
我不会给你直接的建议,但我会告诉你我是如何在我的一个项目中做到的。在我的情况下,我需要上传Excel文件,然后解析它们。数据超过3000行,我必须检查每行的所有列是否有一些数据。当我在上传后直接解析它时,解析器经常在某处崩溃而且它真的不安全。
那我是怎么做到的?上传过程分为两部分:
实际上传文件(常规上传字段并提交)。当点击按钮时,一些CSS和JS“魔术”隐藏了表单,屏幕上出现了一个不错的加载栏。上传完成后,页面只会刷新,表单会再次显示下一个文件
使用php-cli开始在后台解析数据,如@Dragon建议使用exec()。
在数据库中,我有一个存储有关文件信息的表,并且有一个名为“parsed”的布尔字段。解析器完成作业后,最后一项任务是将该字段更新为true。
所以这是从用户角度来看的整个过程:
在我的项目中,我没有要求显示有关导入的额外细节,但您可以随时使用其他额外数据。
希望这可以帮助您完成项目。