2012-03-05 11 views
0

私は多くの場所を検索して、問題を正しく解決できませんでした。情報を取得するのに約1分かかるPHPコードがあります。 Open Graph PHPでURLを取得しているので、たくさんのサイトを開き、メタデータ(タイトル、画像、説明など)を見つけて、私のためにエコーする必要があります...システム全体がうまくいきます。しかし、ユーザーがサイトに入るたびに、PHPコードはメタデータとスタッフを取り戻すために、すべての作業をやり直さなければなりません。サーバでPHPを実行し、結果のみを表示

PHPをバックグラウンドサーバーで実行して情報を保存するシステムを作成する必要があります。ユーザーがサイトに入ると、すべての作業は既に完了しており、結果のみを表示しています...アイデアはありますか?

私は、このテストでした:1分待った後

とページではすでに結果を示す開いて、私はすべてのコンテンツをコピーし、新しい.htmlのページ(コピー&ペーストを作成し、ソースコードに入力されましたコードが生成されました)、もちろん、すべてがPHPの結果を示す簡単なHTMLコードに変換されています...そして、すべてのOpen Graphプロセスが既に完了しているので、すべてが1秒で読み込まれます。 。

(英語が私の主な言語ではないので、あなたが知っている):)

答えて

2

データベースまたはキャッシュに結果を追加します。 dファイル。長時間かかるスクリプトを実行するcronスクリプトがありますが、出力をファイルまたはデータベースに保存するようにスクリプトを変更してください。次に、ユーザーに面したスクリプトにファイル/データベースの内容を取得させるだけです。

0
There are many options to do this. Some depend on how you want users to get the information. 

1. If you're on Windows, you could try using: 

    $WShell = new COM("WScript.Shell"); 
    $path = ($_SERVER['DOCUMENT_ROOT']."/long_task.php"); 
    $exec = $WShell->Run("php.exe -f $path", 0, false); 


Have the long_task.php update the database or something to let you know you've completed the task and that the user can retrieve the updates. 

2. Load the data into an iframe 


    <!-- Send the data request to the iframe --> 
    <form action="long_task.php" target="ifr"> 
    ... 
    </form> 

    <!-- put iframe somewhere on your main page --> 
    <iframe name="ifr" id="ifr" > 
    </iframe> 

3. Also, you may wish to consider using javascript instead. A jQuery asynchronous request to the long_task.php file can be created using something like: 

    <!-- HTML code --> 
    <a href="post_data()">Button</a> 

    <!-- jquery code --> 
     function post_data() { 
      var dataString = $('#data_to_send1, #data_to_send2).serialize(); 
      $.post(url, dataString, function(data) { 
         //callback details 
       //use js-jquery to display your data here 
      }); 
     } 
0

memcachedを使ったことがありますか? Facebookやすべての大規模なサイトでこれを使用しているため、実装が非常に簡単です。それと

http://memcached.org/

幸運!

関連する問題