私は、車両の登録に使用されるピンを生成する Web サイトに取り組んでいます。ここでの問題は、一度に 50,000 個のピンのような多くのピンを生成したい場合、完了するまでに非常に長い時間がかかることです。欲しいのは、メッセージを表示する前に 50,000 個のピンが生成されるのを待つのではなく、「ピンが生成されています」というメッセージを表示するページにブラウザが読み込まれている間、バックグラウンドでピンを生成する方法です。PHP と MYSQL を使用しています。
質問する
51 次
2 に答える
1
これを 2 つのページに分割できます。ピンを生成する 1 つの php スクリプトと、ユーザーにメッセージを表示する別の php スクリプトです。
これは、ユーザーにメッセージを表示するアプローチです。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="prototype.js"></script>
<script language="javascript">
function GeneratePINS(quantity)
{
var myAjax = new Ajax.Updater('pinsAjax','generate_pins.php?quantity='+quantity,
{
method : 'get',
}) ;
}
}
</script>
</head>
<body onload="GeneratePINS(5000);">
Generating pins...
</body>
</html>
そして、generate_pins.php は次のようになります。
<?php
$DEFAULT_VALUE = 100;
$quantity = (isset($_GET['quantity']) && is_numeric($_GET['quantity'])) ? $_GET['quantity'] : $DEFAULT_VALUE;
echo YOUR_METHOD_TO_GENERATE_PINS(quantity);
?>
ここでプロトタイプ JS をダウンロードすることを忘れないでください: http://www.prototypejs.org/download
私はそれが役立つことを願っています:D
于 2012-10-07T13:06:27.933 に答える
0
使いたいのはタスクデーモンです。次に、単にタスクを開始して一意の ID を取得し、「お待ちください..」ページで結果が利用可能かどうかをポーリングするために使用できます (もちろん、ポーリングは最もクリーンなソリューションではありませんが、最も簡単なソリューションです)。
セロリ用の PHP クライアントがあるようです。ただし、実際のタスクのコードは Python で記述する必要があります。純粋な PHP ソリューションも利用できるかもしれません。
于 2012-10-07T12:51:07.363 に答える