2011-03-25 5 views
1

저는 Ajax와 함께 PHP Imap Library를 사용하여 전자 메일 내에서 검색 결과를 표시하고 있습니다. 내가 발견 한 주된 문제는 가까운 시간에 6 또는 7 개의 연결 후 연결을 끊는 공급자 (특히 Hotmail)입니다.PHP 스크립트를 끝내지 않고 아약스 결과를 표시하는 방법? Jquery - PHP

각 스크립트에서 imap_connect() 대신 한 번 연결 한 다음 계속해서 ajax로 정보를 표시하고 싶습니다. 나는 이것을 어떻게하는지 모른다. 문제는 아약스를 통해 데이터를 뱉어 내야한다는 것입니다. jquery를 통해 PHP 프로그램을 종료하지 않고 정보를 반환 할 수있는 방법이 있습니까?

imap 연결 변수 $connection을 호출하는 대신 PHP 쿼리에 전달하는 경우 잠재적으로이 작업을 수행 할 수 있지만이를 전달하는 방법은 확실하지 않습니다. 현재 변수를 전달하는 방법은 다음과 같습니다. IMAP 연결 (일반 PHP는 IMAP 라이브러리)에

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){ 

링크 : http://php.net/manual/en/function.imap-open.php

답변

2

나는 COMET 기반 접근 방식의 일종이다 과거에 PHP와 jQuery를에서 "소켓 에뮬레이션"프로그래밍을 완료했습니다 긴 연결을 유지합니다.

이것은 쉽게 설치할 수 있고 사용할 수있는 Socket.io 라이브러리처럼 Node.js가 웹 응용 프로그램 개발에 유리한 좋은 예입니다.

Node.js 이외에도 몇 가지 옵션이 있습니다. 연결 상태를 유지하면서 지속적으로 로그인하고, 누군가가 로그인 할 때마다 (셀러리와 같은 비동기 작업 관리자 사용), COMET 접근 방식을 사용하는 프로세스를 포크합니다. 기본적으로 클라이언트 측에 데이터를 지속적으로 내보내는 무한 루프입니다. 후자는 하나의 연결을 열어 두지 만 매우 불안정하고 성능이 좋지 않으며 PHP를 사용하여 작업에 대한 잘못된 도구를 사용합니다.

이 특정 작업에 대한 PHP 의존성을 재고하고이 특정 서버 푸시/지속성을 위해 고안된 라이브러리로 이동하십시오.

관련 문제