假设我有一个包含 100 个对象的页面,转换为 json 后每个页面约为 700 字节。
为了将对象保存到基于 php 的 Controller ,我有以下选项。
选项 1
对于每个对象(100 个对象)执行以下操作
- 获取对象定义 2.转换为json
- 向 php Controller 发送 http post
- php Controller 将其保存到文件或数据库中。
选项 2
变量bigJsonString;
对于每个对象(100 个对象)执行以下操作
- 获取对象定义 2.转换为json
- 将 json 附加到字符串变量“bigJsonString”,并使用分隔符来指示对象结束。
构造完大胖bigJsonString之后
- 通过发送“bigJsonString”将 http post 发送到 php Controller
- php Controller 将其保存到文件或数据库中。
在选项 1 中,我陆续发布了 100 个 http 帖子。这会引起任何警觉吗? 这对于执行 ajax post 的 Web 应用程序来说正常吗?
第二个选项看起来很安全,但唯一的问题是,当 100 个对象变成 500 个对象时,或者达到“bigJsonString”达到几兆字节长的程度。
我们可以引入的第三个选项是选项 1 和 2 的混合,我们首先构建“bigJsonString”,如果长度达到一定限制,则执行 ajax post。刷新字符串并为剩余对象再次构建字符串。
有哪些陷阱以及正常或标准做法是什么。如果有人可以指出已经对此进行了分析的资源,那就太好了。
非常感谢。
最佳答案
一般浏览器limit the number of connections to a single domain到一个较低的数字(大多数浏览器默认低于 20)。与此同时,您的许多请求将被阻止。
另一方面,较大的请求将需要更长的时间才能完全处理,因为并行化的机会较少。
理想情况下,您可以尝试两种方法,看看哪一种最有效。
注意:对于第二种方法,您可以创建对象的数组,然后将数组序列化为JSON,而不是手动处理JSON字符串。 (JSON 支持数组,而不仅仅是对象!)
关于php - 如何使用ajax和php将100个对象保存到服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4939463/