alert('データ検出が完了しました!');"; echo ""; echo "

ホームページ >バックエンド開発 >PHPチュートリアル >データベース操作の遅延に関する問題

データベース操作の遅延に関する問題

WBOY
WBOYオリジナル
2016-06-13 13:32:22887ブラウズ

データベース操作の遅延問題

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
        echo "<Script language='JavaScript'>alert('数据检测已完成!');</Script>";
        echo "<Script language='JavaScript'>location.href='pmf_rkno_query.php'</Script>";
        sleep(10);
        mysql_query("delete from `".$p."` where rkno = '".$rkno."'");    



私のアイデアは、データベースの削除操作を実行する前に、対応するページに戻ることです。現在のコードの効果は、10 秒間待機してデータを削除しますが、現在のページはそのまま残ります。何が間違っていたのでしょうか?

-----解決策--------------------------------
サーバーが出力をキャッシュした可能性があります
flush() // キャッシュをクリアします
sleep(10);
------解決策------
flush() // キャッシュをプッシュアウトします
これは必要です。IE 互換ブラウザの場合、プログラムが終了しない限り、コンテンツが実行される前に 256 バイトを超えるコンテンツを送信する必要があります

ただし、記述方法は危険です
Once<スクリプト言語= 'JavaScript'>location.href='pmf_rkno_query.php'
が実行されます。これはユーザーが現在のプログラムの接続を終了するのと同等で、php は現在のプログラムの実行を終了します。デフォルトでは、
mysql_query("delete from `".$p."` where rkno = '".$rkno."'"); を実行する機会はありません。

------解決策------------------ これらを追加してみてはどうでしょうか? ? ?また、ブラウザごとに異なるため、Chrome が動作しない可能性があります。
ini_set('output_buffering','on');
ini_set('zlib.output_compression', 0);

echo " ";
echo str_pad(" ", 1024);
ob_flush();
flush ();
sleep(10);
mysql_query("delete from `".$p."` where rkno = '".$rkno."'");
……
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。