我正在考虑将可视化基础应用程序(将管道分隔文件并将其导入微软sql数据库)转换为php页面。其中一个文件的平均大小约为9兆字节。 (我对所涉及的行数无法准确,但我会说它大约有2万行)
其中一个优点是对页面所做的任何更改都会自动“部署”到目标用户(当前我对Visual Basic应用程序进行了更改时,最初是由其他人创建的,我必须将所有使用它的人的PC上的最新版本。)
问题是这些导入可能需要两分钟才能完成。在网站时间两分钟是很长的一段时间,所以我想向用户提供反馈,表明该页面没有失败/超时,并且肯定正在做些什么。
到目前为止,我能想到的最好的想法是使用ajax逐步进行。假设一次导入1000条记录,然后反馈,实施下一条1000,反馈,等等。
有没有更好的方法来做这种事情,不需要我学习新的编程语言或下载应用程序或库?
答案 0 :(得分:2)
您不必制作Visual Basic - > PHP开关。您可以在ASP或ASP.NET应用程序中坚持使用VB语法。使用基于ASP的解决方案,您可以重用大量现有代码,因此不会从头开始学习新语言。
至于如何向用户呈现长时间运行的进程,您正在寻找“异步处理程序” - 基本前提是用户访问启动进程页面(B)的网页(A)。
(A)的范围:
(B)的范围:
潜在改进:
(A)和(B)都可以用PHP或ASP技术开发。
答案 1 :(得分:1)
您如何将数据导入数据库?理想情况下,您应该使用SQL Server's BULK INSERT,这可能会加快速度。但是仍然需要上传文件进行解析......
我认为获得插入状态的努力是不值得的 - 大多数网站只显示动画gif / etc(如沙漏等),以表明系统正在处理事物但没有真正的细节。