我有一个从PHP脚本获取JSON数组的Flex程序。PHP脚本不仅仅包含一个简单的JSON数组,而且它从Activecollab获取数据,并在编码数据之前对数据进行一些处理。
第一个测试涉及一个很小的JSON数组,用PHP编码只需要很短的时间。但是,当我尝试放大测试时,Flash电影在尝试从PHP加载JSON数据时会崩溃。测试之间没有代码差异,只是数据量和PHP编码所需的时间不同。我看到的是内存问题还是超时问题?
PS:当我在Firefox中调用PHP脚本时,它没有超时,仍然返回一个JSON数组。返回数组只需要一段时间。
发布于 2011-04-22 03:56:36
我假设在浏览器中访问你的php服务不会超时。如果是这样,那么您需要更改php设置以允许脚本执行更长时间。
否则,您可以尝试完全不同的策略,如:让flex调用您的php服务并告诉它开始数据处理,让您的php服务返回一个令牌id给flex用于轮询。让另一个php服务跟踪处理的进度(接收用于跟踪作业的令牌)。第二个服务将为每个请求返回一个进度报告,直到处理完成。处理完成后,它会在下一次请求时返回数据。
让php生成一个用来跟踪' job‘的id,这样flex就可以在任务完成时轮询和检索数据。这至少会消除Flex在服务器端处理时需要处理的等待时间。
当然,在等待具有匹配令牌的请求时,您需要将预先准备好的输出存储在服务器端的某个位置。您还需要一种清理机制,以便偶尔使用超时清除此映射/缓存。
您可以使用闪存探查器检查客户端上的内存使用情况。当您尝试加载数据时,您的总内存使用量是否会增加很多?
https://stackoverflow.com/questions/2761127
复制相似问题