我的代码托管在亚马逊网络服务服务器上,我使用的是 Hathway Internet服务提供商(基于印度的ISP)。 以前我的代码与Hathway ISP完美配合,但几天前我的代码没有按预期工作。我试图从Hathway ISP的另一个用户执行相同的代码,我也面临同样的问题。我认为我的代码有问题,经过调试我发现一切都很完美,我知道当我用其他ISP执行我的代码时。 Hathway ISP正在发生的事情是,它向服务器发送多个请求。 浏览器只向浏览器发送一个请求,我在浏览器的“网络”选项卡中检查了该请求,但不知道服务器获取多个请求的中间发生了什么。 让我概述一下我的代码,
由于
答案 0 :(得分:1)
根据您的要求,我认为过长的计算可能存在问题,并且ISP正在重新发送测试请求,以确定它是否存在,或类似的内容。
理想情况下,在这样的过程中,您可以执行以下操作:
用户点击进程按钮:
1.1 Ajax请求被发送到php来计算excel文件。
收到Ajax请求
2.1生成轮询ID
2.2 exec(' php calculateExcel.php $ pollingid'); (见this answer)
2.3向用户发送轮询ID
接收投票ID 3.1每5秒请求编译状态
收到编译状态请求
4.1轮询数据库/文件/通过轮询idto查看编译的距离
4.2.1。如果没有完成,返回百分比完成
4.3.2。如果完成,请返回下载链接
收到状态回答
5.1。如果没有完成,请更新状态栏
5.2。如果完成,请删除状态栏,显示下载链接。
我将如何做到这一点。这样你的服务器可以快乐地计算大量的excel文件,用户不必担心浏览器超时(一些浏览器选择在5分钟后断开连接),Windows网络重置/ DNS重新协商,wifi断开连接等。
只要用户拥有他/她的投票ID,他/她就可以请求状态和/或下载文件,只要它可用。
答案 1 :(得分:0)
我建议在单个请求中以json的形式发送数据。在PHP中,您可以再次将其碎片整理为所有值。例如。
xhttp.open("GET", "gotoChatRoomorNot.php?q=[{"+str+"},{"+user1+"},{"+user2"}]", true);
在php中,您可以按照此操作获取数据:How do I extract data from JSON with PHP?
我认为你可以用xml执行相同的行为,但我不知道xml