|
|
1
1
批处理您的结果。在加载所有电子邮件和一次加载一封电子邮件之间,您可以批处理电子邮件标题并将其发回。调整这个数字,直到你在响应性和内容之间找到一个很好的匹配。 在这种情况下,PHP脚本将收到一个范围请求,例如
Javascript将以块的形式维护状态和请求数据,直到加载所有数据。或者,您可以做一些奇特的事情,比如创建关于何时请求数据以及请求什么数据的客户端策略。 浏览器是另一个瓶颈,因为大多数浏览器在任何给定时间只允许2个传出连接。 |
|
|
2
2
有一些技术可以让你配置你的服务器和Javascript,以允许本质上的“反向AJAX”(在Google/Wikipedia上查找“comet”或“反向AJAX”)。然而,这并不是难以置信的简单,对于你正在做的事情来说,它可能不值得所有的工作来设置它。
我不在PHP中工作,但是如果可以在请求之间持久化imap_open的返回值或任何它的副作用,那么您应该尝试这样做,然后重用保存的资源。 一些伪代码:
其中,持久化的_资源应该是存储在会话范围、应用程序范围或PHP可用的任何比请求寿命更长的变量。
|
|
|
3
1
听起来好像你需要处理每次通话中收到的电子邮件数量。在这一点上,您可以一起返回它们的数据,并在客户端解析出来。但是,该过程不可能永远持续下去,而且服务器无法在http请求得到响应后启动额外数据的返回,因此您必须在以后进行后续调用以处理更多电子邮件。 |
|
|
4
1
服务器端PHP脚本可以配置为在生成输出后立即发送输出。您基本上需要禁用所有可能导致缓冲的功能,例如 output_buffering , output_handler 困难的部分是您需要JavaScript库能够处理部分输入。也就是说:您需要在收到下载的数据后立即访问它。我相信是的 technically possible 但是像jQuery这样的一些流行库只允许在传输完成时读取数据。 |