我需要将大约200x50 (行,列)的表值从jQuery发布到PHP。有两个选项:
1)将其作为包含10,000个var的数组发送(增加php.ini max_input_vars)。
2)将数组序列化为JSON字符串,作为字符串发布,然后在服务器端解码回PHP。
哪一种更可取?选项1有什么潜在的问题吗?
谢谢
PS。更新。在250x50个单元格的大型输入表上测试了这两种方法后,第一种方法看起来要快得多:对于JSON字符串,1-2秒比~17-20秒。
瓶颈是到服务器的数据传输时间,因为对象到JSON和返回事务几乎是即时的(几毫秒)。
发布于 2013-10-03 05:24:13
我向我们的服务器发送PUT请求,正文中包含二进制数据,可能相当于10k文本记录,传输速度非常快。我可能想知道那里发生了什么,在一个与另一个的传输时间中,是否有什么东西可能误导了你。例如,post变量可能认为“传输”是请求的不同阶段。或者,如果您使用行/列名或其他名称向json结构添加了许多无关紧要的东西?
如果事实证明这是真的,并且每个方法都有相同的性能-我个人会选择在主体中使用结构化JSON,因为与一堆编码的post变量名相比,它似乎更清晰、更容易查看/调试。
此外,我不知道你的应用程序是做什么的,所以你的方法可能是完全合适的。但我可能会考虑是否可以按需发送数据,而不是一次性发送整个表。(当人们不回答我的问题并试图给我一些替代方法时,我会感到恼火,所以对这最后一点持保留态度!但似乎不寻常的是,一个人会接触到10k条记录-需要它们同时被发送到服务器)
发布于 2013-10-29 15:00:38
你已经回答了你自己的问题。在开发软件时应该使用的代码的性能和质量之间存在一个合理的折衷。
因此,Json在两端(Javascript和PHP)都得到了支持,并为您的代码提供了更好的结构。
发布于 2013-10-29 21:40:57
我认为有很多因素。您在哪种环境下工作,服务器和客户端是否在同一台PC上?你必须每天或每小时这样做吗?
其他项目是否在同一台服务器上,因此它们的响应速度会更慢?在一两个月内,您的var会超过10K吗?
如果像第一个选项那样发布数据,因为Javascript
比PHP
更快,所以有时您可能会丢失一些数据。
如果您可以异步执行此操作,请查找RabitMQ
,它是一个消息传递服务器,它在服务器准备就绪时执行任务(它做得也很快!) http://www.rabbitmq.com/
https://stackoverflow.com/questions/19108711
复制相似问题