我使用PHP Imap库和Ajax来显示电子邮件中的搜索结果。我发现的主要问题是,提供商(特别是Hotmail)会在接近6到7次连接后切断连接。
我希望连接一次,然后使用ajax连续显示信息,而不是在每个脚本中使用imap_connect()。我只是不知道该怎么做。问题是我需要通过ajax输出数据。有没有办法在不通过jquery结束PHP程序的情况下返回信息?
如果我将imap连接变量$connection传递给php查询,而不是调用它,但不确定如何传递它,我也可以这样做。下面是我目前传递变量的方式。
var dataString='email=<?php echo $email_address; ?>&connection=<?php echo $connection; ?>&password=<?php echo $password; ?>&server=<?php echo $server;?>&daysago='+daysago+'&num='+num;
$.ajax({
type: "POST",
url: "fastsearch.php",
data: dataString,
success: function(msg){链接到Imap Connect (和通用php imap库):http://php.net/manual/en/function.imap-open.php
发布于 2011-03-25 10:48:32
我以前用PHP和jQuery做过“套接字模拟”编程,这是一种基于COMET的方法来保持长连接。
对于易于安装和使用的Socket.io库来说,这真的是一个闪亮的例子,说明了Node.js对web应用程序开发是有利的。
抛开Node.js不谈,你还有一些选择,比如创建一个进程来保持连接的活力和持久性,而不是在每次有人登录时都进行实时连接(使用像celery这样的异步任务管理器),以及使用COMET方法,这基本上是一个无限的while循环,它不断地将数据输出到客户端。后者将保持单个连接打开,但也会非常不稳定,性能不佳,并且使用错误的PHP工具来完成此任务。
我强烈建议您重新考虑针对此特定任务的PHP依赖项,转而使用专为此特定服务器推送/持久性设计的库。
https://stackoverflow.com/questions/5427994
复制相似问题